int updateByList(List list)
Mappe层
批量修改
<update id="updateByList" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" separator="">
update jt_fin_repayment_plan
<set >
erestTotal != null" >
ORG_INTEREST_TOTAL = #{item.orgInterestTotal},
</if>
<if test="item.delFlag != null" >
DEL_FLAG = #{item.delFlag},
</if>
<if test="item.state != null" >
STATE = #{item.state},
</if>
<if test="item.createBy != null" >
CREATE_BY = #{item.createBy},
</if>
<if test="item.createTime != null" >
CREATE_TIME = #{item.createTime},
</if>
<if test="item.updateBy != null" >
UPDATE_BY = #{item.updateBy},
</if>
UPDATE_TIME = #{NOW(),
</set>
where REPAYMENT_ID = #{item.repaymentId}
</foreach>
</update>
----------------------------------------------------------------------------------------------------------
dao层
//批量添加
int addList(List list)
Map层
批量添加
<insert id="addList" parameterType="java.util.List">
insert into jt_fin_adjust_rates_project_history (
ID,ADJUST_RATES_ID,PROJECT_ID,START_WHOLE,
END_WHOLE,START_WITHOUT,END_WITHOUT,PROJECT_DATE,
KEEP,AUDIT_FLAG,STATUS,REMARK,DEL_FLAG,
CREATE_BY,CREATE_TIME,UPDATE_TIME,UPDATE_BY
)
values
<foreach collection="list" separator="," item="item" index="index">
((select UUID()), #{item.adjustRatesId},#{item.projectId},#{item.startWhole},
#{item.endWhole},#{item.startWithout},#{item.endWithout},#{item.projectDate},
#{item.keep},#{item.auditFlag},#{item.status},#{item.remark},#{item.delFlag},
#{item.createBy},sysdate(), #{item.updateTime}, #{item.updateBy})
</foreach>
</insert>
注意:我的id VARCHAR类型 主键 不能递增 在这里我用的是UUID生成的
原本,想写一个批量添加,回显id但是没实现就不写了,有大佬可以补充一下
MyBatis提供用于插入数据的注解有两个:@insert,@InsertProvider,类似还有:@DeleteProvider@UpdateProvider,和@SelectProvider,作用:
用来在实体类的Mapper类里注解保存方法的SQL语句
区别:
@Insert是直接配置SQL语句,而@InsertProvider则是通过SQL工厂类及对应的方法生产SQL语句,这种方法的好处在于,我们可以根据不同的需求生产出不同的SQL,适用性更好。
使用:
@Insert
@Insert(“insert into blog(blogId,title,author) values(#blogId,#title,#author)”)
public boolean saveBlog(Blog blog)
@InsertProvider
在mapper接口中的方法上使用@InsertProvider注解:
参数解释:
type为工厂类的类对象,
method为对应的工厂类中的方法,方法中的@Param(“list”)是因为批量插入传入的是一个list,但是Mybatis会将其包装成一个map。其中map的key为“list”,value为传入的list。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)