mybatis insert多级List级联类 之(批量插入返回主键集合)使用《示例》下
来源:互联网 发布:短信端口号查询 编辑:程序博客网 时间:2024/06/06 00:49
@Transactionalpublic int notifyStationStats(String arg0, TStationStatsInfo arg1) throws TException {Date now = new Date();Date startTime = null,endTime = null;StationStats sStats=new StationStats();sStats.setStationId(arg1.getStationID());sStats.setStationElectricity(arg1.getStationElectricity());sStats.setUpdateTime(now);sStats.setCreateUser("admin");sStats.setUpdateUser("admin");sStats.setCreateTime(now);try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); startTime = sdf.parse(arg1.getStartTime()); endTime = sdf.parse(arg1.getEndTime()); sStats.setStartTime(startTime); sStats.setEndTime(endTime);} catch (ParseException e) { log.error(e.getMessage()); } System.err.println("插入前主键="+sStats.getStationStatsId());stationStatsMapper.insert(sStats);System.err.println("插入后返回主键="+sStats.getStationStatsId());/*** 对推送的设备统计信息执行批量插入*/List<EquipmentStats> esList=new ArrayList<EquipmentStats>();for (int i = 0; i < arg1.getEquipmentStatsInfos().size(); i++) {EquipmentStats es=new EquipmentStats();es.setEquipmentId(arg1.getEquipmentStatsInfos().get(i).getEquipmentID());es.setEquipmentElectricity(arg1.getEquipmentStatsInfos().get(i).getEquipmentElectricity()); es.setTconnectorStatsTinfo(arg1.getEquipmentStatsInfos().get(i).getConnectorStatsInfos());esList.add(es); }Map<String, Object> emap=new HashMap<String, Object>();emap.put("stationStatsId", sStats.getStationStatsId());emap.put("list",esList);emap.put("startTime", startTime);emap.put("endTime", endTime);emap.put("updateTime", now);emap.put("updateUser", "admin");emap.put("createTime", now);emap.put("createUser", "admin");System.err.println(JSON.toJSONString(esList));System.err.println("设备批量--之前主键:"+esList.get(0).getEquipmentStatsId()+","+esList.get(1).getEquipmentStatsId());equipmentStatsMapper.notifyEquipmentBatch(emap);for (int i = 0; i < esList.size(); i++) {System.err.println("设备批量之后主键:"+esList.get(i).getEquipmentStatsId()+"\n");}System.err.println(JSON.toJSONString(esList));/*** 对推送的接口信息执行批量插入*/List<ConnectorStats> csList =new ArrayList<ConnectorStats>();for (int i = 0; i < esList.size(); i++) {for (int j = 0; j <esList.get(i).getTconnectorStatsTinfo().size(); j++) {ConnectorStats cs =new ConnectorStats();cs.setEquipmentStatsId(esList.get(i).getEquipmentStatsId().intValue());cs.setConnectorId(esList.get(i).getTconnectorStatsTinfo().get(j).getConnectorID());cs.setConnectorElectricity(esList.get(i).getTconnectorStatsTinfo().get(j).getConnectorElectricity());csList.add(cs);}}Map<String, Object> cmap=new HashMap<String, Object>();cmap.put("list",csList);cmap.put("startTime", startTime);cmap.put("endTime", endTime);cmap.put("updateTime", now);cmap.put("updateUser", "admin");cmap.put("createTime", now);cmap.put("createUser", "admin");System.err.println(JSON.toJSONString(csList));connectorStatsMapper.notifyConnectorBatch(cmap);return 1;} <!-- 对推送的设备统计信息执行批量插入 --> <insert id="notifyEquipmentBatch" parameterType="java.util.Map" keyProperty="equipmentStatsId" useGeneratedKeys="true">insert into equipment_stats ( Equipment_Stats_Id, Org_Id, Station_Stats_Id, Start_Time, End_Time, Create_User, Create_Time, Update_User, Update_Time, Equipment_Id,Equipment_Electricity)<foreach collection="list" item="item" index="index"separator="UNION ALL"> SELECT #{equipmentStatsId,jdbcType=BIGINT},#{orgId,jdbcType=VARCHAR}, #{stationStatsId,jdbcType=INTEGER}, #{startTime,jdbcType=TIMESTAMP}, #{endTime,jdbcType=TIMESTAMP}, #{createUser,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateUser,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP},#{item.equipmentId,jdbcType=VARCHAR},#{item.equipmentElectricity,jdbcType=DOUBLE}FROM DUAL </foreach></insert>
ps:DB三表:station-stats equipment-stats connector-stats
三class:StationStatsInfo.java ==》List<TEquipmentStatsInfo> EquipmentStatsInfos; // required
EquipmentStats.java ==》List<TConnectorStatsInfo> ConnectorStatsInfos; // required
ConnectorStats.java
对应mapper的sql语句
======================================
以下是代码:
ps:
Mybatis批量插入返回自增主键参考地址:http://blog.csdn.net/u014336799/article/details/52023887
1:升级Mybatis版本到3.3.1。
2、在Dao中不能使用@param注解。
2:这个地方接收参数
阅读全文
0 0
- mybatis insert多级List级联类 之(批量插入返回主键集合)使用《示例》下
- Mybatis之Insert操作详解(返回主键、批量插入)
- MyBatis Insert返回主键和批量插入
- mybatis query多级List级联类 之collection标签使用《示例》上
- MyBatis:Insert操作详解(返回主键、批量插入)
- MyBatis:Insert操作详解(返回主键、批量插入)
- MyBatis:Insert操作详解(返回主键、批量插入)
- MyBatis批量插入返回主键
- mybatis返回主键,批量插入
- Mybatis之insert返回主键
- mybatis 批量insert返回主键列表
- mybatis mysql 批量insert 返回主键
- mybatis mysql 批量insert 返回主键
- mybatis insert 插入语句返回主键
- Mybatis Insert 插入记录返回主键
- Mybatis之foreach批量insert,返回主键id列表(修复Mybatis返回null的bug)
- MyBatis魔法堂:Insert操作详解(返回主键、批量插入)
- MyBatis魔法堂:Insert操作详解(返回主键、批量插入)
- Android使用WebView实现图片点击的监听
- Shopping Offers
- sql学习记录
- fdisk入门
- linux中动态库的编译和加载的查找顺序
- mybatis insert多级List级联类 之(批量插入返回主键集合)使用《示例》下
- eclipse 和 交叉工具链构建嵌入式应用编译及调试环境
- JavaScript权威指南(第6版)
- JavaWeb入门-----Http协议
- ServiceLoader原理解析
- 8. Python面向对象编程
- 【集训】jzoj 2017.7.11 noip模拟赛A 总结
- 编程语言 Python__002__字符串
- ★hdu 3829 Cat VS Dog (最大独立集)