mybatis自动生成bean
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相关推荐
- 简单的利用IDEA搭建SpringBoot+Maven+Mybatis+自动生成代码
最近在系统的学习SpringBoot框架,并且要用该框架做个项目--网上也大大小小看了很多教程,感觉很多写文章的人都不太负责任,只知道搬运,大概都没有实际操作过,问题也是有很多,所以自己写一篇文章记录 ...
- 【MyBatis】MyBatis自动生成代码之查询爬坑记
前言 项目使用SSM框架搭建Web后台服务,前台后使用restful api,后台使用MyBatisGenerator自动生成代码,在前台使用关键字进行查询时,遇到了一些很宝贵的坑,现记录如下.为展示 ...
- 使用mybatis自动生成指定规则的编号
一.要求 1.如果表中还未有菜单,添加一级菜单,编号为:'300' 2.继续添加一级菜单,编号为:一级菜单最大编号 + 1,如'301','302','303' 3.添加子级菜单:编号 = 父级编号 ...
- Mybatis自动生成实体类等代码
Mybatis自动生成实体类等代码 具体步骤 具体步骤 在本机随便找个目录存放以下文件,如图(mybatis-generator-core-1.3.5.jar 和 mysql-connector-ja ...
- Spring+SpringMVC+Mybatis(开发必备技能)04、mybatis自动生成mapper_dao_model(包含工具与视频讲解) 纯绿色版本、配套使用视频,100%运行成功
Spring+SpringMVC+Mybatis(开发必备技能) 04.mybatis自动生成mapper_dao_model(包含工具与视频讲解) 纯绿色版本.配套使用视频,100%运行成功 百度网 ...
- Mybatis自动生成代码插件generator
Mybatis自动生成代码插件generator 1.pom maven依赖 <dependencies><dependency><groupId>org.myba ...
- Mybatis自动生成的Example类的使用与解析
在上篇文章我有讲到mybatis如何自动生成我们所需的dao代码,今天我们把上篇文章遗留的问题给大家讲解一下.个人拙见,欢迎补充. 上篇文章中我有说过利用Mybatis自动生成的Example类可以满 ...
- eclipse maven 搭建 SSM(Spring+SpringMVC+MyBatis)开发环境 和 MyBatis 自动生成的 maven 插件配置
最近研究java web开发,首先需要配置好开发环境,查阅网上各位大神的文章后搭建完成,记录下来作为备忘. 1.安装Maven Maven下载地址:http://maven.apache.org/do ...
- 如何让 Mybatis 自动生成代码,提高开发效率
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 在使用 mybatis 过程中, 当手写 JavaBean ...
最新文章
- 在 Linux 上如何安装 SoundConverter及转换音频
- Expression Blend实例中文教程(9) - 行为快速入门Behaviors
- python2.7调用mysql存储过程并且返回结果
- python之torchlight使用_为什么Python被誉为全世界最高效的编程语言?
- set注意点map遍历
- Windows 下有哪些逆天的软件?
- C#调用Power Shell 管理Office365 执行脚本时遇到的问题
- 应急指南|新一轮勒索病毒来袭,小白用户看这里
- iOS应用开发:什么是ARC?
- DP-桥接模式(Bridge Pattern)
- Atitit mq的AMQP 协议 STOMP2 、MQTT3 等协议 MQTT,XMPP,STOMP,AMQP,WAMP 目录 1. AMQP in a Nutshell	1 2. MQTT概述
- Excel-VBA 快速上手(一、宏、VBA、过程、类型与变量、函数)
- access阿里云 mysql_access数据库如何使用
- labview自制对话框
- 工信部官宣:5G商用牌照即将发放!
- HDFS Shell 命令简介及查询
- 钉钉打新债自动提醒-python
- 成品、预售、老店翻新、教练:邀约话术(绝干干货)-健身房管理系统结捷径系统
- java for循环打印平行四边形,正三角形,菱形和空心菱形
- git分支主干同步命令