2019独角兽企业重金招聘Python工程师标准>>>

java -jar ./mybatis-generator-core-1.3.2.jar -configfile ./config.xml -overwrite

自动生成bean

generatorConfig.xml PaginationPlugin.java

java -jar C:\Users\zhaomingli.m2\repository\org\mybatis\generator\mybatis-generator-core\1.3.2\mybatis-generator-core-1.3.2.jar -configfile ./generatorConfig.xml -overwrite

generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE generatorConfiguration SYSTEM "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN">

-<generatorConfiguration>

<classPathEntry location="C:\Users\zhaomingli\.m2\repository\mysql\mysql-connector-java\5.1.34\mysql-connector-java-5.1.34.jar"/>

-<context targetRuntime="MyBatis3" id="mysqlGenerator">

<plugin type="org.mybatis.generator.plugins.CaseInsensitiveLikePlugin"/>

<plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>

<!-- <plugin type="com.iqb.workflow.PaginationPlugin"></plugin> -->

-<commentGenerator>

<property value="true" name="suppressDate"/>

<property value="true" name="suppressAllComments"/>

</commentGenerator>

<jdbcConnection password="A944!75e" userId="user1" connectionURL="jdbc:mysql://123.56.186.143:3306/asset_dev" driverClass="com.mysql.jdbc.Driver"/>

<javaModelGenerator targetProject="E:\java\cs" targetPackage="/"/>

<sqlMapGenerator targetProject="E:\java\cs" targetPackage="/"/>

<javaClientGenerator type="XMLMAPPER" targetProject="E:\java\cs" targetPackage="/"/>

<table domainObjectName="IqbWfProcProps" tableName="IQB_WF_PROC_PROPS"/>

</context>

</generatorConfiguration>

PaginationPlugin.java

package com.iqb.workflow;

import java.util.List;

import org.mybatis.generator.api.CommentGenerator; import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.PluginAdapter; import org.mybatis.generator.api.ShellRunner; import org.mybatis.generator.api.dom.java.Field; import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; import org.mybatis.generator.api.dom.java.JavaVisibility; import org.mybatis.generator.api.dom.java.Method; import org.mybatis.generator.api.dom.java.Parameter; import org.mybatis.generator.api.dom.java.TopLevelClass; import org.mybatis.generator.api.dom.xml.Attribute; import org.mybatis.generator.api.dom.xml.TextElement; import org.mybatis.generator.api.dom.xml.XmlElement;

public class PaginationPlugin extends PluginAdapter {

@Override
public boolean modelExampleClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {// add field, getter, setter for limit clause  addLimit(topLevelClass, introspectedTable, "limitStart");addLimit(topLevelClass, introspectedTable, "limitEnd");return super.modelExampleClassGenerated(topLevelClass, introspectedTable);
}@Override
public boolean sqlMapSelectByExampleWithoutBLOBsElementGenerated(XmlElement element,IntrospectedTable introspectedTable) {XmlElement isParameterPresenteElemen = (XmlElement) element.getElements().get(element.getElements().size() - 1);XmlElement isNotNullElement = new XmlElement("if"); //$NON-NLS-1$  isNotNullElement.addAttribute(new Attribute("test", "limitStart >= 0 and limitEnd>= 0")); //$NON-NLS-1$ //$NON-NLS-2$   isNotNullElement.addElement(new TextElement("limit #{limitStart}, #{limitEnd}"));isParameterPresenteElemen.addElement(isNotNullElement);return super.sqlMapUpdateByExampleWithoutBLOBsElementGenerated(element, introspectedTable);
}private void addLimit(TopLevelClass topLevelClass, IntrospectedTable introspectedTable, String name) {CommentGenerator commentGenerator = context.getCommentGenerator();Field field = new Field();field.setVisibility(JavaVisibility.PROTECTED);field.setType(FullyQualifiedJavaType.getIntInstance());field.setName(name);field.setInitializationString("-1");commentGenerator.addFieldComment(field, introspectedTable);topLevelClass.addField(field);char c = name.charAt(0);String camel = Character.toUpperCase(c) + name.substring(1);Method method = new Method();method.setVisibility(JavaVisibility.PUBLIC);method.setName("set" + camel);method.addParameter(new Parameter(FullyQualifiedJavaType.getIntInstance(), name));method.addBodyLine("this." + name + "=" + name + ";");commentGenerator.addGeneralMethodComment(method, introspectedTable);topLevelClass.addMethod(method);method = new Method();method.setVisibility(JavaVisibility.PUBLIC);method.setReturnType(FullyQualifiedJavaType.getIntInstance());method.setName("get" + camel);method.addBodyLine("return " + name + ";");commentGenerator.addGeneralMethodComment(method, introspectedTable);topLevelClass.addMethod(method);
}/** * This plugin is always valid - no properties are required */
@Override
public boolean validate(List<String> warnings) {return true;
}public static void generate() {String config = PaginationPlugin.class.getClassLoader().getResource("generatorConfig.xml").getFile();String[] arg = { "-configfile", config, "-overwrite" };ShellRunner.main(arg);
}public static void main(String[] args) {generate();
}

}

转载于:https://my.oschina.net/u/3229047/blog/840863

mybatis自动生成bean相关推荐

  1. 简单的利用IDEA搭建SpringBoot+Maven+Mybatis+自动生成代码

    最近在系统的学习SpringBoot框架,并且要用该框架做个项目--网上也大大小小看了很多教程,感觉很多写文章的人都不太负责任,只知道搬运,大概都没有实际操作过,问题也是有很多,所以自己写一篇文章记录 ...

  2. 【MyBatis】MyBatis自动生成代码之查询爬坑记

    前言 项目使用SSM框架搭建Web后台服务,前台后使用restful api,后台使用MyBatisGenerator自动生成代码,在前台使用关键字进行查询时,遇到了一些很宝贵的坑,现记录如下.为展示 ...

  3. 使用mybatis自动生成指定规则的编号

    一.要求 1.如果表中还未有菜单,添加一级菜单,编号为:'300' 2.继续添加一级菜单,编号为:一级菜单最大编号 + 1,如'301','302','303' 3.添加子级菜单:编号 = 父级编号 ...

  4. Mybatis自动生成实体类等代码

    Mybatis自动生成实体类等代码 具体步骤 具体步骤 在本机随便找个目录存放以下文件,如图(mybatis-generator-core-1.3.5.jar 和 mysql-connector-ja ...

  5. Spring+SpringMVC+Mybatis(开发必备技能)04、mybatis自动生成mapper_dao_model(包含工具与视频讲解) 纯绿色版本、配套使用视频,100%运行成功

    Spring+SpringMVC+Mybatis(开发必备技能) 04.mybatis自动生成mapper_dao_model(包含工具与视频讲解) 纯绿色版本.配套使用视频,100%运行成功 百度网 ...

  6. Mybatis自动生成代码插件generator

    Mybatis自动生成代码插件generator 1.pom maven依赖 <dependencies><dependency><groupId>org.myba ...

  7. Mybatis自动生成的Example类的使用与解析

    在上篇文章我有讲到mybatis如何自动生成我们所需的dao代码,今天我们把上篇文章遗留的问题给大家讲解一下.个人拙见,欢迎补充. 上篇文章中我有说过利用Mybatis自动生成的Example类可以满 ...

  8. eclipse maven 搭建 SSM(Spring+SpringMVC+MyBatis)开发环境 和 MyBatis 自动生成的 maven 插件配置

    最近研究java web开发,首先需要配置好开发环境,查阅网上各位大神的文章后搭建完成,记录下来作为备忘. 1.安装Maven Maven下载地址:http://maven.apache.org/do ...

  9. 如何让 Mybatis 自动生成代码,提高开发效率

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 在使用 mybatis 过程中, 当手写 JavaBean ...

最新文章

  1. 在 Linux 上如何安装 SoundConverter及转换音频
  2. Expression Blend实例中文教程(9) - 行为快速入门Behaviors
  3. python2.7调用mysql存储过程并且返回结果
  4. python之torchlight使用_为什么Python被誉为全世界最高效的编程语言?
  5. set注意点map遍历
  6. Windows 下有哪些逆天的软件?
  7. C#调用Power Shell 管理Office365 执行脚本时遇到的问题
  8. 应急指南|新一轮勒索病毒来袭,小白用户看这里
  9. iOS应用开发:什么是ARC?
  10. DP-桥接模式(Bridge Pattern)
  11. Atitit mq的AMQP 协议 STOMP2 、MQTT3 等协议  MQTT,XMPP,STOMP,AMQP,WAMP 目录 1. AMQP in a Nutshell 1 2. MQTT概述
  12. Excel-VBA 快速上手(一、宏、VBA、过程、类型与变量、函数)
  13. access阿里云 mysql_access数据库如何使用
  14. labview自制对话框
  15. 工信部官宣:5G商用牌照即将发放!
  16. HDFS Shell 命令简介及查询
  17. 钉钉打新债自动提醒-python
  18. 成品、预售、老店翻新、教练:邀约话术(绝干干货)-健身房管理系统结捷径系统
  19. java for循环打印平行四边形,正三角形,菱形和空心菱形
  20. git分支主干同步命令

热门文章

  1. Swift入门篇-基本类型(1)
  2. 新浪新闻改版了,是到了告别的时候了吗?
  3. ORA-16629: database reports a different protection
  4. IIS服务器五大安全要素
  5. Zookeeper源码编译为Eclipse工程(转)
  6. 几张图片总结我的2015年
  7. JAVA card 应用开发(二) 在项目添加APPLET
  8. Flex 颜色对照表_16进制
  9. 合并的路径Path.Combine
  10. 简化 MongoDB 关联运算