尽管mybatis能够在接口配置sql,但是有时候需要动态拼接sql,就需用到xml文件配置sql啦
这是我的一个简单配置文件:
<?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.ming.dao.i.IuserDao">
<!--配置一个resultMap 指定返回的类型 -->
<!-- <resultMap id="userResult" type="User"> -->
<!-- <id column="userId" property="userId" /> -->
<!-- <result column="userName" property="userName" /> -->
<!-- <result column="passWord" property="passWord" /> -->
<!-- </resultMap> -->
<select id="getUserById" parameterType="int" resultType="User">
select *
from user where userId=#{userId}
</select>
<select id="getUserByNameOrPass" parameterType="com.ming.pojo.User"
resultType="User">
<!-- 方法一 -->
<!-- select * from user where 1=1 -->
<!-- <if test="userName!=null and !"".equals(userName.trim())"> -->
<!-- and userName like '%' #{userName} '%' -->
<!-- </if> -->
<!-- <if test="passWord!=null and !"".equals(passWord.trim())"> -->
<!-- and passWord like '%' #{passWord} '%' -->
<!-- </if> -->
<!-- 方法二 -->
<![CDATA[
select * from user where 1=1
<#if userName??>
and userName like : userName
</#if>
<#if passWord??>
and passWord like : passWord
</#if>
]]>
</select>
<delete id="deleteOneById" parameterType="int">
delete from user where
userId=#{userId}
</delete>
<select id="getUsersByPage" parameterType="com.ming.pojo.User"
resultType="User">
select * from user where 1=1
<if test="userName!=null and !"".equals(userName.trim())">
and userName like '%' #{userName} '%'
</if>
<if test="passWord!=null and !"".equals(passWord.trim())">
and passWord like '%' #{passWord} '%'
</if>
</select>
</mapper>
方法二,我是在其他地方看到的 不是很明白,那是什么技术,希望知道的人告诉我,谢谢