//@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());
}