mybatis創(chuàng)建一個或多個新用戶 insert 字段和表名不確定時動態(tài)添加問題
更新時間:2017年02月21日 10:01:57 作者:喵喵喵sy
這篇文章主要介紹了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)站的支持!
相關(guān)文章
Flask接口如何返回JSON格式數(shù)據(jù)自動解析
這篇文章主要介紹了Flask接口如何返回JSON格式數(shù)據(jù)自動解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11

