1.XML文件定义规范
- XML映射文件的名称与
Mapper
接口名称一致,并且将XML映射文件
和Mapper
接口放置在相同包下(同包同名)。 - XML映射文件的
namespace
属性为Mapper
接口全限定名一致。 - XML映射文件中sql语句的id与
Mapper
接口中的方法名一致,并保持返回类型一致。
以条件查询为例:
- mapper中的代码:
@Mapper
public interface EmpMapper {
public List<Emp> list (String name, Short gender , LocalDate begin , LocalDate end);
}
- XML映射文件中的代码:
//开头部分代码可以从mybatis官网copy
<?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="com.itheima.mapper.EmpMapper"> //全类名
<select id="list" resultType="com.itheima.pojo.Emp">
//sql语句的id与Mapper接口中的方法名一致
//保持返回类型一致
# resultType:单条记录的封装类型,如果是对象,则赋为全类名
select * from emp where name like concat('%', #{name}, '%') and gender = #{gender}
and entrydate between #{begin} and #{end} order by update_time desc
</select>
</mapper>
2.插件MybatisX
MybatisX
是一款基于IDEA的快速开发Mybatis
的插件,为效率而生。
3.讨论(使用注解还是XML文件映射)
- 使用Mybatis的注解,主要是来完成一些简单的增删改查功能。
- 如果需要实现复杂的SQL功能,建议使用XML来配置映射语句。
- 参考中文官网:
使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL 语句更加混乱不堪。 因此,如果你需要做一些很复杂的操作,最好用 XML 来映射语句。
选择何种方式来配置映射,以及认为是否应该要统一映射语句定义的形式,完全取决于你和你的团队。 换句话说,永远不要拘泥于一种方式,你可以很轻松的在基于注解和 XML 的语句映射方式间自由移植和切换。