使用 JdbcTemplate和JdbcDaoSupport

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40745306/article/details/88857890

//@Test
    public void testStudentsDao()
    {
        Students student =studentsDao.getStudents("001");
        System.out.println(student);
    }
    //@Test
    public void testEmployeeDao()
    {
        Employee employee=employeeDao.getEmployee(1);
        System.out.println(employee);
    }
    /**
     * 获取单个列的值,或统计查询
     * 使用queryForObject(String sql, Class<Long> requiredType)
     */
    //@Test
    public void testQueryForObject2()
    {
        String sql="select count(id) from employee";
        long count=jdbcTemplate.queryForObject(sql, Long.class);
        System.out.println(count);
    }
    /***
     * 查询实体类的集合
     * 注意调用的不是queryForList方法
     */
    //@Test
    public void testQueryForList()
    {
        String sql="select id,name,sex,dept_id from employee where id>?";
        RowMapper<Employee> rowMapper=new BeanPropertyRowMapper<>(Employee.class);
        List<Employee> employee=jdbcTemplate.query(sql,rowMapper,2);
        
        System.out.println(employee);
    }
    /**
     * 从数据库中获取一条记录,实际得到对应的一个对象
     * 需要调用queryForObject(String sql, RowMapper<Students> rowMapper, Object... args) 
     *1、其中的RowMapper指定如何去映射结果集的行,常用的实现类为BeanPropertyRowMapper
     *2、使用SQL 中列的别名完成列名和属性名的映射。(视频写,我没写,就是起别名,别名是属性名)
     *3、不支持级联属性,JsbcTemplate 只是一个JDBC的小工具,而不是ORM框架
     */
    //@Test
    public void testQueryForObject()
    {
        String sql="select stuID,stuName,stuSex,stuAge,stuDept from students where stuID=?";
        RowMapper<Students> rowMapper=new BeanPropertyRowMapper<>(Students.class);
        Students student =jdbcTemplate.queryForObject(sql, rowMapper,"001");
        
        System.out.println(student);
    }
    /**
     * 执行批量更新:批量的insert,update,delete
     * 最后一个参数是Object[] 的List类型:因为修改一条记录需要一个Object[] 
     * ,那么多条就需要多个Object,所以用List
     */
    //@Test
    public void testBatchUpdate()
    {
        String sql="insert into students(stuID,stuName,stuSex,stuAge,stuDept) values(?,?,?,?,?)";
        List<Object[]> batchArgs=new ArrayList<>();
        batchArgs.add(new Object[]{"010","010","男","10","二进制"});
        batchArgs.add(new Object[]{"011","011","男","11","二进制"});
        batchArgs.add(new Object[]{"012","012","男","12","二进制"});
        batchArgs.add(new Object[]{"013","013","男","13","二进制"});
        batchArgs.add(new Object[]{"014","014","男","14","二进制"});
        jdbcTemplate.batchUpdate(sql, batchArgs);
    }
    /**
     * 执行 insert,update,delete
     */
    //@Test
    public void testUpdate()
    {
        String sql="update students set stuName=? where stuId=?";
        jdbcTemplate.update(sql,"jack","005");

    }
    //@Test
    public void testDataSource() throws SQLException
    {
        DataSource dataSource=ctx.getBean(DataSource.class);
        System.out.println(dataSource.getConnection());
    }

猜你喜欢

转载自blog.csdn.net/weixin_40745306/article/details/88857890
今日推荐