/**
* 创建一个或多个新用户 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("创建成功");
}
}
<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>
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有