- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
- <mapper namespace="UserInfo">
- <resultMap id="UserInfoResult" type="com.demo.userinfo.model.UserInfo">
- <result column="user_id" jdbcType="VARCHAR" property="userId" />
- <result column="username" jdbcType="VARCHAR" property="username" />
- <result column="password" jdbcType="VARCHAR" property="password" />
- </resultMap>
- <!-- 语句中不能通过<include refid="xx" />方式引用 commonColumns 和 dynamicWhere-->
- <sql id="commonColumns">
- <![CDATA[ user_id, username, password ]]>
- </sql>
- <sql id="dynamicWhere">
- <where>
- <if test="@O@isNotEmpty(id)">
- AND ID = #{id}
- </if>
- <if test="@O@isNotEmpty(userName)">
- AND userName = #{userName}
- </if>
- <if test="@O@isNotEmpty(password)">
- AND password = #{password}
- </if>
- </where>
- </sql>
- <update id="update" parameterType="com.demo.userinfo.model.UserInfo"> UPDATE user_info
- <set>
- <if test="username != null">username = #{username} ,</if>
- <if test="password != null">password = #{password}</if>
- </set>
- WHERE
- user_id = #{userId}
- </update>
- <!-- 错误***** 只要采用Include方式引用公共的commonColumns和dynamicWhere就报错 ****** -->
- <select id="findById" parameterType="string" resultMap="UserInfoResult">
- select
- <include refid="commonColumns" />
- <![CDATA[ from user_info where user_id = #{userId} ]]>
- </select>
- <!-- 正确***** 只要采用Include方式引用公共的commonColumns和dynamicWhere就报错 ****** -->
- <select id="findById" parameterType="string" resultMap="UserInfoResult">
- select
- user_id, username, password
- <![CDATA[ from user_info where user_id = #{userId} ]]>
- </select>
- <!-- 错误***** 只要采用Include方式引用公共的commonColumns和dynamicWhere就报错 ****** -->
- <select id="findByConditions" resultMap="UserInfoResult" parameterType="com.demo.page">
- select
- <include refid="commonColumns" />
- from user_info
- where
- <include refid="dynamicWhere" />
- </select>
- <!-- 正确***** 只要不采用Include方式引用公共的commonColumns和dynamicWhere就正确 ****** -->
- <select id="findByConditions" resultMap="UserInfoResult" parameterType="com.demo.page">
- select
- user_id, username, password
- from user_info
- where 1= 1
- <where>
- <if test="@O@isNotEmpty(id)">
- AND ID = #{id}
- </if>
- <if test="@O@isNotEmpty(userName)">
- AND userName = #{userName}
- </if>
- <if test="@O@isNotEmpty(password)">
- AND password = #{password}
- </if>
- </where>
- </select>
- </mapper>
mybatis<SQL>(个人记录仅供参考)
最新推荐文章于 2023-12-10 14:25:25 发布