SpringJDBC详解

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

步骤:

  • 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():查询结果,将结果封装为对象
    *一般用于聚合函数的查询

  • 4.练习:

     *需求:
     	1.修改1号数据password为456
     	2.添加一条数据
     	3.删除刚才添加的数据
     	4.查询aid为1的纪录,将其封装为map集合
     	5.查询所有记录,将其封装为List
     	6.查询所有记录,将其封装为Emp对象的List集合
     	7.查询总记录数
    
package Bean;

public class Admin {
    private int aid;
    private String username;
    private String password;

    public int getAid() {
        return aid;
    }

    public void setAid(int aid) {
        this.aid = aid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "admin{" +
                "aid=" + aid +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}
package JDBCTemplate;

import Bean.Admin;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import util.JDBCDruidUtils;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

public class AdminJdbcTemplateTest {
    /*      1.修改1号数据password为456
        	2.添加一条数据
        	3.删除刚才添加的数据
        	4.查询aid为1的纪录,将其封装为map集合
        	5.查询所有记录,将其封装为List
        	6.查询所有记录,将其封装为Admin对象的List集合
        	7.查询总记录数*/
    public static void main(String[] args) {
        AdminJdbcTemplateTest ajt = new AdminJdbcTemplateTest();
        ajt.test1();
        ajt.test2();
        ajt.test3();
        ajt.test4();
        ajt.test5();
        ajt.test6();
        ajt.test6_2();
        ajt.test7();
    }
    private JdbcTemplate template = new JdbcTemplate(JDBCDruidUtils.getDataSource());
    public void test1(){
        String sql = "update admin set password = 456 where aid = ?";
        int count = template.update(sql,1);
        System.out.println("test1:");
        System.out.println(count);
    }
    public void test2(){
        String sql = "insert into admin values(?,?,?)";
        int count = template.update(sql,5,"chenqi","123");
        System.out.println("test2:");
        System.out.println(count);
    }
    public void test3(){
        String sql = "delete from admin where aid = ? ";
        int count = template.update(sql,5);
        System.out.println("test3:");
        System.out.println(count);
    }
    public void test4(){
        String sql = "select * from admin where aid = ? ";
        Map<String,Object> map = template.queryForMap(sql,1);
        System.out.println("test4:");
        System.out.println(map);
    }
    public void test5(){
        String sql = "select * from admin";
        List<Map<String, Object>> list = template.queryForList(sql);
        System.out.println("test5:");
        for (Map<String, Object> map : list) {
            System.out.println(map);
        }
    }
    public void test6(){
        String sql = "select * from admin";
        List<Admin> list = template.query(sql, new RowMapper<Admin>() {
            @Override
            public Admin mapRow(ResultSet resultSet, int i) throws SQLException {
                Admin admin = new Admin();
                int aid = resultSet.getInt("aid");
                String username = resultSet.getString("username");
                String password = resultSet.getString("password");
                admin.setAid(aid);
                admin.setUsername(username);
                admin.setPassword(password);
                return admin;
            }
        });
        System.out.println("test6:");
        for (Admin admin : list) {
            System.out.println(list);
        }
    }
    public void test6_2(){
        String sql = "select * from admin";
        List<Admin> list = template.query(sql, new BeanPropertyRowMapper<Admin>(Admin.class));
        System.out.println("test6_2:");
        for (Admin admin : list) {
            System.out.println(list);
        }
    }
    public void test7(){
        String sql = "select count(aid) from admin ";
        Long total = template.queryForObject(sql, long.class);
        System.out.println("test7:");
        System.out.println(total);
    }

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值