批量插入

本文介绍了一种批量插入UserTicket对象的方法,通过循环创建UserTicket实例并设置相应属性,最终将这些实例作为列表批量插入数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//批量插入UserTicket,把要插入的东西封装成list,然后插入list
service:
TicketModel ticketModel = _ticketModelDao.selectByPrimaryKey(ticketCharge.getTicketModelId());
List<UserTicket> insertList = new ArrayList<UserTicket>();
Long userId = ticketCharge.getUserId();
Date nowDate = new Date();
Date yearAfter = DateUtil.getOneYearAfter();
for(int i=0;i<ticketModel.getTicketNumber();i++) {
   UserTicket userTicket = new UserTicket();
   userTicket.setCreateTime(nowDate);
   userTicket.setCreateUser("U" + userId);
   userTicket.setEndTime(yearAfter);
   userTicket.setStartTime(nowDate);
   userTicket.setTicketChargeId(ticketCharge.getTicketChargeId());
   userTicket.setTicketModelId(ticketCharge.getTicketModelId());
   userTicket.setType(TicketConstant.UserTicketTypeEnum.AVAILABLE.getValue());
   userTicket.setUpdateTime(nowDate);
   userTicket.setUpdateUser("U" + userId);
   userTicket.setUserId(userId);
   insertList.add(userTicket);
}
int insert = _userTicketDao.addUserTicketBatch(insertList);

dao:
int addUserTicketBatch(List<UserTicket> userTickets);
mapperring.xml:
<insert id="addUserTicketBatch" useGeneratedKeys="true" parameterType="java.util.List">  
    <selectKey resultType="long" keyProperty="id" order="AFTER">  
        SELECT  
        LAST_INSERT_ID()  
    </selectKey>  
   insert into user_ticket (ticket_model_id, ticket_charge_id, 
      user_id, type, start_time, 
      end_time, create_time, create_user, 
      update_time, update_user)   
    values  
    <foreach collection="list" item="item" index="index" separator="," >  
       (#{item.ticketModelId,jdbcType=BIGINT}, #{item.ticketChargeId,jdbcType=BIGINT}, 
      #{item.userId,jdbcType=BIGINT}, #{item.type,jdbcType=INTEGER}, #{item.startTime,jdbcType=TIMESTAMP}, 
      #{item.endTime,jdbcType=TIMESTAMP}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.createUser,jdbcType=VARCHAR}, 
      #{item.updateTime,jdbcType=TIMESTAMP}, #{item.updateUser,jdbcType=VARCHAR})
    </foreach>  
</insert>  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值