亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

springMVC 接收數組參數,mybatis 接收數組參數,mybatis批量插入/批量刪除案例

2019-11-15 00:38:21
字體:
來源:轉載
供稿:網友
sPRingMVC 接收數組參數,mybatis 接收數組參數,mybatis批量插入/批量刪除案例

案例是給一個用戶賦予多個權限,多個權限用其對應的主鍵 id 為參數,組成了 一個id數組,傳給springMVC,然后springMVC傳給mybatis,然后mybatis批量插入。其實類似的場景還有批量刪除多個,也是類似的。

1. 前臺頁面

        <thead><tr><th>權限選擇</th><th>name</th><th>permission</th></tr></thead>                  <c:forEach var="priv" items="${list }">                       <tr class="odd gradeX">                      <td><input type="checkbox" name="priv_id" value="${priv.id}" /></td>                      <td><c:out value="${priv.name}"/></td>                      <td><c:out value="${priv.permission}"/></td>                    </tr>                  </c:forEach>

2. jquery獲得選中的項的id值:

            //jquery獲取復選框值                var priv_ids =[];//定義一個數組                $('input[name="priv_id"]:checked').each(function(){    // 遍歷每一個name為priv_id的復選框,其中選中的執行函數                    priv_ids.push($.trim($(this).val()));    // 將選中的值添加到數組priv_ids中                });            console.log(priv_ids);            var indata = {userId:user_id, privIds:priv_ids};            $.post("/ems/priv/setPrivilege", indata, function(data){                if(data != null && data.result == 'ok'){                    console.log(data.msg);                    alert(data.msg);                }else{                    alert(data.msg);                }            }, 'json');

提交的json格式的數據:var indata = {userId:user_id, privIds:priv_ids};

其中的 priv_ids 是一個有 id 組成的數組。

3. springMVC接收數組參數:

    @RequestMapping(value="/setPrivilege")    @ResponseBody    public void setPrivilege(@RequestParam(value = "privIds[]") Integer[] privIds, Integer userId, PrintWriter writer){        int result = this.privilegeService.setPrivilegeForUser(privIds, userId);        Map<String, String> map = new HashMap<>();        if(result > 0){            map.put("result", "ok");            map.put("msg", "設置成功");            writer.write(JSON.toJSONString(map));        }    }

我們看到使用了:@RequestParam(value = "privIds[]") Integer[] privIds 來獲取前臺傳來的數組參數。

springMVC接收參數時,最好不要使用 int, long等原始類型,而應該使用它們對應的包裝類型,不然當傳入的參數為空時,會報錯,而包裝類型可以使用null表示傳入的空值。

4. service層的處理,很簡單,直接使用map向mybatis傳遞參數:

@Service("privilegeService")@Transactionalpublic class PrivilegeServiceImpl implements PrivilegeService {    @Autowired    private PrivilegeMapper privilegeMapper;    @Override    @Transactional(readOnly=true)    public List<Privilege> getAllPrivilege() {        return privilegeMapper.getAllPrivilege();    }    @Override    public int setPrivilegeForUser(Integer[] privIds, Integer userId) {        Map<String, Object> map = new HashMap<>();        map.put("privIds", privIds);        map.put("userId", userId);        return this.privilegeMapper.setPrivilegeForUser(map);    }}

5. 最后看 mybatis 的 xml 中的sql如何寫:

  <insert id="setPrivilegeForUser" parameterType="map">      insert into user_privilege(user_id, privilege_id) values       <foreach collection="privIds" index="index" item="item" separator=",">          ( #{userId}, #{item} )      </foreach>  </insert>

我們看到使用了 foreach 來循環傳遞進來的數組 privIds,最后組成的sql語句如下所示:

insert into user_privilege(user_id, privilege_id) values (3, 1),(3,2),(3,3),(3,4) 

user_id 不變,而privilege_id 是數組 privIds 中的循環出來的 id 值。其實就是數據庫的批量插入。

6. 批量刪除多個的處理

刪除時,和前面批量插入處理也是極其類似的,只在最后mybatis中xml中sql的寫法有點區別:

  <delete id="deleteByIds" parameterType="java.util.List">      delete from user_privilege where id in      <foreach collection="list" index="index" item="item" open="(" separator="," close=")">           #{item}         </foreach>    </delete>

比較批量刪除和批量插入,可以看出 foreach 中的 open="(" 和 close=")" 只在循環的開始和結束會加上,而 separator="," 是每循環一次,就加一次逗號。

7. 批量插入傳入對象List的例子:

<insert id="batchInsertStudent" parameterType="java.util.List">      insert into student (id,name,sex,tel,address) values    <foreach collection="list" item="item" index="index" separator="," >          (#{item.id},#{item.name},#{item.sex},#{item.tel},#{item.address})      </foreach>  </insert> 

其實掌握了 批量插入和批量刪除,批量更新也是一樣的。


上一篇:HelloBlogGarden

下一篇:對象引用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日日骚久久av| 亚洲一区二区中文字幕| 久久久久久九九九| 成人两性免费视频| 欧美成人全部免费| 8x拔播拔播x8国产精品| 亚洲一区二区三区777| 国产精品稀缺呦系列在线| 成人av电影天堂| 国产精品网站入口| 久久久久久尹人网香蕉| 国产精品爽黄69| 视频一区视频二区国产精品| 欧美大片第1页| wwwwwwww亚洲| 欧美日韩免费一区| 欧美精品videossex88| 91国产在线精品| 亚洲精品国产精品国产自| 久久国产精品久久精品| 日本高清+成人网在线观看| 国产欧美精品久久久| 国产精品视频一区国模私拍| 亚洲国产另类久久精品| 黄色精品一区二区| 亚洲深夜福利网站| 亚洲一区二区三区成人在线视频精品| 国产精品扒开腿爽爽爽视频| 亚洲激情电影中文字幕| 国产91免费看片| 欧美成aaa人片免费看| 亚洲精品乱码久久久久久按摩观| 欧美日韩在线另类| 色哟哟入口国产精品| 欧美成人精品在线| 亚洲国产精品电影在线观看| 国产欧美一区二区三区视频| 国模精品视频一区二区| 欧美激情久久久久| 欧美成人剧情片在线观看| 国产精品自拍小视频| 91在线国产电影| 97视频人免费观看| 久久久久久久999精品视频| 精品丝袜一区二区三区| 久久久国产视频91| 国内精品模特av私拍在线观看| 57pao精品| 久久久99免费视频| 中文字幕在线观看亚洲| 欧美性感美女h网站在线观看免费| 国产成人综合久久| 欧美黄色片免费观看| 久久久久久久影院| 欧美激情影音先锋| 2019国产精品自在线拍国产不卡| 亚洲国产精品久久精品怡红院| 亚洲黄色av网站| 亚洲bt天天射| 97精品国产91久久久久久| 91精品国产91久久久久福利| 久久久久亚洲精品| 中文字幕日韩综合av| 国产精品91视频| 精品久久久精品| 夜夜嗨av色一区二区不卡| 91中文字幕在线观看| 精品偷拍一区二区三区在线看| 日本aⅴ大伊香蕉精品视频| 国产欧美精品va在线观看| 亚洲成年网站在线观看| 欧美日韩国产麻豆| 欧美激情精品久久久| 欧美精品在线第一页| 欧美另类第一页| 九九热最新视频//这里只有精品| 91超碰中文字幕久久精品| 亚洲综合社区网| 国产日韩综合一区二区性色av| 日韩视频欧美视频| 欧美日韩国产精品一区| 国产婷婷97碰碰久久人人蜜臀| 亚洲精品国精品久久99热一| 国产做受高潮69| 欧美肥老太性生活视频| 欧美精品aaa| 亚洲天天在线日亚洲洲精| 久久久久久久999精品视频| 91亚洲va在线va天堂va国| 欧美性20hd另类| 亚洲精品成人久久| 韩国精品美女www爽爽爽视频| 日韩欧美极品在线观看| 久久精品99久久久香蕉| 91亚洲精华国产精华| 成人亚洲综合色就1024| 91在线视频成人| 91精品国产成人www| 国产亚洲精品久久| 色噜噜亚洲精品中文字幕| 精品视频在线播放| 欧美另类老女人| 日韩第一页在线| 亚洲2020天天堂在线观看| 日韩精品在线免费播放| 日韩视频一区在线| 欧美大片va欧美在线播放| 国产亚洲精品一区二区| 成人免费福利视频| 国产一区二区黑人欧美xxxx| 91精品久久久久久久久久久久久久| 18久久久久久| 亚洲最大成人网色| 成人网在线免费观看| 成人免费视频97| 欧美日韩在线观看视频小说| 日韩电影在线观看永久视频免费网站| 亚洲女人天堂视频| 国产成人精品在线视频| 久久99国产精品久久久久久久久| 俺也去精品视频在线观看| 久久久久99精品久久久久| 插插插亚洲综合网| 国产91精品久久久久久| 亚洲a在线观看| 久久精品99久久久久久久久| 国产精品福利在线| 在线观看欧美成人| 欧美日韩亚洲视频一区| 日韩在线资源网| 97在线精品国自产拍中文| 成人h片在线播放免费网站| 一本一本久久a久久精品牛牛影视| 亚洲女人天堂av| 在线观看久久av| 在线日韩欧美视频| 国内精品400部情侣激情| 亚洲图片欧洲图片av| 亚洲天堂第二页| 久久综合88中文色鬼| 影音先锋日韩有码| 欧美极品少妇xxxxx| 欧美成人免费va影院高清| 精品色蜜蜜精品视频在线观看| 亚洲欧美在线一区| 91天堂在线视频| 欧美日韩一区二区免费视频| 国产精品香蕉国产| 午夜免费在线观看精品视频| 亚洲国产精品久久久久| 久久在线免费观看视频| 丝袜亚洲欧美日韩综合| 欧美天天综合色影久久精品| 亚洲国产精品久久久久秋霞不卡| 日韩av在线高清| 美女999久久久精品视频| 成人久久一区二区三区| 亚洲精品狠狠操| 精品日韩美女的视频高清| 欧美一区二区大胆人体摄影专业网站| 国产一区二区欧美日韩| 久久国产精品久久国产精品| 中文字幕不卡在线视频极品| 国产成人中文字幕|