阅读量:0
在 MyBatis 中实现 BaseDao 接口,可以遵循以下步骤:
- 创建一个通用的 BaseDao 接口,定义一些基本的 CRUD 操作。
public interface BaseDao<T> { int insert(T entity); int update(T entity); int delete(int id); T findById(int id); List<T> findAll(); }
- 创建一个通用的 Mapper XML 文件,实现 BaseDao 接口中的方法。
<!-- BaseMapper.xml --> <mapper namespace="com.example.dao.BaseDao"> <insert id="insert" parameterType="T"> INSERT INTO ${tableName} (...) VALUES (...) </insert> <update id="update" parameterType="T"> UPDATE ${tableName} SET ... WHERE id = #{id} </update> <delete id="delete"> DELETE FROM ${tableName} WHERE id = #{id} </delete> <select id="findById" resultType="T"> SELECT * FROM ${tableName} WHERE id = #{id} </select> <select id="findAll" resultType="T"> SELECT * FROM ${tableName} </select> </mapper>
- 为每个实体类创建一个 Dao 接口,继承 BaseDao 接口。
public interface UserDao extends BaseDao<User> { }
- 为每个实体类创建一个 Mapper XML 文件,指定对应的表名和命名空间。
<!-- UserMapper.xml --> <mapper namespace="com.example.dao.UserDao"> <property name="tableName" value="user"/> <!-- 引入 BaseMapper.xml 中的 SQL 语句 --> <include resource="BaseMapper.xml"/> </mapper>
- 在 MyBatis 配置文件中注册这些 Mapper。
<!-- mybatis-config.xml --><configuration> <mappers> <mapper resource="com/example/dao/UserMapper.xml"/> <!-- 其他实体类的 Mapper 文件 --> </mappers> </configuration>
- 在 Service 层或其他需要使用 Dao 的地方,通过依赖注入的方式获取 Dao 实例。
@Service public class UserService { @Autowired private UserDao userDao; public void createUser(User user) { userDao.insert(user); } // 其他业务逻辑 }
这样,你就可以在 MyBatis 中实现一个通用的 BaseDao 接口,并为每个实体类提供相应的 Dao 实现。