16 Star 18 Fork 3

这里的名字只能十个字 / gulosity-mybatis-plugin

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

#gulosity-mybatis-plugin

自动生成resultMap和常用方法的spring小插件,原理为启动时扫描对应注解的实体,通过dom创建相应的代码在加载入mybatis。

Maven Dependency

<dependency>
    <groupId>com.opdar.plugins</groupId>
    <artifactId>gulosity-mybatis-plugin</artifactId>
    <version>v1.1.7</version>
</dependency>

更多使用文档

Spring配置,将原有的org.mybatis.spring.SqlSessionFactoryBean替换为**com.opdar.plugins.mybatis.core.GuSqlSessionFactoryBean**

<bean id="sqlSessionFactory" class="com.opdar.plugins.mybatis.core.GuSqlSessionFactoryBean">
    <-- 数据源 -->
    <property name="dataSource" ref="dataSource" />
    <-- Namespace对应的实体扫描路径 -->
    <property name="basePackage" value="com.opdar.web.entities" />
    <-- 库名,默认为空,即表名不加前缀 -->
    <property name="databaseName" value="test"/>
    <-- 表前缀,默认为空,即表名不加前缀 -->
    <property name="tablePrefix" value="t_"/>
    <-- Mapper扫描路径 -->
    <property name="mapperLocations" value="classpath:com/opdar/mapper/*.xml" />
</bean>
首先创建一个接口,这一步基本与原来一样,根据该接口插件会生成Mapper Proxy。只是接口需继承**com.opdar.plugins.mybatis.core.IBaseMapper**
/**
* Mapper Interface
**/
class UserMapper extends IBaseMapper<UserEntity>{
//...
}
第二,选择一个需要自动生成mapper的实体
   /**
/**
* 实体对象
**/
@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 version="1.0" encoding="utf-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.opdar.web.mapper.UserMapper">

    <select id="selectOne" parameterType="...UserEntity" resultMap="userResult">
        SELECT TOP 1 * FROM `database`.`t_user` WHERE
        ID = #{id}
    </select>
    
    <select id="selectOne2" parameterType="...UserEntity" resultMap="userResult">
        SELECT TOP 1 * FROM `database`.`t_user` WHERE `vaild` = 0
        AND ID = #{id}
    </select>
</mapper>
在这里我对selectOne方法进行了复写,并且新增了一个selectOne2的方法,启动时插件将会忽略生成selectOne方法。
当然,如果没有那么复杂的需求,以上的xml文件也可以完全删除,插件将会自动生成一个Mapper加载入程序。

Comments ( 0 )

Sign in for post a comment

About

Mybatis-Spring扩展包,启动时根据实体动态生成常用方法和ResultMap,无需创建xml即可使用。 expand collapse
Java
LGPL-3.0
Cancel

Releases

No release

gulosity-mybatis-plugin

Contributors

All

Activities

load more
can not load any more
Java
1
https://gitee.com/opdar/gulosity-mybatis-plugin.git
git@gitee.com:opdar/gulosity-mybatis-plugin.git
opdar
gulosity-mybatis-plugin
gulosity-mybatis-plugin
master

Search

105716 1d94204e 1850385 105716 2d26be5c 1850385