1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/opdar-gulosity-mybatis-plugin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 2.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
这里的名字只能十个字 Отправлено 06.01.2021 12:02 3162467

#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加载入程序。

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/opdar-gulosity-mybatis-plugin.git
git@api.gitlife.ru:oschina-mirror/opdar-gulosity-mybatis-plugin.git
oschina-mirror
opdar-gulosity-mybatis-plugin
opdar-gulosity-mybatis-plugin
master