首页 新闻 会员 周边

ibatis 批量insert 表名动态传入 数据库mysql

0
悬赏园豆:50 [待解决问题]

不传表名:方法是正确的

<insert id="insert_user" parameterClass="java.util.List">
<iterate conjunction=";" property="codes"> 
<![CDATA[ 
insert into device_user_$codes[].tableName$(cgwTime,TypeFlag,NodeFlag,DataFlag,cgwBatchs,abnormalOnlineUsers,normalOnlineUsers,time) 
values
]]> 
<![CDATA[ 
(#codes[].cgwTime#,#codes[].typeFlag#,#codes[].nodeFlag#,#codes[].dataFlag#,#codes[].cgwBatchs#,#codes[].abnormalOnlineUsers#,#codes[].normalOnlineUsers#,#codes[].time#)
]]> 
</iterate> 
</insert>

传表名:方法错误

<insert id="insert_user" parameterClass="java.util.List">
<iterate conjunction=";" property="codes">
<![CDATA[
insert into device_user_$codes[].tableName$(cgwTime,TypeFlag,NodeFlag,DataFlag,cgwBatchs,abnormalOnlineUsers,normalOnlineUsers,time)
values
]]>
<![CDATA[
(#codes[].cgwTime#,#codes[].typeFlag#,#codes[].nodeFlag#,#codes[].dataFlag#,#codes[].cgwBatchs#,#codes[].abnormalOnlineUsers#,#codes[].normalOnlineUsers#,#codes[].time#)
]]>
</iterate>
</insert>

 

那个高手给指指

weina的主页 weina | 初学一级 | 园豆:130
提问于:2017-05-08 17:12
< >
分享
所有回答(1)
0

device_user_$codes[]这个是?  表名的标示么

Ctrl` | 园豆:3317 (老鸟四级) | 2017-05-08 17:47

这一块想实现拼接表名  codes[] 这个是list集合   tableName是集合对象的属性也就是表名

支持(0) 反对(0) weina | 园豆:130 (初学一级) | 2017-05-08 17:49

或者在这一块可以实现取list的第一个对象的tableName属性的值

 

<insert id="insert_Umc_UserOnlineTrendList" parameterClass="java.util.List">
<![CDATA[
insert into device_umc_useronlinetrendlist_20170507(cgwTime,TypeFlag,NodeFlag,DataFlag,cgwBatchs,abnormalOnlineUsers,normalOnlineUsers,time)
values
]]>
<iterate conjunction=",">
<![CDATA[
(#codes[].cgwTime#,#codes[].typeFlag#,#codes[].nodeFlag#,#codes[].dataFlag#,#codes[].cgwBatchs#,#codes[].abnormalOnlineUsers#,#codes[].normalOnlineUsers#,#codes[].time#)
]]>
</iterate>
</insert>

 

只要把20170508 替换成动态的表名就行

支持(0) 反对(0) weina | 园豆:130 (初学一级) | 2017-05-08 17:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册