Spring JDBC

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

2.步骤:

   1. 导入jar包(要有JDBCUtils  和    druid.properties   以及相关   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.修改

1  public void test1() {
2         JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
3         //修改
4         String sql = "update account set uname = '巴菲特' where id = 4";
5         jdbcTemplate.update(sql);
6     }

2.插入

1  public void test2() {
2         JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
3         //插入
4         String sql = "insert into account values(null,?,?,?)";
5         jdbcTemplate.update(sql, "李嘉诚", "789852", "789852@1");
6     }

3.删除

1  public void test3() {
2         JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
3         //删除
4         String sql = "delete from account where id = 3";
5         jdbcTemplate.update(sql);
6     }

4.查询单个记录

1  public void test4() {
2         JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
3         //查询一行
4         String sql = "select * from account where id = 1";
5         Map<String, Object> stringObjectMap = jdbcTemplate.queryForMap(sql);
6         System.out.println(stringObjectMap);
7     }

5.查询多个记录

1  public void test5() {
2         JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
3         //查询多行
4         String sql = "select * from account";
5         List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
6         for (Map<String, Object> map : maps) {
7             System.out.println(map);
8         }
9     }

6.使用封装对象类进行查询多个记录

Account类

 1 public class Account {
 2     private int id;
 3     private String uname;
 4     private String password;
 5     private String email;
 6 
 7     public int getId() {
 8         return id;
 9     }
10 
11     public void setId(int id) {
12         this.id = id;
13     }
14 
15     public String getUname() {
16         return uname;
17     }
18 
19     public void setUname(String uname) {
20         this.uname = uname;
21     }
22 
23     public String getPassword() {
24         return password;
25     }
26 
27     public void setPassword(String password) {
28         this.password = password;
29     }
30 
31     public String getEmail() {
32         return email;
33     }
34 
35     public void setEmail(String email) {
36         this.email = email;
37     }
38 
39     @Override
40     public String toString() {
41         return "Account{" +
42                 "id=" + id +
43                 ", uname='" + uname + '\'' +
44                 ", password='" + password + '\'' +
45                 ", email='" + email + '\'' +
46                 '}';
47     }
48 }

查询:

1 public void test6() {
2         JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
3         String sql = "select * from account";
4         //使用封装对象实现查询
5         List<Account> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Account>(Account.class));
6         for (Account account : list) {
7             System.out.println(account);
8         }
9     }

6.查询记录行数

1 public void test7() {
2         JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
3         //查询记录数
4         String sql = "select count(id) from account";
5         Long aLong = jdbcTemplate.queryForObject(sql, Long.class);
6         System.out.println(aLong);
7     }

 

posted @ 2020-03-21 11:08  王余阳  阅读(152)  评论(0)    收藏  举报