JDBCTemplate_执行DML语句和JDBCTemplate_执行DQL语句

JDBCTemplate_执行DML语句:

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

步骤︰

1.导入jar包

2.创建dbcTemplate对象。依赖于数据源Datasource

jdbcTemplate template = new JdbcTemplate(ds );

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

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

queryForMap():查询结果将结果集封装为map集合

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

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

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

代码实现:

// Junit单元测试, 可以让方法独立执行

    // 1.获取JDBCTemplate对象
    private JdbcTemplate template = new JdbcTemplate( JDBCUtils.getDataSource());
    /**
     * 1.修改1号数据的 salary为10000
     */
    @Test
    public void test1() {
        // 2.定义sql
        String sql = "update emp set salary = 10000 where id = 1";
        // 3.执行sql
        int count = template.update(sql);
        System.out.println(count);
    }

    /**
     * 2.添加—条记录
     */
    @Test
    public void test2() {
        // 2.定义sql
        String sql = "insert into emp(id,name,dept_id)values(?,? ,?)";
        // 3.执行sql
        int count = template.update(sql,6,"郭靖",7);
        System.out.println(count);
    }

    /**
     * 3.册除刚才添加的记录
     */
    @Test
    public void test3() {
        // 2.定义sql
        String sql = "delete from emp where id = ?";
        // 3.执行sql
        int count = template.update(sql, 5);
        System.out.println(count);
    }

 

 

 

 

 

 

 

JDBCTemplate_执行DQL语句:

1.调用dbcTemplate的方法来完成cRUD的操作

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

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

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

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

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

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

query的参数:RowMapper

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

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

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

—般用于聚合函数的查询

代码实现:

 // Junit单元测试, 可以让方法独立执行

    // 1.获取JDBCTemplate对象
    private JdbcTemplate template = new JdbcTemplate( JDBCUtils.getDataSource());
/**
     * 4.查询地为1的记录,将其封存为Map集合
     * 注意:这个方法查询的结果集长度只能是1
     */
    @Test
    public void test4() {
        String sql = "select * from emp where id = ?";
        Map<String, Object> map = template.queryForMap(sql, 1);
        System.out.println(map);
    }

    /**
     * 5.查询全部表emp信息
     */
    @Test
    public void test5() {
        String sql = "select * from emp";
        List<Map<String, Object>> maps = template.queryForList(sql);
        for (Map<String,Object>  stringObjectMap :maps) {
            System.out.println(stringObjectMap);
        }
    }
    /**
     * 6.查询所有记录,将其封存为Emp对象的list集合
     */
    @Test
    public void test6() {
        // 定义sql语句
        String sql = "select * from emp";
        List<Emp> list = template.query(sql, new RowMapper<Emp> () {

            @Override
            public Emp mapRow(ResultSet rs, int i) throws SQLException {
                Emp emp = new Emp();
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String gender = rs.getString("gender");
                double salary = rs.getDouble("salary");
                long join_date = rs.getLong("join_date");
                int dept_id = rs.getInt("dept_id");

                emp.setId(id);
                emp.setName(name);
                emp.setGender(gender);
                emp.setSalary(salary);
                emp.setJoin_date(join_date);
                emp.setDept_id(dept_id);

                return emp;
            }
        });
    }

    /**
     * 6.查询所有记录,将其封存为Emp对象的list集合
     */
    @Test
    public void test_2() {
        String sql = "select * from emp";
        List<Emp> list = template.query(sql, new BeanPropertyRowMapper<>(Emp.class));
        for (Emp emp : list ) {
            System.out.println(emp);
        }
    }

 

posted @ 2022-10-24 10:31  冰灵IT  阅读(83)  评论(0)    收藏  举报