先从插入insert方法开始。 基于前文创建的UserInfo类,我们写一个test的方法,用于追踪insert方法—— @Testpublicvoidtest(){UserInfouserInfo=newUserInfo();userInfo.setUserName("用户名");userInfo.setAge(1);userInfoMapper.insert(userInfo);} 可以看到,此时的id=0,还没有任何值—— 执行到insert的时候,底层会...
mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 1. 2. 3. 2、测试插入的代码: @Test void testInsert() { UserEntity userEntity = new UserEntity(); userEntity.setName("pipizhen"); userEntity.setAge(10); userEntity.setEmail("ppz@qq.com"); int count =...
我找到数据库访问层的insert语句处,发现使用的是mybatis-plus,网上查了一下关于这块的东西,发现insert方法在配置的时候,可以指定自增ID的方式。 源码中定义有以下几种 public enum IdType { AUTO(0, "数据库ID自增"), INPUT(1, "用户输入ID"), ID_WORKER(2, "全局唯一ID"), UUID(3, "全局唯一ID"),...
userInfoMapper.insert(userInfo); } 可以看到,此时的id=0,还没有任何值—— 执行到insert的时候,底层会执行一个动态代理,最终通过动态代理,执行DefaultSqlSession类的insert方法,可以看到,insert方法里,最终调用的是一个update方法。 在mybatis中,无论是新增insert或者更新update,其底层都是统一调用DefaultSqlSession的up...
mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 2、测试插入的代码 @Test void testInsert() { UserEntity userEntity = new UserEntity(); userEntity.setName("pipizhen"); userEntity.setAge(10); userEntity.setEmail("ppz@qq.com"); ...
在实际的项目开发过程中,常常遇到批量保存数据的场景,当数据量比较少,比如只有几条数据的情况下,我们可以使用for循环来insert数据,但如果数据量比较多的情况下就不行,特别是并发的情况下,因为这样会增加数据库的负担。 我们通过查看mybatis-plus源码发现,mybatis-plus的IServiceAPI 接口提供了批量插入的接口: ...
1. ableInfo.getAllInsertSqlColumn() /*** 获取 inset 时候字段 sql 脚本片段 * insert into table (字段) values (值) * 位于 "字段" 部位 * *@returnsql 脚本片段*/publicString getAllInsertSqlColumn() {returngetKeyInsertSqlColumn() +fieldList.stream().map(TableFieldInfo::getInsertSqlColumn)...
insert(user); } 这样,当调用addUser方法时,Mybatis-Plus就会自动将user对象插入到数据库中。 三、insert方法的源码分析 虽然使用insert方法非常简单,但是了解其背后的实现原理对于更深入的理解Mybatis-Plus非常有帮助。下面我们将简要分析insert方法的源码实现。 Mybatis-Plus的insert方法最终会调用Mybatis的SqlSession...
一、使用mybatis-plus内置批量插入 mybatis-plus内置提供了InsertBatchSomeCulumn来实现真批量插入,但是由于只支持MySQL的语法格式,所以没有在通用的API作为默认使用。 将InsertBatchSomeCulumn实例放入Sqlnjector列表中 代码语言:java 复制 @BeanpublicDefaultSqlInjectorinsertBatchSqlInject(){returnnewDefaultSqlInjector(...