【Spring】JdbcTemplate常用方法使用示例

忘是亡心i 2021-09-21 02:48 430阅读 0赞

文章目录

    • update
    • query
      • queryForMap
      • queryForObject
      • queryForRowSet
      • queryForList

update

update方法一般用来进行增删改.
常用的几个方法如下:
在这里插入图片描述

  1. //update(String sql) ==> int
  2. String sql = "update t_score set chiese = 95 where id =1";
  3. int n = template.update(sql);
  4. //update(String sql, Object... args) ==> int
  5. String sql2 = "update t_score set chiese = ? where id = ?";
  6. int n2 = template.update(sql2, 95, 1);
  7. //update(String,Object[] args, int[] argTypes) ==> int
  8. String sql3 = "update t_score set chinese = ? , math = ? where id = ? ";
  9. Object[] args = new Object[]{ 55, 80, 2};
  10. int[] argTypes = new int[]{ Types.INTEGER, Types.INTEGER, Types.INTEGER}; // java.sql.Types
  11. int n3 = template.update(sql3, args, argTypes);

query

query方法主要用来查询, 在JdbcTemplate中常用的查询方法有个queryForMap、queryForObject、queryForRowSet、queryForList. 使用示例如下:

queryForMap

  1. //queryForMap(String sql) ==> Map<String, Object>
  2. Map<String, Object> score_map = template.queryForMap("select * from t_score where id=1");
  3. System.out.println(score_map);//{id=1, sid=20181515114, chinese=54, math=54, english=96}
  4. //queryForMap(String sql,Object... args);
  5. Map<String, Object> score_map2 = template.queryForMap("select * from t_score where id=?", 1);
  6. System.out.println(score_map2);//{id=1, sid=20181515114, chinese=54, math=54, english=96}
  7. //queryForMap(String sql ,Object[] args,int[] argTypes) ==> Map<String, Object>
  8. Object[] args = new Object[]{ 1};
  9. int[] argsType = new int[]{ Types.INTEGER};
  10. Map<String, Object> score_map3 = template.queryForMap("select * from t_score where id=?", args, argsType);
  11. System.out.println(score_map3);//{id=1, sid=20181515114, chinese=54, math=54, english=96}

queryForObject

  1. //queryForObject(String sql,class<T> requireType); ==> T
  2. int total = template.queryForObject("select (chinese+math+english) as total from t_score where id=1",Integer.class);
  3. System.out.println(total);//204
  4. //queryForObject(String sql,Object[] args,class<T> requireType); ==> T
  5. Object[] args = new Object[]{ 1};
  6. Integer total = template.queryForObject("select (chinese+math+english) as total from t_score where id=?", args, Integer.class);
  7. System.out.println(total);//204
  8. //queryForObject(String sql, Object[] args,int[] argTypes, class<T> requireType); ==> T
  9. Object[] args = new Object[]{ 1};
  10. int[] argTypes = new int[]{ Types.INTEGER};
  11. int total = template.queryForObject("select (chinese+math+english) as total from t_score where id=?", args, argTypes, Integer.class);
  12. System.out.println(total);//204

queryForRowSet

  1. //queryForRowSet(String sql); ==> SqlRowSet == ResultSet
  2. SqlRowSet sqlRowSet = template.queryForRowSet("select * from t_score");
  3. //sqlRowSet == ResultSet
  4. if(sqlRowSet.isFirst())sqlRowSet.previous();
  5. while (sqlRowSet.next()){
  6. System.out.println("id:"+sqlRowSet.getInt(1));
  7. //todo
  8. }
  9. // 使用方式同上
  10. template.queryForRowSet(String sql, Object...args);
  11. template.queryForRowSet(String sql,Object[] args,int[] argTypes);

queryForList

  1. //queryForList(String sql); ==> List<Map<String, Object>>
  2. String sql = "select * from t_score";
  3. List<Map<String, Object>> scoreMaps = template.queryForList(sql);
  4. scoreMaps.forEach(System.out::println);
  5. //输出
  6. { id=1, sid=20181515114, chinese=54, math=54, english=96}
  7. { id=2, sid=20181515101, chinese=55, math=80, english=99}
  8. { id=3, sid=20181515102, chinese=98, math=88, english=79}
  9. { id=4, sid=20181515105, chinese=80, math=80, english=78}
  10. { id=7, sid=20181515103, chinese=50, math=20, english=88}
  11. //queryForList(String sql, class<T> elementType); ==> List<T>
  12. List<Integer> total_score_list = template.queryForList("select (chinese+math+english) as total from t_score", Integer.class);
  13. for(Integer i:total_score_list) System.out.println(i);
  14. // 输出
  15. 204
  16. 234
  17. 265
  18. 238
  19. 158
  20. //queryForList(String sql,Object... args) ==> List<Map<String, Object>>
  21. List<Map<String, Object>> maps = template.queryForList("select * from t_score where english>=?", 80);
  22. for (Map<String, Object> m : maps) System.out.println(m);
  23. //输出
  24. { id=1, sid=20181515114, chinese=54, math=54, english=96}
  25. { id=2, sid=20181515101, chinese=55, math=80, english=99}
  26. { id=7, sid=20181515103, chinese=50, math=20, english=88}
  27. //queryForList(String sql,Object[] args,int[] argTypes) => List<Map<String, Object>>
  28. Object[] args = new Object[]{ 80};
  29. int[] argTypes = new int[]{ Types.INTEGER};
  30. List<Map<String, Object>> maps = template.queryForList("select * from t_score where english>=?", args, argTypes);
  31. for (Map<String, Object> m : maps) System.out.println(m);
  32. //输出
  33. { id=1, sid=20181515114, chinese=54, math=54, english=96}
  34. { id=2, sid=20181515101, chinese=55, math=80, english=99}
  35. { id=7, sid=20181515103, chinese=50, math=20, english=88}
  36. //queryForList(String sql,Object[] args,int[] argTypes, class<T> elementType ) ==> List<T>
  37. Object[] args = new Object[]{ 80};
  38. int[] argTypes = new int[]{ Types.INTEGER};
  39. List<Integer> integers = template.queryForList("select (chinese + math + english) as total from t_score where english >= ?", args, argTypes, Integer.class);
  40. for (Integer i : integers) System.out.println(i);
  41. //输出
  42. 204
  43. 234
  44. 158

Q&A 请指正!

发表评论

表情:
评论列表 (有 0 条评论,430人围观)

还没有评论,来说两句吧...

相关阅读