mybatis针对Oracle数据库进行(单个或多个条件)批量操作(新增、修改、删除)的sql写法--mysql
2017-04-12 16:32
1116 查看
1、批量新增:
2、批量修改:
单个条件、单个修改字段:
多个条件、多个修改字段:
3、批量删除:
单个条件:
多个条件:
多个条件第2种形式:
4、批量查询:(未验证)
5、mapper常用写法
<insert id="addMonthDutyIntoDB" parameterType="java.util.List"> insert into TB_DUTY select SEQ_TB_DUTY.nextval,A.* from( <foreach collection="list" item="item" index="index" separator="union"> SELECT #{item.dscd}, #{item.unitId},#{item.year},#{item.month},#{item.day},#{item.weekDay}, #{item.morningPeopleIds}, #{item.morningPeopleNames},#{item.afternoonPeopleIds},#{item.afternoonPeopleNames},#{item.eveningPeopleIds}, #{item.eveningPeopleNames},#{item.leaderIds},#{item.leaderNames},#{item.flag},#{item.remark},#{item.day0} FROM DUAL </foreach> ) A </insert>
2、批量修改:
单个条件、单个修改字段:
<update id="auditMultiByIds" parameterType="java.util.List"> update tb_code_name_result_new set state=#{state,jdbcType=INTEGER} where id in <foreach collection="list" item="item" index="index" open="(" separator="," close=")" > #{item} </foreach> </update>
多个条件、多个修改字段:
<update id="updateByMultiConditions" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="begin" close="; end;" separator=";"> update TB_DUTY <set> <if test="item.morningPeopleIds != null and item.morningPeopleIds != '' " > MORNING_PEOPLE_IDS=#{item.morningPeopleIds,jdbcType=VARCHAR}, </if> <if test="item.morningPeopleNames != null and item.morningPeopleNames != '' " > MORNING_PEOPLE_NAMES=#{item.morningPeopleNames,jdbcType=VARCHAR}, </if> <if test="item.afternoonPeopleIds != null and item.afternoonPeopleIds != '' " > AFTERNOON_PEOPLE_IDS=#{item.afternoonPeopleIds,jdbcType=VARCHAR}, </if> <if test="item.afternoonPeopleNames != null and item.afternoonPeopleNames != '' " > AFTERNOON_PEOPLE_NAMES=#{item.afternoonPeopleNames,jdbcType=VARCHAR}, </if> <if test="item.eveningPeopleIds != null and item.eveningPeopleIds != '' " > EVENING_PEOPLE_IDS=#{item.eveningPeopleIds,jdbcType=VARCHAR}, </if> <if test="item.eveningPeopleNames != null and item.eveningPeopleNames != '' " > EVENING_PEOPLE_NAMES=#{item.eveningPeopleNames,jdbcType=VARCHAR}, </if> <if test="item.leaderIds != null and item.leaderIds != '' " > LEADER_IDS=#{item.leaderIds,jdbcType=VARCHAR}, </if> <if test="item.leaderNames != null and item.leaderNames != '' " > LEADER_NAMES=#{item.leaderNames,jdbcType=VARCHAR}, </if> </set> where DUTY_ID=#{item.dutyId,jdbcType=INTEGER} </foreach> </update>
3、批量删除:
单个条件:
<delete id="delMultiByIds" parameterType="java.util.List"> delete from TB_CODE_NAME_RESULT_NEW where ID in <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </delete>
多个条件:
<delete id="delMultiByIds2" parameterType="java.util.List"> delete from tb_duty A where exists ( select 1 from( <foreach collection="list" item="item" index="index" separator="union all"> select B.* from tb_duty B where 1=1 and B.dscd=${item.dscd} and B.unit_id=${item.unitId} and B.year=${item.year} and B.month=${item.month} and B.flag=${item.flag} </foreach> )S where A.duty_id=S.duty_id ) </delete>
多个条件第2种形式:
<!-- 成功删除返回的是-1而不是删除的记录数 --> <delete id="delMultiByIds" > <foreach collection="list" item="item" index="index" open="begin" close="; end;" separator=";"> delete from tb_duty_statistics a where a.person_id in( select b.person_id from tb_duty_person_info b where b.dscd=#{dscd,jdbcType=CHAR} and b.unit_id=#{unitId,jdbcType=INTEGER} ) and substr(a.duty_id,1,7)=#{item.dutyId,jdbcType=CHAR} </foreach> </delete>
4、批量查询:(未验证)
<select id="selectBySomePoiIds" resultType="list" parameterType="java.util.Map"> SELECT <include refid="Base_Column_List" /> FROM 表名 WHERE poi_id in <foreach collection="poiIds" item="poiId" index="index" open="(" close=")" separator=","> #{poiId} </foreach> AND pass_uid = #{passUid} <if test="status != null"> AND status = #{status,jdbcType=BIGINT} </if> </select>
5、mapper常用写法
<resultMap id="BaseResultMap" type="com.xyxc.CustomerInfoEntity"> <id column="id" property="id" /> <result column="aa" property="aa" /> <result column="bb" property="bb" /> </resultMap> <sql id="table_column_no_id"> aa, bb , cc, dd, ee </sql> <sql id="columns" > id,<include refid="table_column_no_id"/> </sql> <sql id="table_name" > TableName </sql> <insert id="insert" parameterType="com.xyxc.CustomerInfoEntity" useGeneratedKeys="true" keyProperty="installmentId"> <![CDATA[ INSERT INTO T_DDQ_INSTALLMENT_INFO ( aa, bb , cc, dd, ee ) VALUES ( #{sltAccountId}, #{loanPeriodNo}, #{scheduleAmount}, now(), now() ) ]]> <selectKey resultType="Long" keyProperty="installmentId" order="AFTER"> <![CDATA[ SELECT LAST_INSERT_ID() AS installmentId ]]> </selectKey> </insert>
相关文章推荐
- mybatis针对Oracle数据库进行(单个或多个条件)批量操作(新增、修改、删除)的sql写法--mysql
- SQL语句处理一些修改、新增、删除、修改属性操作(MySql)
- SQL语句处理一些修改、新增、删除、修改属性操作(MySql)
- 怎样在C#里对xml文件进行修改,新增,删除,插入操作?
- C#里对xml文件进行修改,新增,删除,插入操作
- 关于C#和ASP.NET中对App.config和Web.config文件里的[appSettings]和[connectionStrings]节点进行新增、修改、删除和读取相关的操作
- 基础--JAVA对Mysql进行连接、插入、修改、删除操作
- 对config文件中的配置进行新增修改删除读取操作
- 对web.config进行新增修改删除读取操作
- 对web.config进行新增修改删除读取操作
- PHP MYSQL对数据库进行添加、修改、删除等一系列操作
- MySQL 添加列,修改列,删除列 的SQL写法
- 对web.config进行新增修改删除读取操作
- 利用SQL语句进行添加、删除、修改字段,表与字段的基本操作,数据库备份等
- JAVA对MYSQL进行连接、插入、修改、删除操作
- 对web.config进行新增修改删除读取操作
- 怎样在C#里对xml文件进行修改,新增,删除,插入操作?
- 对appSettings节点进行新增、修改、删除、读取操作的类AppSettingsHelper
- 对web.config进行新增修改删除读取操作
- 通过servlet来实现对Mysql进行连接、插入、修改、删除操作