Mybatis这个框架是一个持久层的框架,这个框架让我觉得好用的地方就是动态SQL,就是SQL中的的一些关键字一些字符可以通过标签动态的删除,例如在你书写修改sql语句的时候,可能只修改的部分字段,如果字段多的情况下就会有好几种情况,这样就会重复的书写SQL语句,会很繁琐,所以这个动态的SQL可以减少开发人员的工作量.这里写SQL语句只是举例,为了更能理解标签的用法
<!--
if标签 test属性书写的条件 类似于java中if语句 如果符合条件就加上if标签中的 sql语句的片段
set标签 这里不难发现 在SQL语句的dpmIntro字段后面 是多了一个逗号的 set标签会自动的帮你把最后一个逗号去掉
where标签 where标签的功能在这里没有用到 如果在多条件的查询中
条件字段中间是要加上and的 where标签会自动的帮你去掉第一个and
同样的这里的标签 根据业务需求在增删改查的SQL语句中都能使用 这里只是举例
-->
<update id="updateDpm" parameterType="queryVo">
UPDATE t_dpm
<set>
<if test="dpm.dpmName != null and dpm.dpmName !=''">
dpmName = #{dpm.dpmName},
</if>
<if test="dpm.dpmIntro != null and dpm.dpmIntro !=''">
dpmIntro = #{dpm.dpmIntro},
</if>
</set>
<where>
dpmId = #{dpm.dpmId}
</where>
</update>
由于上面where标签没有体现出来用法,这里就在写一个用到where标签的mybatisSQL
<!--
where标签 如果在多条件的查询中 条件字段中间是要加上and的 where标签会自动的帮你去掉第一个and
-->
<select id="findUserByNameAndSex" parameterType="cn.hd.param.QueryVo" resultType="cn.hd.pojo.User">
SELECT * FROM t_user
<where>
<if test="user.name != null and user.name != ''">
AND name LIKE "%"#{user.name}"%"
</if>
<if test="user.sex != null and user.sex != ''">
AND sex=#{user.sex}
</if>
</where>
</select>