mybatis创建一个或多个新用户 insert 字段和表名不确定时动态添加问题

2025-05-29 0 101

创建用户:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30
/**

* 创建一个或多个新用户 insert 字段和表名不确定时动态添加

*/

@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()里面的值对应起来,遍历出map的key,构建出动态字段。

// 相应的,在accountMapper.xml中用遍历出lineList,然后遍历map的value,构建出insert 的值

for (String key : dataMap.keySet()) {

lineColumn += key + ",";

}

// id不会自动递增,加上id字段

// 相应的,在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("创建成功");

}

}

accountMapper.xml插入一个新用户的sql(使用Oracle数据库)

?

1

2

3

4

5

6

7

8

9

10
<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创建一个或多个新用户 insert 字段和表名不确定时动态添加问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对快网idc网站的支持!

原文链接:http://blog.csdn.net/laowangwsy/article/details/56274757

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 mybatis创建一个或多个新用户 insert 字段和表名不确定时动态添加问题 https://www.kuaiidc.com/118489.html

相关文章

发表评论
暂无评论