响应效果(id为主键):
{ "data": [ {"studentName": "张三","classNo": "一班","id": 111}, {"studentName": "李四","classNo": "二班","id": 112}, {"studentName": "王五","classNo": "一班","id": 113} ] }
控制层:
@PostMapping("/test") @ResponseBody public Map<String, Object> test(@RequestBody String data) { Map<String, Object> resultMap = new HashMap<String, Object>(); //非空校验 if (!checkParams.checkString(data)) { resultMap.put("code", "1"); resultMap.put("msg", "参数为空。"); return resultMap; } //json转List<Map<String, Object>> JSONObject json= new JSONObject(data); String dataString = json.get("data").toString(); com.google.gson.Gson gson = new Gson(); List<Map<String, Object>> list = gson.fromJson(dataString, new com.google.common.reflect.TypeToken<List<Map<String, Object>>>() { }.getType()); //请求接口 resultMap=registerService.test(list); return resultMap; }
接口:
public Map<String, Object> test(List<Map<String,Object>> data);
实现类:
@Override public Map<String, Object> test(List<Map<String,Object>> data) { Map<String, Object> resultMap = new HashMap<String, Object>(); registerMapper.test( data); resultMap.put("data",data); return resultMap; }
持久层:
public void test(List<Map<String,Object>> list);
statement:
<!-- =========================批量插入返回主键示例======================== --> <insert id="test" parameterType="list" useGeneratedKeys="true" keyProperty="id" > INSERT INTO student_info(student_name,class_no)VALUES <foreach collection="list" item="item" separator=","> ( #{item.studentName}, #{item.classNo} ) </foreach> </insert>
请求方式:
http://localhost/xxx/test
请求参数:
{ "data": [ {"studentName": "张三","classNo": "一班"}, {"studentName": "李四","classNo": "二班"}, {"studentName": "王五","classNo": "一班"} ] }
注意事项:
statement中keyProperty的赋值是可以自定义的,如果将keyProperty的值改为key,即改成如下:
<!-- =========================批量插入返回主键示例======================== --> <insert id="test" parameterType="list" useGeneratedKeys="true" keyProperty="key" > INSERT INTO student_info(student_name,class_no)VALUES <foreach collection="list" item="item" separator=","> ( #{item.studentName}, #{item.classNo} ) </foreach> </insert>
则响应效果(key为主键)如下:
{ "data": [ {"studentName": "张三","classNo": "一班","key": 111}, {"studentName": "李四","classNo": "二班","key": 112}, {"studentName": "王五","classNo": "一班","key": 113} ] }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍Mybatis批量插入返回成功的数目实例,包括了Mybatis批量插入返回成功的数目实例的使用技巧和注意事项,需要的朋友参考一下 Mybatis批量插入返回影响的行数 环境: postgresql 9.6.5 spring 4.1 mybatis3 junit4 log4j ThesisMapper.xml: Mapper.java 借口: 服务类: ThesisService: 测
本文向大家介绍Mybatis返回插入主键id的方法,包括了Mybatis返回插入主键id的方法的使用技巧和注意事项,需要的朋友参考一下 在mapper的xml文件中配置 useGeneratedKeys 以及 keyProperty 返回Id即可 PS:Mybatis中insert中返回主键ID的方法 1、XyzMapper.xml 或 2、XyzMapper.java 3、要在map或c中有一
本文向大家介绍Mybatis返回插入的主键问题解决方案,包括了Mybatis返回插入的主键问题解决方案的使用技巧和注意事项,需要的朋友参考一下 MyBatis添加记录后获取主键ID,这是一个很常见的需求。这个需求有分为两种情况:(1)添加单条记录时获取主键值;(2)获取批量添加记录时各记录的主键值。 备注:MyBatis从3.3.1版本开始支持批量添加记录并返回各记录主键字段值。 1、添加单一记录
问题内容: 我正在尝试使用in 进行批量插入,这是执行操作时遇到的错误; 是由于系统空间不足还是批量插入功能本身不起作用?我的版本是,版本也是。 批量插入逻辑代码; 问题答案: 正如Val在评论中所说,您一次发送的数据可能会超出集群的处理能力。看来您可能正在尝试在 一个* 批量请求中发送 所有 文档,但对于许多文档或大型文档而言,这可能无法正常工作。 * 使用时,除了可以同时发送到集群的批量请求数
本文向大家介绍如何在mybatis中向BLOB字段批量插入数据,包括了如何在mybatis中向BLOB字段批量插入数据的使用技巧和注意事项,需要的朋友参考一下 最近接手一个需求,需要用xxl-job定时任务同步三方库中新增的数据,粗略一看挺得意,以为一两小时就搞定了,但事与愿违,编码两小时却被一个BLOB字段玩了一下午。 每次获取50条数据过来,每条数据中有一个字段是BLOB类型的图片,需
我创建了一个向MySql数据库插入数百万个值的程序。我读到过有关批插入的文章,它将优化我的程序并使其更快,但当我尝试这样做时,它以同样的方式工作。我没有将每个值插入数据库,而是每次将500个值保存在一个列表中,然后将它们插入一个大循环中,如下所示: 然后我删除列表中的所有值,并再次开始收集500个值。它不应该工作得更好吗? 我的插入代码是: 我有一些问题: 1。为什么当我批量插入时它不能更快地工作
我最近开始学习使用myBatis。我现在面临这样一个场景,我需要通过WebService不断获取一个新的对象列表,然后对于这个列表,我需要通过myBatis将每个对象插入/更新到oracle DB表中。 棘手的是,我不能每次都简单地进行批量插入,因为有些对象可能已经存在于数据库中,对于这些记录,我需要更新它们的字段,而不是新的插入。 我目前的解决方案可能非常愚蠢,使用Java,从webservic
本文向大家介绍MySQL批量插入数据脚本,包括了MySQL批量插入数据脚本的使用技巧和注意事项,需要的朋友参考一下 MySQL批量插入数据脚本 新建表格就可以了 插入十万的数据为./jiaoben.sh 100000