Java-JDBCTemplate

举报
小小张自由--张有博 发表于 2021/11/23 23:23:56 2021/11/23
【摘要】   Java-JDBCTemplate   JDBC Template的继承结构  使用步骤: 代码  Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发 JDBC Template的继承结构   &nb...
 
Java-JDBCTemplate
 

JDBC Template的继承结构

 使用步骤:

代码


 Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发

JDBC Template的继承结构

    使用步骤:

        1. 导入jar包

        2. 创建JdbcTemplate对象。依赖于数据源 DataSource

              JdbcTemplate template = new JdbcTemplate(ds);

        3. 调用JdbcTemplate的方法来完成CRUD的操作

              update():执行DML语句。增、删、改语句

              queryForMap():查询结果将结果集封装为map集合,将列名作为key,将值作为value 将这条记录封装为一个map集合

                * 注意:这个方法查询的结果集长度只能是1

              queryForList():查询结果将结果集封装为list集合

                * 注意:将每一条记录封装为一个Map集合,再将Map集合装载到List集合中

              query():查询结果,将结果封装为JavaBean对象

                  query的参数:RowMapper

                    * 一般我们使用BeanPropertyRowMapper实现类。可以完成数据到JavaBean的自动封装

                    * new BeanPropertyRowMapper<类型>(类型.class)

              queryForObject:查询结果,将结果封装为对象

                * 一般用于聚合函数的查询

代码


  
  1. public class JdbcTemplateDemo {
  2. //Junit单元测试,可以让方法独立执行
  3. //1.导入jar包
  4. //2.创建JDBCTemplate对象
  5. //3.调用方法
  6. //0. 获取JDBCTemplate对象
  7. private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
  8. //1. 修改1号数据的 salary 为 10000
  9. @Test
  10. public void test1(){
  11. //2. 定义sql
  12. String sql = "update emp set salary = 10000 where id = 1001";
  13. //3. 执行sql
  14. int count = template.update(sql);
  15. System.out.println(count);
  16. }
  17. // 2. 添加一条记录
  18. @Test
  19. public void test2(){
  20. String sql = "insert into emp(id,ename,dept_id) values(?,?,?)";
  21. int count = template.update(sql, 1015, "郭靖", 10);
  22. System.out.println(count);
  23. }
  24. // 3.删除刚才添加的记录
  25. @Test
  26. public void test3(){
  27. String sql = "delete from emp where id = ?";
  28. int count = template.update(sql, 1015);
  29. System.out.println(count);
  30. }
  31. // 4.查询id为1001的记录,将其封装为Map集合
  32. // 注意:这个方法查询的结果集长度只能是1
  33. @Test
  34. public void test4(){
  35. String sql = "select * from emp where id = ? or id = ?";
  36. Map<String, Object> map = template.queryForMap(sql, 1001,1002);
  37. System.out.println(map);
  38. //{id=1001, ename=孙悟空, job_id=4, mgr=1004, joindate=2000-12-17, salary=10000.00, bonus=null, dept_id=20}
  39. }
  40. // 5. 查询所有记录,将其封装为List
  41. @Test
  42. public void test5(){
  43. String sql = "select * from emp";
  44. List<Map<String, Object>> list = template.queryForList(sql);
  45. for (Map<String, Object> stringObjectMap : list) {
  46. System.out.println(stringObjectMap);
  47. }
  48. }
  49. // 6. 查询所有记录,将其封装为Emp对象的List集合
  50. @Test
  51. public void test6(){
  52. String sql = "select * from emp";
  53. List<Emp> list = template.query(sql, new RowMapper<Emp>() {
  54. @Override
  55. public Emp mapRow(ResultSet rs, int i) throws SQLException {
  56. Emp emp = new Emp();
  57. int id = rs.getInt("id");
  58. String ename = rs.getString("ename");
  59. int job_id = rs.getInt("job_id");
  60. int mgr = rs.getInt("mgr");
  61. Date joindate = rs.getDate("joindate");
  62. double salary = rs.getDouble("salary");
  63. double bonus = rs.getDouble("bonus");
  64. int dept_id = rs.getInt("dept_id");
  65. emp.setId(id);
  66. emp.setEname(ename);
  67. emp.setJob_id(job_id);
  68. emp.setMgr(mgr);
  69. emp.setJoindate(joindate);
  70. emp.setSalary(salary);
  71. emp.setBonus(bonus);
  72. emp.setDept_id(dept_id);
  73. return emp;
  74. }
  75. });
  76. for (Emp emp : list) {
  77. System.out.println(emp);
  78. }
  79. }
  80. // 6. 查询所有记录,将其封装为Emp对象的List集合
  81. @Test
  82. public void test6_2(){
  83. String sql = "select * from emp";
  84. List<Emp> list = template.query(sql, new BeanPropertyRowMapper<Emp>(Emp.class));
  85. for (Emp emp : list) {
  86. System.out.println(emp);
  87. }
  88. }
  89. //7. 查询总记录数
  90. @Test
  91. public void test7(){
  92. String sql = "select count(id) from emp";
  93. Long total = template.queryForObject(sql, Long.class);
  94. System.out.println(total);
  95. }
  96. }

 创作不易,如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。  

文章来源: blog.csdn.net,作者:小小张自由—>张有博,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/promsing/article/details/113716508

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。