select标签:
id:相当于方法名
parameterType:传值类型
resultType:返回值类型
值占位符:
select * from user where username like
1. #{username} // %王%
2. '%${value}%' //王
3. "%"#{username}"%" // 王
resultMap标签:select标签使用resultMap代替resultType
自定义resultMap标签,将id设置与select内的resultMap相同
如以下代码,可将包装类的属性useId与数据库的字段列user_id对应
<resultMap type="order" id="xxxxx"> <id property="id" column="id" /> <!-- property属性名,column是sql里的字段列名 --> <result property="userId" column="user_id" /> </resultMap> <select id="getOrders" resultMap="xxxxx"> SELECT id, user_id, number, createtime, note FROM orders </select>
include、where和 if 标签:
1.include可引入sql标签里的内容:
<select id="getUser" parameterType="user" resultType="user"> <!-- include引入sql标签里的内容 --> </select> <!-- sql片段 --> <sql id="select"> select count(*) from user </sql>
2.where标签可以自动添加where,同时处理sql语句中第一个and关键字
3.使用 if 标签拼串生成sql语句:
<select id="getUser" parameterType="user" resultType="user"> <!-- include引入sql标签里的内容 --> <include refid="sqlid"></include> <where> <if test="sex!=null and sex!=''"> and sex=#{sex} </if> <if test="username!=null and username!=''"> and username like "%"#{username}"%" </if> </where> </select> <!-- sql片段 --> <sql id="sqlid"> select count(*) from user </sql>