日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MyBatis注解模式批量insert方法

發布時間:2023/11/29 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyBatis注解模式批量insert方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

方法一:script標簽方式

@Insert("<script>insert into xxx (channelId,siteId) " +"values " +"<foreach collection=\"list\" item=\"item\" index=\"index\" separator=\",\" >(#{item.channelId},#{item.siteId})" +"</foreach></script>")public int addxxx(@Param("list")List<xxxBean> xxxBean);

方法二:SQL直接生成 ? 注意該方法經過實際使用出現問題!!!!!!!!!!!!!!!!!!!!.

當批量插入的字段中包涵中文時,這樣拼接的中文參數是沒有' '包裹的.存儲的時候就會出錯.因此該方式只適合存儲字段中只有數字的情況,當然也可以在拼接的時候將''拼接上,但是很容易出錯

@InsertProvider(type=SqlProvider.class,method="addccc") public int addxxxx(@Param("aBean")List<xxxBean> xxxBean); public String addccc(Map<String,Object> map){List<xxxBean> channelList = (List<xxxBean>)map.get("aBean");StringBuilder sql = new StringBuilder("insert into table").append(" (channelId, siteId) ").append("values ");for (int i=0;i<channelList.size();i++) {sql.append("(").append(channelList.get(i).getChannelId()).append(",").append(channelList.get(i).getSiteId()).append(")");if(i < channelList.size() - 1){sql.append(",");}}return sql.toString();}

方法三: 拼接下標取值的SQL 試用了下,沒問題,有待觀察

需要得到以下格式的SQL:

insert into user (name,sex) values (#{userBeans[0].name},#{userBeans[0].sex}),(#{userBeans[1].name},#{userBeans[1].sex}) public String insertUserByList(Map<String,Object> map){List<User> alarmInBeans = (List<userBeans>)map.get("userBeans");StringBuilder sql = new StringBuilder("insert into user (name, sex) values");// #{userBeans[0].name}// 拼接出這樣的格式的最終sql通過#{}取值// 需要用來格式化的字符串模板MessageFormat mf = new MessageFormat("(#'{'userBeans[{0}].name}, #'{'alarmInBeans[{0}].sex})");for (int i = 0; i < alarmInBeans.size(); i++) {// 將{0}替換為object數組的第一個元素sql.append(mf.format(new Object[] { i }));if (i < alarmInBeans.size() - 1) {sql.append(",");}}return sql.toString(); }

?

轉載于:https://my.oschina.net/MrBamboo/blog/882880

總結

以上是生活随笔為你收集整理的MyBatis注解模式批量insert方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。