Mybatis实战应用总结
参数:对象List
功能:批量更新
<update id="updateAttribute" parameterType="java.util.List">
update objectattribute set
dataType =
<foreach collection="list" item="item" index="index" separator=" " open="case data_objectUID" close="end">
when #{item.data_objectUID} then #{item.dataType}
</foreach>
,isNotNull =
<foreach collection="list" item="item" index="index" separator=" " open="case data_objectUID" close="end">
when #{item.data_objectUID} then #{item.isNotNull}
</foreach>
,isFilter =
<foreach collection="list" item="item" index="index" separator=" " open="case data_objectUID" close="end">
when #{item.data_objectUID} then #{item.isFilter}
</foreach>
,isHidden =
<foreach collection="list" item="item" index="index" separator=" " open="case data_objectUID" close="end">
when #{item.data_objectUID} then #{item.isHidden}
</foreach>
,displayType =
<foreach collection="list" item="item" index="index" separator=" " open="case data_objectUID" close="end">
when #{item.data_objectUID} then #{item.displayType}
</foreach>
,displayLogic =
<foreach collection="list" item="item" index="index" separator=" " open="case data_objectUID" close="end">
when #{item.data_objectUID} then #{item.displayLogic}
</foreach>
where data_objectUID in
<foreach collection="list" item="item" index="index" separator="," open="(" close=")">
#{item.data_objectUID}
</foreach>
</update>
参数:List< String >
功能:批量删除
<delete id="deleteAttributes" parameterType="java.util.List">
delete from ObjectAttribute where object_attributeUID in
<foreach item="item" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
参数:对象
功能:条件模糊查询
<select id="findByCondition" parameterType="cn.neu.domain.ObjectAttribute" resultType="cn.neu.domain.ObjectAttribute">
select * from ObjectAttribute
<where>
<if test="object_attributeUID!=null">
and object_attributeUID like "%"#{object_attributeUID}"%"
</if>
<if test="displayType!=null">
and displayType like "%"#{displayType}"%"
</if>
<if test="displayLogic!=null">
and displayLogic like "%"#{displayLogic}"%"
</if>
<if test="data_objectUID!=null">
and data_objectUID like "%"#{data_objectUID}"%"
</if>
</where>
</select>
参数:对象List
功能:批量插入
<insert id="insertAttribute" parameterType="java.util.List">
insert into objectattribute (object_attributeUID,
attributeName,attributeID,dataType,dataLength,isNotNull,isFilter,isHidden,displa
yType,displayLogic,data_objectUID)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.object_attributeUID},#{item.attributeName},#{item.attributeID},#
{item.dataType},#{item.dataLength},#{item.isNotNull},#{item.isFilter},#
{item.isHidden},#{item.displayType},#{item.displayLogic},#{item.data_objectUID})
</foreach>
</insert>
参数:无
功能:主子表关联查询
a表为主表,b表为子表
a对象中有个属性为 “b对象的List”
即
a{
…
List< b > bList;
}
b{
…
}
<select id="findAll" resultMap="findAll" resultType="cn.neu.domain.DataObject">
SELECT a表的字段,b表的字段
FROM
a left join b on xxx =
limit #{before},#{pageSize}
</select>
<resultMap type="cn.neu.domain.DataObject" id="findAll">
<result property="data_objectUID" column="data_objectUID"/>
<result property="objectID" column="objectID"/>
......
<result property="application_infoUID" column="application_infoUID"/>
<collection property="attrviteList" ofType="cn.neu.domain.ObjectAttribute">
......
<result column="displayLogic" property="displayLogic" />
<result column="data_objectUID" property="data_objectUID" />
</collection>
</resultMap>
参数:键值对
功能:模糊查找数据库中的key值为value的行
${xxxx} = #{xxxx}