前言
参照我的博客,熟悉基础的Spring JDBC的操作
了解基础的Spring JDBC后我们可以知道,即使是封装了原生JDBC的JdbcTemplate类在书写时也存在冗余代码,对此Spring提供了一些支持类,来进一步简化JDBC的相关操作。
- 存在问题
- JDBC的全部DAO类,需要一个JdbcTemplate属性和一个设置方法
- 把JdbcTemplate Bean装配到每个DAO的JdbcTemplate属性
- 多个DAO,产生很多重复代码
- 解决方案
- 全部DAO 对象创建一个通用父类 在其中设置 JdbcTemplate 属性,
- 全部 DAO 继承这个类,使用父类的JdbcTemplate进行数据访问,
- Spring恰好提供了这样一些基类。
案例解析
使用JdbcDaoSupport
- Spring 的 JdbcDaoSupport 就是用于编写基于JDBC 的DAO 类的基类
- 自己的DAO类继承它即可
接下来我将通过案例来演示JdbcDaoSupport的使用
创建实体类继承JdbcDaoSupport类
UserDao
package dao;
import entity.User;
import java.util.List;
public interface UserDao {
//查询所有用户
List<User> getAllUsers();
List<User> getUsersByCond(User user);
User getUserById(int id);
int addUser(User user);
int deleteUser(int id);
int updateUser(int id);
}
UserDaoJdbcTemplate
@Component("userDaoTemp")
public class UserDaoJdbcTemplate implements UserDao {
public static final RowMapper rowMapper=new ParameterizedRowMapper<User>(){
@Override
public User mapRow(ResultSet rs, int i) throws SQLException {
User user =new User();
user.setUser_id(rs.getInt("user_id"));
user.setUser_name(rs.getString("us