MyBatis Generator实现分页插件
来源:互联网 发布:node dev 安装与使用 编辑:程序博客网 时间:2024/03/29 13:47
新建工程,继承PluginAdapter
<dependencies> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> <scope>provided</scope> </dependency></dependencies>
public class PaginationPlugin extends PluginAdapter { public boolean validate(List<String> list) { return true; } /** * 为每个Example类添加limit和offset属性已经set、get方法 */ @Override public boolean modelExampleClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { PrimitiveTypeWrapper integerWrapper = FullyQualifiedJavaType.getIntInstance() .getPrimitiveTypeWrapper(); Field limit = new Field(); limit.setName("limit"); limit.setVisibility(JavaVisibility.PRIVATE); limit.setType(integerWrapper); topLevelClass.addField(limit); Method setLimit = new Method(); setLimit.setVisibility(JavaVisibility.PUBLIC); setLimit.setName("setLimit"); setLimit.addParameter(new Parameter(integerWrapper, "limit")); setLimit.addBodyLine("this.limit = limit;"); topLevelClass.addMethod(setLimit); Method getLimit = new Method(); getLimit.setVisibility(JavaVisibility.PUBLIC); getLimit.setReturnType(integerWrapper); getLimit.setName("getLimit"); getLimit.addBodyLine("return limit;"); topLevelClass.addMethod(getLimit); Field offset = new Field(); offset.setName("offset"); offset.setVisibility(JavaVisibility.PRIVATE); offset.setType(integerWrapper); topLevelClass.addField(offset); Method setOffset = new Method(); setOffset.setVisibility(JavaVisibility.PUBLIC); setOffset.setName("setOffset"); setOffset.addParameter(new Parameter(integerWrapper, "offset")); setOffset.addBodyLine("this.offset = offset;"); topLevelClass.addMethod(setOffset); Method getOffset = new Method(); getOffset.setVisibility(JavaVisibility.PUBLIC); getOffset.setReturnType(integerWrapper); getOffset.setName("getOffset"); getOffset.addBodyLine("return offset;"); topLevelClass.addMethod(getOffset); return true; } /** * 为 Mapper.xml 的 selectByExample 添加 limit */ @Override public boolean sqlMapSelectByExampleWithoutBLOBsElementGenerated(XmlElement element, IntrospectedTable introspectedTable) { addPageElement(element); return true; } /** * 为 Mapper.xml 的 selectByExampleWithBLOBs 添加 limit */ @Override public boolean sqlMapSelectByExampleWithBLOBsElementGenerated(XmlElement element, IntrospectedTable introspectedTable) { addPageElement(element); return true; } private void addPageElement(XmlElement element) { XmlElement ifLimitNotNullElement = new XmlElement("if"); ifLimitNotNullElement.addAttribute(new Attribute("test", "limit != null")); XmlElement ifOffsetNotNullElement = new XmlElement("if"); ifOffsetNotNullElement.addAttribute(new Attribute("test", "offset != null")); ifOffsetNotNullElement.addElement(new TextElement("limit ${offset}, ${limit}")); ifLimitNotNullElement.addElement(ifOffsetNotNullElement); XmlElement ifOffsetNullElement = new XmlElement("if"); ifOffsetNullElement.addAttribute(new Attribute("test", "offset == null")); ifOffsetNullElement.addElement(new TextElement("limit ${limit}")); ifLimitNotNullElement.addElement(ifOffsetNullElement); element.addElement(ifLimitNotNullElement); }}
在要用的模块引入插件
<build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <overwrite>true</overwrite> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34</version> </dependency> <dependency> <groupId>****</groupId> <artifactId>near-mybatis-generator-extends</artifactId> <version>1.0.0</version> </dependency> </dependencies> </plugin> </plugins></build>
generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration> <context id="mysql_systemcore" targetRuntime="MyBatis3"> <plugin type="org.***.plugins.PaginationPlugin"/> <commentGenerator> <property name="suppressAllComments" value="true"/> </commentGenerator> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.1.45:3306/***" userId="***" password="***"/> <javaModelGenerator targetPackage="com.***.dal.dataobj" targetProject="src/main/java"> <property name="trimStrings" value="true"/> </javaModelGenerator> <sqlMapGenerator targetPackage="sqlmap" targetProject="src/main/resources/META-INF"/> <javaClientGenerator targetPackage="com.***.dal.mapper" targetProject="src/main/java" type="XMLMAPPER"/> <!-- <table tableName="usr_wechat_user" domainObjectName="WechatUser" enableDeleteByPrimaryKey="false" enableDeleteByExample="false" enableCountByExample="false"/> --> <table tableName="user_info" domainObjectName="UserInfoDO"/> </context></generatorConfiguration>
阅读全文
0 0
- MyBatis Generator实现分页插件
- MyBatis Generator实现MySQL分页插件
- MyBatis Generator实现MySQL分页插件
- mybatis generator 分页插件
- MyBatis Generator 以及 Generator 分页插件
- Mybatis Generator实现分页功能
- Mybatis Generator实现分页功能
- Mybatis Generator实现分页功能
- MyBatis插件实现分页
- Mybatis 分页插件实现
- mybatis分页插件实现分页
- Mybatis3分页, 基于Mybatis Generator插件生成分页语句
- Mybatis3分页, 基于Mybatis Generator插件生成MYSQL分页语句
- MyBatis Generator(MBG)实现插件
- mybatis实现分页插件PageHelper
- Mybatis分页插件的实现
- Mybatis分页插件PageHelper实现自动分页
- Mybatis分页-利用Mybatis Generator插件生成基于数据库方言的分页语句,统计记录总数
- 七扭八歪解faster rcnn(keras版)(三)
- python输出电脑上所有的串口名
- RF-常用关键字-set variable
- ELK+log4j2实现分布式日志系统
- slideToggle()和toggleClass()的用法
- MyBatis Generator实现分页插件
- 实现表格内容第一行居中,其他行与第一行左对齐
- nDCG, 排序模型评价指标
- Java设计模式-代理模式
- GreenDao数据库
- eclipse无法查看第三方jar包的问题
- Shader和3D图形渲染管线(Render Pipeline)
- IIS7下,显示PHP错误(不显示500错误,而显示详细错误)
- Revit二次开发之Journal日志文档【比目鱼原创】