mybatis創(chuàng)建一個(gè)或多個(gè)新用戶 insert 字段和表名不確定時(shí)動(dòng)態(tài)添加問(wèn)題
創(chuàng)建用戶:
/**
* 創(chuàng)建一個(gè)或多個(gè)新用戶 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 用戶的值。一個(gè)map即是一個(gè)新用戶
List<Map<String, Object>> lineList = new ArrayList<Map<String, Object>>();
dataMap.put("name", "魚多");
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è)新用戶的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è)新用戶 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-04
Spring事務(wù)框架之TransactionStatus源碼解析
這篇文章主要為大家介紹了Spring事務(wù)框架之TransactionStatus源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Mybatis入門指南之實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)增刪改查
數(shù)據(jù)持久層主要負(fù)責(zé)數(shù)據(jù)的增、刪、改、查等功能,MyBatis 則是一款優(yōu)秀的持久層框架,下面這篇文章主要給大家介紹了關(guān)于Mybatis入門指南之實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)增刪改查的相關(guān)資料,需要的朋友可以參考下2022-10-10
深入了解Java SpringBoot自動(dòng)裝配原理
在使用springboot時(shí),很多配置我們都沒有做,都是springboot在幫我們完成,這很大一部分歸功于springboot自動(dòng)裝配。本文將詳細(xì)為大家講解SpringBoot的自動(dòng)裝配原理,需要的可以參考一下2022-03-03
spring mvc中的@ModelAttribute注解示例介紹
在Spring mvc中,注解@ModelAttribute是一個(gè)非常常用的注解,下面這篇文章主要給大家介紹了關(guān)于spring mvc中@ModelAttribute注解的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-09-09
JVM教程之Java代碼編譯和執(zhí)行的整個(gè)過(guò)程(二)
這篇文章主要介紹了JVM學(xué)習(xí)筆記第二篇,關(guān)于Java代碼編譯和執(zhí)行的整個(gè)過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
Spring 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

