第一, 是組裝自己的的LIST 傳入參數,再循環得到對象
先貼 xml代碼
update 的時候, mysql數據庫, 一定要加上雙線單引號,否則會報錯,找不到數據庫屬性
<!-- 增加SNMP -->
<insert id="insertAllSnmp" parameterType="java.util.List">
insert into tb_device_snmp_new(id,community,ip,fac_id,fac_name,region_id,region_name,createTime,benable,port,poll_time)
values
<foreach collection="list" item="snmp" index="index" separator=",">
(
#{snmp.id},#{snmp.community},#{snmp.ip},#{snmp.fac_id},#{snmp.fac_name},#{snmp.region_id},
#{snmp.region_name},#{snmp.createTime},#{snmp.benable},#{snmp.port},#{snmp.poll_time}
)
</foreach>
</insert>
<update id="updateSnmp" parameterType="java.util.List">
<foreach collection="list" separator=";" item="cus">
update tb_device_snmp_new
set
`community`=#{cus.community},
`ip`=#{cus.ip},
`fac_id`=#{cus.fac_id},
`fac_name`=#{cus.fac_name},
`region_id`=#{cus.region_id},
`region_name`=#{cus.region_name},
`createTime`=#{cus.createTime},
`benable`=#{cus.benable},
`port`=#{cus.port},
`poll_time`=#{cus.poll_time}
where `id` = #{cus.id}
</foreach>
</update>
<delete id="deleteSnmp" parameterType="java.util.List">
DELETE FROM tb_client_flow_port WHERE id in
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.id}
</foreach>
</delete>
這種條件也是可以的
jfinal 條件原因最終批量更新不行 只能循環方法體
JSONObject save = (JSONObject) obj;
int id = save.getInteger("id");
String community = save.getString("community");
String fac_id = save.getString("fac_id");
String fac_name = save.getString("fac_name");
String region_name = save.getString("region_name");
String region_id = save.getString("region_id");
String ip = save.getString("ip");
String port = save.getString("port");
String benable = save.getString("benable");
String poll_time = save.getString("poll_time");
String createTime = utils.getLocalTime();
snmpMapper.updateSnmp(id, community, fac_id, fac_name, region_name, region_id, ip, createTime, benable, port,
poll_time);
});
public void updateSnmp(@Param("id") int id, @Param("community") String community, @Param("fac_id") String fac_id,
@Param("fac_name") String fac_name, @Param("region_name") String region_name,
@Param("region_id") String region_id, @Param("ip") String ip, @Param("createTime") String createTime,
@Param("benable") String benable, @Param("port") String port, @Param("poll_time") String poll_time);
<update id="updateSnmp" parameterType="map">
update tb_device_snmp_new
<trim prefix="set" suffixOverrides=",">
<if test="community!=null">community=#{community},</if>
<if test="ip!=null">ip=#{ip},</if>
<if test="fac_id!=null">fac_id=#{fac_id},</if>
<if test="fac_name!=null">fac_name=#{fac_name},</if>
<if test="region_id!=null">region_id=#{region_id},</if>
<if test="region_name!=null">region_name=#{region_name},</if>
<if test="createTime!=null">createTime=#{createTime},</if>
<if test="benable!=null">benable=#{benable},</if>
<if test="port!=null">port=#{port},</if>
<if test="poll_time!=null">poll_time=#{poll_time},</if>
</trim>
<where>
id = #{id}
</where>
</update>
---------------------
update tb_device_snmp_new
<trim prefix="set" suffixOverrides=",">
<if test="community!=null">community=#{community},</if>
<if test="ip!=null">ip=#{ip},</if>
<if test="fac_id!=null">fac_id=#{fac_id},</if>
<if test="fac_name!=null">fac_name=#{fac_name},</if>
<if test="region_id!=null">region_id=#{region_id},</if>
<if test="region_name!=null">region_name=#{region_name},</if>
<if test="createTime!=null">createTime=#{createTime},</if>
<if test="benable!=null">benable=#{benable},</if>
<if test="port!=null">port=#{port},</if>
<if test="poll_time!=null">poll_time=#{poll_time},</if>
</trim>
<where>
id = #{id}
</where>
第二步, 映射寫的文件方法參數
public int insertAllSnmp(@Param("list") List obj);
public int deleteSnmp(@Param("list") List obj);
public void updateSnmp(@Param("list") List objs);
第三步, 後臺調用參數了
傳入參數都是 JSONArray
JSONArray addList = new JSONArray();
snmpMapper.insertAllSnmp(addList);
其它一些更有用的方法
public List<User> findByIdList(@Param("idList")List<Integer> idList);
<select id="findByIdList" resultType="com.example.bean.User">
SELECT id, name, password, address, enable
FROM user
<where>
<if test="idList!= null and idList.size() > 0">
id IN
<foreach collection="idList" item="ietm" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
</select>
查詢再刪除的操作等
<insert id="AddClientFlowGroup" parameterType="com.zenlayer.ad.mapper.SnmpMapper">
<selectKey keyProperty="count" resultType="int" order="BEFORE">
select count(*) from tb_client_flow_group where id = #{id}
</selectKey>
<if test="count > 0">
update tb_client_flow_group
<trim prefix="set" suffixOverrides=",">
<if test="name!=null">name=#{name},</if>
<if test="status!=null">status=#{status},</if>
<if test="client_id!=null">client_id=#{client_id},</if>
</trim>
<where>
id = #{id}
</where>
</if>
<if test="count==0">
insert into tb_client_flow_group(id,name,status,client_id)
values (#{id},#{name},#{status},#{client_id})
</if>
</insert>