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

作者:袖梨 2022-06-25

创建用户:

 

 代码如下 复制代码

/**

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

*/

@Test

publicvoidcreateAccount() {

  String lineColumn ="";

  Map paramsMap =newHashMap();

  Map dataMap =newHashMap();

  // map的key值为字段,value为需要insert 用户的值。一个map即是一个新用户

  List> lineList =newArrayList>();

  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 INTO ${table}(${lineColumn}) select result.*,seq.nextval id from(

      

      (select

         #{_value}

        

      from dual)

     

  ) result

 

相关文章

精彩推荐