Mybatis
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>
浙公网安备 33010602011771号