开源软件名称:gulosity-mybatis-plugin
开源软件地址:https://gitee.com/opdar/gulosity-mybatis-plugin
开源软件介绍:
#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加载入程序。 |
请发表评论