public class MybatisBatchUtils { private static final int BATCH_SIZE = 1000; @Autowired private SqlSessionFactory sqlSessionFactory; public <T,U,R> boolean batchUpdateOrInsert(List<T> data, Class<U> mapperClass, BiFunction<T,U,R> function) { int i = 1; SqlSession batchSqlSession = sqlSessio...
MyBatisUtils.closeSession(session); } // 新增用户 @Test public void testAddUser(){ User user = new User("qzcsbj9","123456","qzcsbj9","男",new Date(),"13800000009","1","qzcsbj",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); int n = userMapper.insert(use...
public class MybatisBatchUtils { private static final int BATCH_SIZE = 1000; @Autowired private SqlSessionFactory sqlSessionFactory; public <T,U,R> boolean batchUpdateOrInsert(List<T> data, Class<U> mapperClass, BiFunction<T,U,R> function) { int i = 1; SqlSession batchSqlSession = sqlSessio...
今天介绍一个 MyBatis - Plus 官方发布的神器:mybatis-mate 为 mp 企业级模块,支持分库分表,数据审计、数据敏感词过滤(AC算法),字段加密,字典回写(数据绑定),数据权限,表结构自动生成 SQL 维护等,旨在更敏捷优雅处理数据。 ◆1. 主要功能 字典绑定 字段加密 数据脱敏 表结构动态维护 数据审计记录 数据范围(数...
工具类MyBatisUtils中集成mybatis-plus:使用MyBatisPlus的Session工厂 package com.qzcsbj.utils; import com.baomidou.mybatisplus.core.MybatisSqlSessionFactoryBuilder; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; ...
当然,我们自己没有做相关实现,不代表框架没有做相关实现,我们通过定义数据实体类后,在应用启动时框架会解析相关属性,并且会帮我们生成接口代理以及通用方法的相关实现。 三、通用方法实现原理 我们以官网的starter版本做分析,以mybatis-plus-boot-starter:3.5.1为例。
具体拓展体现在数据自动填充(类似JPA中的审计)、关联查询(类似sql中的join)、自动建表(仅支持mysql)、冗余数据自动更新、动态条件等功能做了补充完善。其中自动建表,是在A.CTable框架上的基础上改进适配本框架的,只保留了其表创建功能,因此改动较大不与原框架兼容。
以前我们使用mybatis的时候,我们会使用MyBatis Generator优先生成单表的增删改查操作,但当修改字段删除字段的时候,是个痛苦的事情,要修改xml的很多地方。 为了解决这个问题,开源市场上出现了很多解决mybatis单表操作的问题,比如tkMybatis、mybatis plus等。
MyBatis-Mate 为 mp 企业级模块,支持分库分表,数据审计、数据敏感词过滤(AC算法),字段加密,字典回写(数据绑定),数据权限,表结构自动生成 SQL 维护等,旨在更敏捷优雅处理数据。 主要功能 字典绑定 字段加密 数据脱敏 表结构动态维护 数据审计记录 数据范围(数据权限...
(data); // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM if (importExcelDataList.size() >= BATCH_COUNT) { saveData(); // 存储完成清理 list importExcelDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT); } } /** * 所有数据解析完成了 都会来调用 * ...