在使用mybatis的开发过程中,我们常常苦恼如何使用动态SQL来解决多参数问题,下面几条SQL可以参考.
TestEntity类有三个属性id 、name、age,数据库mysql。
下面是增删改查的示例:
按照id、name、age 查询返回集合示例
<select id="queryTests" parameterType="amywebcode.com.it.model.TestEntity"
resultType="amywebcode.com.it.model.TestEntity">
select id,name,age from Test
where 1=1
<if test="id!='' and id!=null"> and id=#{id} </if>
<if test="name!='' and name!=null">and name=#{name} </if>
<if test="age!='' and age!=null">and age=#{age} </if>
</select>
根据id查询单条数据示例
<select id="queryTest" parameterType="amywebcode.com.it.model.TestEntity"
resultType="amywebcode.com.it.model.TestEntity">
select id,name,age from Test
where id = #{id}
</select>
新增sql示例:
<insert id="addTestEntity" parameterType="amywebcode.com.it.model.TestEntity">
insert into Test(id,name,age)
value(
#{id,jdbcType=VARCHAR},
#{name,jdbcType=VARCHAR},
#{age,jdbcType=INTEGER}
)
</insert>
删除示例
<delete id="delTestEntity" parameterType="amywebcode.com.it.model.TestEntity">
delete from Test
where 1=1
<if test="id!='' and id!=null">and id=#{id} </if>
<if test="name!='' and name!=null">and name=#{name} </if>
<if test="age!='' and age!=null">and age=#{age} </if>
</delete>
按照id更新示例
<update id="updataTestEntity" parameterType="amywebcode.com.it.model.TestEntity">
update Test
<trim prefix="set" suffixOverrides=",">
<if test="name!='' and name!=null">name=#{name} </if>
<if test="age!='' and age!=null">age=#{age} </if>
</trim>
where Id = #{Id}
</update>