首页 > 开发 > Java > 正文

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

2024-07-13 10:04:22
字体:
来源:转载
供稿:网友

创建用户:

/*** 创建一个或多个新用户 insert 字段和表名不确定时动态添加*/@Testpublic 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数据库)

<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 字段和表名不确定时动态添加问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对VeVb武林网网站的支持!


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表