MyBatis 继承 Mapper 接口扩展 DAO 接口:简化数据库操作
在 MyBatis 中,可以通过继承 Mapper 接口来扩展自己的 DAO 接口。这样可以利用 MyBatis 的 Mapper 代理机制,自动实现一些基本的 CRUD 操作,减少编写重复代码的工作量。
首先,创建一个 Mapper 接口,该接口定义一些基本的数据库操作方法,如增删改查等。例如:
public interface BaseMapper<T> {
void insert(T entity);
void update(T entity);
void delete(Long id);
T getById(Long id);
List<T> getAll();
}
然后,在自己的 DAO 接口中继承该 Mapper 接口,并且添加自己的扩展方法。例如:
public interface UserMapper extends BaseMapper<User> {
User getByUsername(String username);
List<User> getByAge(int age);
}
在上面的例子中,UserMapper 继承了 BaseMapper
最后,在 MyBatis 的配置文件中,将 Mapper 接口注册到 MapperScannerConfigurer 中。例如:
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.dao"/>
</bean>
这样,MyBatis 就会扫描指定的包路径下的所有 Mapper 接口,并自动创建对应的实现类。这些实现类会继承 BaseMapper 接口,并且包含自定义的方法。
使用时,只需注入对应的 Mapper 接口,即可调用其中定义的方法。例如:
@Autowired
private UserMapper userMapper;
public void addUser(User user) {
userMapper.insert(user);
}
public User getUserByUsername(String username) {
return userMapper.getByUsername(username);
}
通过继承 Mapper 接口,可以方便地扩展自己的 DAO 接口,并利用 MyBatis 的自动实现功能,简化数据库操作的编写。
原文地址: https://www.cveoy.top/t/topic/otSJ 著作权归作者所有。请勿转载和采集!