代码如下:
1、获取sqlSession
/** * 使用XML配置文件获取sqlsession * @return */ public static SqlSession createSqlSessionByXML(){ //获取config.xml文件 String resource = "conf/config.xml"; InputStream input = null; try { input = Resources.getResourceAsStream(resource); //获得sqlsession SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(input); session = factory.openSession(); return session; } catch (IOException e) { e.printStackTrace(); return null; } }
2、批量插入
/** * 批量增加 */ //@Test public void insertBatch(){ List<User> users = new ArrayList<User>(); for(int i=0;i <= 20;i++){ User user = new User("姓名"+i, i%2, i+20); users.add(user); } //使用xml配置执行 try{ session = SessionUtil.createSqlSessionByXML(); //使用mapper.xml文件执行 User user = session.selectOne("org.mybatis.UserMapper.insertBatch",users); }finally{ session.close(); } } //xml配置; <!-- 批量插入数据 --> <insert id="insertBatch" > insert into user(name,sex,age) values <foreach collection="list" item= "item" index ="index" separator=","> (#{item.name}, #{item.sex},#{item.age}) </foreach > </insert>
2、批量更新
/** * 批量更新 */ //@Test public void updateBatch(){ Map<String,Object> map = new HashMap<String,Object>(); List<Integer> idlist = new ArrayList<Integer>(); for(int i=0;i<10;i++){ idlist.add(i+45); } map.put("idlist", idlist); map.put("name", "姓名x"); //使用xml配置执行 try{ session = SessionUtil.createSqlSessionByXML(); //使用mapper.xml文件执行 User user = session.selectOne("org.mybatis.UserMapper.updateBatch",map); }finally{ session.close(); } } //xml 文件配置 <!-- 批量更新数据 --> <update id= "updateBatch" parameterType= "map"> update user set name = #{name} where id in <foreach collection="idlist" item= "uid" index ="index" open= "(" close =")" separator=","> #{ uid} </foreach > </update >
3、批量删除
/** * 批量删除 */ @Test public void deleteBatch(){ List<Integer> idList = new ArrayList<Integer>(); for(int i=0;i <= 5;i++){ idList.add(i); } //使用xml配置执行 try{ session = SessionUtil.createSqlSessionByXML(); //使用mapper.xml文件执行 User user = session.selectOne("org.mybatis.UserMapper.deleteBatch",idList); }finally{ session.close(); } } //xml文件配置 <!-- 批量删除 --> <delete id="deleteBatch" parameterType="java.util.List"> DELETE FROM user WHERE id IN <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </delete>
操作过程成偶然报错误:
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for org.mybatis.UserMapper.updateBatch
### Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for org.mybatis.UserMapper.updateBatch
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:26)
该错误大意就是,*mapper.xml未找到或里面的sql中跟mapper接口中的方法不对应。我因为在xml文件中的id,与session.selectOne("org.mybatis.UserMapper.deleteBatch",idList)的方法不符合,造成该错误
相关推荐
- 自动完成单表CRUD操作(包括简单的单个对象插入、查询、更新、删除操作和批量操作)。 - 提供分页插件,支持自动分页和自定义SQL分页查询。 - 支持Spring环境下根据不同环境加载不同的配置。 - 提供代码自动...
4. **批量插入与更新**:MyBatis-Plus支持一次性插入或更新多条数据,提高了数据处理的效率。 5. **主键生成策略**:内置了多种主键生成策略,如ID_WORKER(分布式雪花算法)、SEQENCE(序列方式)等,可根据数据库...
只增强,MyBatis-Flex 支持 CRUD、分页查询、多表查询、批量操作,但不丢失 MyBatis 原有的任何功能。高性能,MyBatis-Flex 采用独特的技术架构、相比许多同类框架,MyBatis-Flex 的在增删改查等方面的性能均超越其 ...
主要功能包括:插入、更新、删除、查询等基本操作,以及分页、条件构造、批量操作等高级特性。 在文档中,你将了解到MyBatis-Plus的基本配置。这通常包括引入依赖、配置实体类扫描、全局配置文件的设置等步骤。例如...
有 SimpleExecutor、ReuseExecutor 和 BatchExecutor 三种实现,分别对应简单执行、重用 Statement 和批量操作的场景。 4. **ParameterHandler 参数处理器** - ParameterHandler 负责将 Java 对象的参数映射到 SQL...
Mybatis-plus是一款基于Mybatis和Spring的轻量级框架,它扩展了Mybatis的功能,提供了更便捷的操作数据库的方式。在项目开发中,Mybatis-plus的一个重要特性就是其代码生成器,能够极大地提高开发效率,减少手动编写...
Mybatis-Plus是一款基于Mybatis框架的扩展工具,它在Mybatis的基础上简化了开发工作,提供了包括自动 CRUD 操作、条件构造器、批量操作、关联查询等实用功能。本资源包含的是Mybatis-Plus的代码生成器模板代码,用于...
- **插入(Insert)**: MyBatis-Plus 提供了单表插入、批量插入和主键自增等多种方式,只需一行代码即可完成。 - **查询(Select)**: 支持根据主键查询、条件查询、多条件组合查询、分页查询等,提供了丰富的查询...
此外,对于高并发场景,还可以通过设置SqlSessionTemplate的ExecutorType为BATCH或REUSE,提高批量操作的性能。 总结,MyBatis-Spring 1.0.0-RC3是MyBatis与Spring整合的重要版本,它使得两大框架的协同工作变得...
- **批量操作**:支持单表的批量插入、更新和删除,减少数据库交互次数,提高性能。 6. **架构原理** MyBatis-Plus的底层原理主要基于MyBatis,通过拦截器机制实现了对SQL的动态构造和执行。它的设计模式主要是...
mybatis-generator-plus通过自动生成支持批量插入的方法,使得开发者能够高效地一次性处理大量数据,减少了数据库操作的次数,从而提高了性能。批量插入通常会涉及到SQL语句的优化,包括合理设置批处理的大小,以...
Mybatis-Plus-Generator是一个基于Mybatis-Plus框架的实用工具,主要用于简化数据库表的 CRUD(创建、读取、更新、删除)操作以及批量数据导入的功能。Mybatis-Plus是Mybatis的一个扩展,它提供了很多便捷的数据操作...
SimpleExecutor每次执行一个SQL,而BatchExecutor适用于批量操作。 6. **ParameterHandler**: 负责设置SQL参数,将Java对象转换为数据库可识别的参数。 7. **ResultSetHandler**: 处理查询结果,将数据库返回的...
- **批量操作**:提供批量插入、批量更新、批量删除等操作,提升数据库操作效率。 - **乐观锁支持**:通过@TableVersion字段,可以轻松实现乐观锁,防止并发数据冲突。 5. **与MyBatis的差异**: - MyBatis-Plus...
MP 的主要特性包括:自动 CRUD 生成、条件构造器、批量操作、分页插件、性能分析等。 Spring Boot 是基于 Spring 框架的一个快速开发工具,它简化了新 Spring 应用的初始搭建以及开发过程。Spring Boot 通过默认...
此外,MyBatis-Plus还提供了丰富的API,如批量操作、分页查询、填充实体对象、数据权限控制等。批量操作可以高效地执行多个相似的数据库操作,而分页查询则能方便地处理大数据量的展示问题。填充实体对象功能允许...
MyBatis Plus是在MyBatis的基础上进行扩展的,它提供了更为简便的CRUD操作,如自动填充主键、批量插入、条件构造器等。MyBatis Plus的集成使得我们可以专注于业务逻辑,而不必花费过多时间在SQL编写上。 集成Spring...
MyBatis-Plus 是 MyBatis 的一个扩展,它提供了许多方便实用的功能,简化了开发工作,例如自动 CRUD 操作、条件构造器、批量插入、主键生成等。本项目 "mybatis-plus-demo" 是一个基于 SpringBoot 框架整合 MyBatis-...
MyBatis-Plus是一个强大的MyBatis扩展框架,它简化了常见的CRUD操作,提供了诸如自动填充、条件构造器、批量插入等实用功能。在这个"mybatis-plus学习项目笔记"中,我们可以深入探讨MyBatis-Plus的核心特性,以及...
MyBatis-Plus是在MyBatis的基础上进行扩展,提供了更为强大的CRUD操作,包括条件构造器、批量插入、主键自增等功能,极大地提高了开发效率。它是一个轻量级的持久层框架,能够与SpringBoot无缝集成,使得数据库操作...