一 、概要
映射器是 MyBatis 中最重要、最复杂的组件,它由一个接口和对应的 XML 文件(或注解)组成。它可以配置以下内容:
- 描述映射规则。
- 提供 SQL 语句,并可以配置 SQL 参数类型、返回类型、缓存刷新等信息。
- 配置缓存。
- 提供动态 SQL。
二、XML 实现映射器(推荐)
用 XML 定义映射器分为两个部分:接口和 XML。
定义接口(相当于Dao的接口定义)
public interface XXXMapper {
public int insert();
public int update();
public Object select();
public int delete();
}
定义XML(相当于Dao接口的实现类)
<?xml version="1.0" encoding="UTF-8" ?>
<!-- 接口 命名空间 固定结构-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 根节点 关联接口实现类-->
<mapper namespace="包名+接口名>
<select id="接口方法名" resultType="接口返回类型">
<!-- 查询sql 语句-->
</select>
<insert id="接口方法名">
<!-- 插入SQL 语句-->
</insert>
<update id="接口方法名">
<!-- 更新SQL 语句-->
</update>'
<update id="接口方法名">
<!-- 更新SQL 语句-->
</update>'
<delete id="接口方法名">
<!-- 删除SQL 语句-->
</delete>
</mapper>
三、注解实现映射器(个人不推荐)
采用注解方式定义映射器
它只需要一个接口就可以通过 MyBatis 的注解来注入 SQL
public interface XXXMapper {
@Insert("INSERT INTO ...")
public int insert();
@Update("UPDATE...SET... ")
public int update();
@Select("SELECT ...")
public Object select();
@Delete("DELETE FROM ...")
public int delete();
}
说明
在企业实战开发中SQL 的复杂度远远超过我们现在看到的 SQL,如果稍微复杂点的sql放在java代码中,显然代码的可读性也会下降。而且维护起来比较麻烦。
网友评论