规范
XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)。
XML映射文件的namespace属性为Mapper接口全限定名一致。
XML映射文件中sql语句的id与Mapper接口中的方法名一致,并保持返回类型一致。
使用情况
当sql语句比较复杂的时候可以选择xml的形式,但是当sql语句比较简单可以直接使用mapper中的注解写sql
动态sql标签
if
<if>:用于判断条件是否成立,使用test属性进行条件判断,如果条件为true,则拼接sql
<where>:where元素只会在子元素有内容的情况下才插入where子句,而且会自动去除子句的开头的and和or
<?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.ljx.mapper.UserMapper">
<select id="list" resultType="com.ljx.Pojo.User">
select *
from user
<where>
<if test="name!=null">
name like concat('%',#{name},'%')
</if>
<if test="gender !=null">
and gender=#{gender}
</if>
</WHERE>
</select>
</mapper>