最近在迭代一个12年之久的老项目,所用技术为JdbcTemplate,故将JdbcTemplate常用API总结一下,以加深印象,提高工作效率!
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.23.RELEASE</version>
</dependency>
execute方法主要用于建表相关,平常使用较少.
String sql = "create table test (id integer, name varchar(100))";
jdbcTemplate.execute(sql);
DML语句返回结果:影响的行数
String sql = "INSERT INTO student (id,name) VALUES(1,'张三')";
int result = jdbcTemplate.update(sql);
System.out.println("新增行数为 = " + result);
String sql = "update student set name='李四' where id =? ";
int result = jdbcTemplate.update(sql, 1);
System.out.println("修改行数为 = " + result);
String sql = "delete from student where id =?";
int result = jdbcTemplate.update(sql, 1);
System.out.println("删除行数为 = " + result);
通用的查询方法,有多个同名方法的重载,使用BeanPropertyRowMapper做映射将返回对象封装成List。
String sql = "select * from student";
List<Student> students = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Student.class));
for (Student student : students) {
System.out.println(student);
}
返回查询只有单一对象的结果,这个单一结果应该是简单的数据类型,如:Integer.class、Long.class、String.class,不能直接封装成JavaBean对象。
可以用于聚合函数的查询结果。
String sql = "select name from student where id=?";
String result = jdbcTemplate.queryForObject(sql,String.class,1);
System.out.println("姓名为: " + result);
返回Map
String sql = "select * from student where id=?";
Map<String, Object> result = jdbcTemplate.queryForMap(sql,2);
System.out.println("id 为2的学生为:" + result);
返回多条记录的查询结果,封装成一个List集合
默认List集合中的每个元素是Map对象,即List
String sql = "select * from student";
List<Map<String,Object>>result = jdbcTemplate.queryForList(sql);
for (Map<String, Object> stringObjectMap : result) {
System.out.println("学生为: " + stringObjectMap);
}