很实用,先码住!已声明转载!-----》https://www.cnblogs.com/tuhooo/p/6491913.html
JdbcTemplate的CRUD方法
1. 插入数据
1 public void addUser(User user) { 2 3 String sql = "insert into user (username, password) values (?, ?)"; 4 5 jdbcTemplate.update(sql, user.getUsername(), user.getPassword()); 6 7 }
如上,插入代码用的是update方法,其实增删改用的都是update方法,而查询则是和query相关的方法。
2. 删除操作
1 public void deleteUser( ) { 2 String sql = "delete from user where username= ?"; 3 jdbcTemplate.update(sql, "小王"); 4 }
3. 修改操作
1 public void updateUser(User user) { 2 String sql = "update user set username=? where username= ?"; 3 jdbcTemplate.update(sql, user.getUsername() + "_new", user.getUsername()); 4 }
4. 查询操作
上面三个都比较简单,查询倒是有些复杂。在使用比较基础的持久化工具的时候,比如DBUtils都会针对查询结果给我们提供一些封装的接口和类,但是JdbcTemplate只给我们提供了接口,并没有可用的类,所以我们需要自己写实现类来进行封装。这里会学习使用JdbcTemplate进行三种查询操作:
4.a. 查询表的记录数
1 @Test 2 public void test5() { 3 ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml"); 4 JdbcTemplate jdbcTemplate = (JdbcTemplate) ctx.getBean("jdbcTemplate"); 5 String sql = "select count(*) from user"; 6 Long row = jdbcTemplate.queryForObject(sql, Long.class); 7 System.out.println("查询出来的记录数为:" + row); 8 }
4.b. 查询返回对象
1 @Test 2 public void test6() { 3 // 获得jdbcTemplate对象 4 ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml"); 5 JdbcTemplate jdbcTemplate = (JdbcTemplate) ctx.getBean("jdbcTemplate"); 6 String sql = "select username, password from user where username = ?"; 7 // 设定参数 8 Object[] object = {"mary_new"}; 9 // 进行查询 10 User user = jdbcTemplate.queryForObject(sql, object, new UserMapper()); 11 System.out.println(user); 12 }
除此之外要实现结构RowMapper来新建一个映射类:
1 package com.spring.test; 2 3 import java.sql.ResultSet; 4 import java.sql.SQLException; 5 6 import org.springframework.jdbc.core.RowMapper; 7 8 import com.spring.domain.User; 9 10 public class UserMapper implements RowMapper<User>{ 11 12 @Override 13 public User mapRow(ResultSet resultSet, int rows) throws SQLException { 14 User user = new User(); 15 user.setUsername(resultSet.getString(1)); 16 user.setPassword(resultSet.getString(2)); 17 18 return user; 19 } 20 21 }
要注意这个UserMapper.java应该要和具体的Sql语句对应。
4.c. 查询并返回List集合
1 @Test 2 public void test7() { 3 // 获得jdbcTemplate对象 4 ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml"); 5 JdbcTemplate jdbcTemplate = (JdbcTemplate) ctx.getBean("jdbcTemplate"); 6 7 // sql语句 8 String sql = "select * from user"; 9 List<User> users = jdbcTemplate.query(sql, new UserMapper()); 10 11 for(User u: users) { 12 System.out.println(u); 13 } 14 }