mybatis創(chuàng)建一個或多個新用戶 insert 字段和表名不確定時動態(tài)添加問題
創(chuàng)建用戶:
/**
* 創(chuàng)建一個或多個新用戶 insert 字段和表名不確定時動態(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 用戶的值。一個map即是一個新用戶
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()里面的值對應(yīng)起來,遍歷出map的key,構(gòu)建出動態(tài)字段。
// 相應(yīng)的,在accountMapper.xml中用遍歷出lineList,然后遍歷map的value,構(gòu)建出insert 的值
for (String key : dataMap.keySet()) {
lineColumn += key + ",";
}
// id不會自動遞增,加上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插入一個新用戶的sql(使用Oracle數(shù)據(jù)庫)
<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)建一個或多個新用戶 insert 字段和表名不確定時動態(tài)添加問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- MyBatis insert操作插入數(shù)據(jù)之后返回插入記錄的id
- MyBatis在insert插入操作時返回主鍵ID的配置(推薦)
- Mybatis 中的insertOrUpdate操作
- MyBatis中insert操作返回主鍵的實(shí)現(xiàn)方法
- Oracle+Mybatis的foreach insert批量插入報錯的快速解決辦法
- MyBatis批量插入(insert)數(shù)據(jù)操作
- oracle+mybatis 使用動態(tài)Sql當(dāng)插入字段不確定的情況下實(shí)現(xiàn)批量insert
- mybatis insert返回主鍵代碼實(shí)例
相關(guān)文章
MyBatis自定義typeHandler的完整實(shí)例
這篇文章主要給大家介紹了關(guān)于MyBatis自定義typeHandler的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MyBatis具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Spring事務(wù)框架之TransactionStatus源碼解析
這篇文章主要為大家介紹了Spring事務(wù)框架之TransactionStatus源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Mybatis入門指南之實(shí)現(xiàn)對數(shù)據(jù)庫增刪改查
數(shù)據(jù)持久層主要負(fù)責(zé)數(shù)據(jù)的增、刪、改、查等功能,MyBatis 則是一款優(yōu)秀的持久層框架,下面這篇文章主要給大家介紹了關(guān)于Mybatis入門指南之實(shí)現(xiàn)對數(shù)據(jù)庫增刪改查的相關(guān)資料,需要的朋友可以參考下2022-10-10
spring mvc中的@ModelAttribute注解示例介紹
在Spring mvc中,注解@ModelAttribute是一個非常常用的注解,下面這篇文章主要給大家介紹了關(guān)于spring mvc中@ModelAttribute注解的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-09-09
JVM教程之Java代碼編譯和執(zhí)行的整個過程(二)
這篇文章主要介紹了JVM學(xué)習(xí)筆記第二篇,關(guān)于Java代碼編譯和執(zhí)行的整個過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03
Spring MVC 自定義數(shù)據(jù)轉(zhuǎn)換器的思路案例詳解
本文通過兩個案例來介紹下Spring MVC 自定義數(shù)據(jù)轉(zhuǎn)換器的相關(guān)知識,每種方法通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09

