# gulosity-mybatis-plugin
**Repository Path**: opdar/gulosity-mybatis-plugin
## Basic Information
- **Project Name**: gulosity-mybatis-plugin
- **Description**: Mybatis-Spring扩展包,启动时根据实体动态生成常用方法和ResultMap,无需创建xml即可使用。
- **Primary Language**: Java
- **License**: LGPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 22
- **Forks**: 4
- **Created**: 2016-12-23
- **Last Updated**: 2025-02-06
## Categories & Tags
**Categories**: database-dev
**Tags**: None
## README
#gulosity-mybatis-plugin
### 自动生成resultMap和常用方法的spring小插件,原理为启动时扫描对应注解的实体,通过dom创建相应的代码在加载入mybatis。
#### Maven Dependency
```xml
com.opdar.plugins
gulosity-mybatis-plugin
v1.1.7
```
[更多使用文档](https://doc.oschina.net/gmplugin)
Spring配置,将原有的`org.mybatis.spring.SqlSessionFactoryBean`替换为**`com.opdar.plugins.mybatis.core.GuSqlSessionFactoryBean`**
```xml
<-- 数据源 -->
<-- Namespace对应的实体扫描路径 -->
<-- 库名,默认为空,即表名不加前缀 -->
<-- 表前缀,默认为空,即表名不加前缀 -->
<-- Mapper扫描路径 -->
```
##### 首先创建一个接口,这一步基本与原来一样,根据该接口插件会生成Mapper Proxy。只是接口需继承**`com.opdar.plugins.mybatis.core.IBaseMapper`**
```java
/**
* Mapper Interface
**/
class UserMapper extends IBaseMapper{
//...
}
```
##### 第二,选择一个需要自动生成mapper的实体
```java
/**
/**
* 实体对象
**/
@Namespace(UserMapper.class)
class UserEntity{
private String id;
private String userName;
private String userPwd;
//...
}
```
##### 这样的一个实体将会生成名为`userResult`的resultMap,以及`selectOne`,`selectList`,`insert`,`update`,`delete`,`count`的六个方法。
##### Mapper的Namespace为"包名.UserMapper",对应该namespace的xml无所谓创建与否,都可以生成这些方法。当然也可以创建后复写该resultMap和六个方法。
例:
```xml
```
##### 在这里我对selectOne方法进行了复写,并且新增了一个selectOne2的方法,启动时插件将会忽略生成selectOne方法。
##### 当然,如果没有那么复杂的需求,以上的xml文件也可以完全删除,插件将会自动生成一个Mapper加载入程序。