// 插入数据 JdbcTemplate jtl = new JdbcTemplate(JDBCUtilsStrong.getDataSource()); String sql = "insert into student(name,age,score,birthday) values(?,?,?,?)"; int count = jtl.update(sql,"James", 18, 123, "2002-10-09"); System.out.println(count);
1 2 3 4 5
// 更新数据 dbcTemplate jtl = new JdbcTemplate(JDBCUtilsStrong.getDataSource()); String sql = "update student set name = ? where id = 1"; int count = jtl.update(sql,"AutMaple"); System.out.println(count);
1 2 3 4 5
// 删除数据 JdbcTemplate jtl = new JdbcTemplate(JDBCUtilsStrong.getDataSource()); String sql = "delete from student where id = ?"; int count = jtl.update(sql,17); System.out.println(count);
查询操作
queryForObject
用于查询单行单列的数据
1 2
// 查询当行当列的数据 public <T> T queryForObject(String sql, Class<T> requiredType)
参数说明
String sql: 执行的查询 sql 语句
Class<T> requiredType: 期望返回的数据类型的class
使用示例
1 2 3 4
JdbcTemplate jtl = new JdbcTemplate(JDBCUtilsStrong.getDataSource()); String sql = "select name from student where id = 1;"; String name = jtl.queryForObject(sql, String.class); System.out.println(name);
注意:该方法只能查询某一行中的某一列数据,而不能将查询到的一整行的数据
queryForMap
用于查询单行数据
1 2
// 查询单行的数据 public Map<String, Object> queryForMap(String sql)
使用示例
1 2 3 4
JdbcTemplate jtl = new JdbcTemplate(JDBCUtilsStrong.getDataSource()); String sql = "select * from student where id = 1;"; Map<String, Object> colMap = jtl.queryForMap(sql); System.out.println(colMap);
返回查到的某一行的数据,如果查询到的结果有多行,则会报错
queryForList
用于查询多行多列数据
1 2 3 4 5
// 将数据封装到 Map 中 public <T> List<T> queryForList(String sql);
// 将数据封装到对象中 public <T> List<T> query(String sql, RowMapper<T> rowMapper);
JdbcTemplate jtl = new JdbcTemplate(JDBCUtilsStrong.getDataSource()); String sql = "select * from student where age > 20"; List<Map<String, Object>> resultList = jtl.queryForList(sql); for(Map<String, Object> result : resultList){ System.out.println(result); }
将数据封装对象中
1 2
// 将每一行的数据封装到对象中 public <T> List<T> query(String sql, RowMapper<T> rowMapper);
参数说明
RowMapper: 是一个接口,可以自己实现,也可以使用 spring 实现的类BeanPropertyRowMapper
使用示例
自己实现RowMapper接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
JdbcTemplate jtl = new JdbcTemplate(JDBCUtilsStrong.getDataSource()); String sql = "select * from student where age > 20"; List<Person> resultList = jtl.query(sql, new RowMapper<Person>() {
@Override public Person mapRow(ResultSet resultSet, int i)throws SQLException { Person p = new Person(); p.setAge(resultSet.getInt("age")); p.setName(resultSet.getString("name")); p.setScore(resultSet.getDouble("score")); return p; } });