mybatis創(chuàng)建一個(gè)或多個(gè)新用戶(hù) insert 字段和表名不確定時(shí)動(dòng)態(tài)添加問(wèn)題
創(chuàng)建用戶(hù):
/** * 創(chuàng)建一個(gè)或多個(gè)新用戶(hù) insert 字段和表名不確定時(shí)動(dòng)態(tài)添加 */ @Test public void createAccount() { String lineColumn = ""; Map<String, Object> paramsMap = new HashMap<String, Object>(); Map<String, Object> dataMap = new HashMap<String, Object>(); // map的key值為字段,value為需要insert 用戶(hù)的值。一個(gè)map即是一個(gè)新用戶(hù) List<Map<String, Object>> lineList = new ArrayList<Map<String, Object>>(); dataMap.put("name", "魚(yú)多"); dataMap.put("password", "123456"); dataMap.put("gender", "女"); dataMap.put("id_no", "14"); lineList.add(dataMap); // 為了使字段和values()里面的值對(duì)應(yīng)起來(lái),遍歷出map的key,構(gòu)建出動(dòng)態(tài)字段。 // 相應(yīng)的,在accountMapper.xml中用遍歷出lineList,然后遍歷map的value,構(gòu)建出insert 的值 for (String key : dataMap.keySet()) { lineColumn += key + ","; } // id不會(huì)自動(dòng)遞增,加上id字段 // 相應(yīng)的,在accountMapper.xml中 用序列的nextval生成id lineColumn += "id"; paramsMap.put("lineColumn", lineColumn); paramsMap.put("table", "account"); paramsMap.put("lineList", lineList); if (accountMapper.createAccount(paramsMap) > 0) { System.out.println("創(chuàng)建成功"); } }
accountMapper.xml插入一個(gè)新用戶(hù)的sql(使用Oracle數(shù)據(jù)庫(kù))
<insert id="createAccount" parameterType="java.util.Map"> INSERT INTO ${table}(${lineColumn}) select result.*,seq.nextval id from( <foreach collection="lineList" item="item" index="index" separator="union all"> (select <foreach collection="item" index="key" item="_value" separator=","> #{_value} </foreach> from dual) </foreach> ) result </insert>
以上所述是小編給大家介紹的mybatis創(chuàng)建一個(gè)或多個(gè)新用戶(hù) insert 字段和表名不確定時(shí)動(dòng)態(tài)添加問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- MyBatis insert操作插入數(shù)據(jù)之后返回插入記錄的id
- MyBatis在insert插入操作時(shí)返回主鍵ID的配置(推薦)
- Mybatis 中的insertOrUpdate操作
- MyBatis中insert操作返回主鍵的實(shí)現(xiàn)方法
- Oracle+Mybatis的foreach insert批量插入報(bào)錯(cuò)的快速解決辦法
- MyBatis批量插入(insert)數(shù)據(jù)操作
- oracle+mybatis 使用動(dòng)態(tài)Sql當(dāng)插入字段不確定的情況下實(shí)現(xiàn)批量insert
- mybatis insert返回主鍵代碼實(shí)例
相關(guān)文章
MyBatis自定義typeHandler的完整實(shí)例
這篇文章主要給大家介紹了關(guān)于MyBatis自定義typeHandler的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MyBatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Spring事務(wù)框架之TransactionStatus源碼解析
這篇文章主要為大家介紹了Spring事務(wù)框架之TransactionStatus源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Mybatis入門(mén)指南之實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)增刪改查
數(shù)據(jù)持久層主要負(fù)責(zé)數(shù)據(jù)的增、刪、改、查等功能,MyBatis 則是一款優(yōu)秀的持久層框架,下面這篇文章主要給大家介紹了關(guān)于Mybatis入門(mén)指南之實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)增刪改查的相關(guān)資料,需要的朋友可以參考下2022-10-10深入了解Java SpringBoot自動(dòng)裝配原理
在使用springboot時(shí),很多配置我們都沒(méi)有做,都是springboot在幫我們完成,這很大一部分歸功于springboot自動(dòng)裝配。本文將詳細(xì)為大家講解SpringBoot的自動(dòng)裝配原理,需要的可以參考一下2022-03-03spring mvc中的@ModelAttribute注解示例介紹
在Spring mvc中,注解@ModelAttribute是一個(gè)非常常用的注解,下面這篇文章主要給大家介紹了關(guān)于spring mvc中@ModelAttribute注解的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-09-09JVM教程之Java代碼編譯和執(zhí)行的整個(gè)過(guò)程(二)
這篇文章主要介紹了JVM學(xué)習(xí)筆記第二篇,關(guān)于Java代碼編譯和執(zhí)行的整個(gè)過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03Spring MVC 自定義數(shù)據(jù)轉(zhuǎn)換器的思路案例詳解
本文通過(guò)兩個(gè)案例來(lái)介紹下Spring MVC 自定義數(shù)據(jù)轉(zhuǎn)換器的相關(guān)知識(shí),每種方法通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09深入了解Java核心類(lèi)庫(kù)--泛型類(lèi)
這篇文章主要為大家詳細(xì)介紹了java泛型類(lèi)定義與使用的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能給你帶來(lái)幫助2021-07-07