//批量插入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>