# mybatis-plus-extend
**Repository Path**: zzy_13169639/mybatis-plus-extend
## Basic Information
- **Project Name**: mybatis-plus-extend
- **Description**: mybatis plus的一些自定义扩展
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-09-18
- **Last Updated**: 2023-09-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
如果这个项目对你有所帮助,记得 :heart: Star 关注 :heart: 哦,这是对我最大的支持与鼓励。
#### 介绍
mybatis plus的一些自定义扩展。
虽然mybatis plus的功能已经很强大,但是在日常的开发中我觉得还可以抽象出一些公共接口,减少项目中的开发量,所以mybatis-plus-extend就是来做这点事情的。
它可以帮你完成以下扩展:
- 对于采用UpdateWrapper方式的更新,只要继承了BaseEntity类则自动更新`UPDATE_USER`和`UPDATE_TIME`字段,原生的mybatis plus中UpdateWrapper需要手动指定更新的字段,而这个在项目开发中经常忘记,在日志审计和数仓建设中却非常重要;
- 内置了直接执行sql的方式,项目中需继承`com.zzy.mp.helper.core.service.MpServiceImpl`类,不再是`com.baomidou.mybatisplus.extension.service.impl.ServiceImpl`
例如:
```java
public void get() {
Map map = new HashMap<>();
map.put("sql", "select * from test_user where id in ( #{param} ) ");
map.put("param","6");
List userDTOS = userService.nativeSqlList(map, UserDTO.class);
System.out.println(userDTOS);
}
```
- mybatis-plus内置的insertBatchSomeColumn是采用foreach的方式拼接的values,但是Oracle不支持,所以`MpServiceImpl#insertBatchAllColumn`实现了Oracle下的批量插入。注:如果批量插入时Entity中的数据结构都是一样的,那么还是推荐mybatis plus的saveBatch方法;
- 只要继承了BaseEntity类,那么在插入时自动添加`ID`、`CREATE_USER`、`CREATE_TIME`、`UPDATE_USER`、`UPDATE_TIME`,更新时自动修改`UPDATE_USER`、`UPDATE_TIME`,注:需要向spring容器中注入`com.zzy.mp.helper.core.handler.IdGenerator`和`com.zzy.mp.helper.core.handler.UserHandler`的实现类获取id的生成和用户的获取。
#### 软件架构
springboot-2.x.x
mybatis-plus-boot-starter-3.x.x.x
#### 安装教程
只需在项目中引入一个依赖
```xml
com.zzy
mybatis-plus-extend-starter
1.0.0
```
#### 使用说明
参照`mp-extend-samples`模块下`com.zzy.test.Test类`
#### 参与贡献
欢迎给出优化建议以及指出bug,请清楚描述遇到的问题,通过提issue或者直接联系作者讨论,感激不尽。
#### 联系作者
:email: 邮箱: 13169639@qq.com
QQ交流群:773938960