文档章节

mybatis-generator 代码自动生成工具

 如月王子
发布于 2017/02/04 13:40
字数 908
阅读 315
收藏 1

    今天来记录下mybatis-generator插件自动生成xml mapper和model还有dao接口,这样我们就可以把精力放在业务代码上,而不需要关心数据库的具体操作。

    这里我使用eclipse作为开发工具,采用maven来构建项目。

1. 编写pom.xml文件

      这里只有3个jar文件,数据库使用mysql

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.jacksoft.mybatis</groupId>
	<artifactId>mybatis-generator</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<properties>
		<mybatis-generator.version>1.3.1</mybatis-generator.version>
		<mysql.version>5.1.13</mysql.version>
		<mybatis.version>3.0.3</mybatis.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>${mysql.version}</version>
		</dependency>

		<dependency>
			<groupId>org.mybatis.generator</groupId>
			<artifactId>mybatis-generator-core</artifactId>
			<version>${mybatis-generator.version}</version>
		</dependency>

		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>${mybatis.version}</version>
		</dependency>
	</dependencies>

	<build>
        <pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.mybatis.generator</groupId>
					<artifactId>mybatis-generator-maven-plugin</artifactId>
					<version>${mybatis-generator.version}</version>
					<configuration>
						<configurationFile>src/main/resources/config/mysqlGeneratorConfig.xml</configurationFile>
						<verbose>true</verbose>
						<overwrite>true</overwrite>
						<jdbcDriver>com.mysql.jdbc.Driver</jdbcDriver>
						<jdbcURL>jdbc:mysql://localhost:3306/demo</jdbcURL>
						<jdbcUserId>root</jdbcUserId>
						<jdbcPassword>hwroot</jdbcPassword>
					</configuration>
					<!-- 自动生成 -->
					<executions>
						<execution>
							<id>Generate MyBatis Artifacts</id>
							<goals>
								<goal>generate</goal>
							</goals>
						</execution>
					</executions>
					<dependencies>
						<!-- 数据库驱动 -->
						<dependency>
							<groupId>mysql</groupId>
							<artifactId>mysql-connector-java</artifactId>
							<version>${mysql.version}</version>
						</dependency>
					</dependencies>
				</plugin>
	
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<configuration>
						<source>1.5</source>
						<target>1.5</target>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>

   我这里通过配置插件,让maven在执行 mvn mybatis-generator:generate 的时候,自动重新生成代码,因为生成的代码中包含mybatis包中的类,所以也需要引入该包。

2.创建mysqlGeneratorConfig.xml文件

    在src/main/resources/config目录下面创建mysqlGeneratorConfig.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>
    <!--数据库驱动jar -->
    <!-- 
    <classPathEntry location="E:\mysql-connector-java-5.1.7-bin.jar" />
     -->

    <context id="mysqlTables" targetRuntime="MyBatis3">
        <!--去除注释  -->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <!--数据库连接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/wuyedatabase"
                        userId="root"
                        password="123456">
        </jdbcConnection>
        
        <!--默认false
           Java type resolver will always use java.math.BigDecimal if the database column is of type DECIMAL or NUMERIC.
         -->
        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!--生成实体类 指定包名 以及生成的地址 (可以自定义地址,但是路径不存在不会自动创建  使用Maven生成在target目录下,会自动创建) -->
        <javaModelGenerator targetPackage="com.jacksoft.mybatis.generator.model" targetProject="MAVEN">
            <property name="enableSubPackages" value="false" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        
        <!--生成SQLMAP文件 -->
        <sqlMapGenerator targetPackage="com.jacksoft.mybatis.generator.mapper" targetProject="MAVEN">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        
        <!--生成Dao文件 可以配置 type="XMLMAPPER"生成xml的dao实现  context id="mysqlTables" 修改targetRuntime="MyBatis3"  -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.jacksoft.mybatis.generator.dao" targetProject="MAVEN">
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!--对应数据库表 mysql可以加入主键自增 字段命名 忽略某字段等-->
        <table tableName="t_client" domainObjectName="Client" >
        </table>

    </context>
</generatorConfiguration>

3. 生成代码

    到这里就差不多了,保存为该文件后,右键pom.xml,在Maven Build中新建一个”mybatis-generator“,Goals设置为“mybatis-generator:generate”,再设置一下其他maven build属性,然后点击右下角的Run按钮,就可以在target目录中自动生成相关的mybatis源码。

    具体如下图:



   对应的mapper,xml,model,example都生成好了,是不是很方便啊?

   但是该插件默认不带分页功能,分页插件将在下一次记录。

 

对于自己写的插件无法初始化的问题,可以参照:

http://code.google.com/p/mybatis/issues/detail?id=343

也就是需要将自己的插件在配置plugin的时候加入,如:

<plugin>
	<groupId>org.mybatis.generator</groupId>
	<artifactId>mybatis-generator-maven-plugin</artifactId>
	<version>${mybatis-generator.version}</version>
	<dependencies>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>${mysql.version}</version>
		</dependency>
		<dependency>
			<groupId>com.jacksoft</groupId>
			<artifactId>mybatis-plugins-paging</artifactId>
			<version>${mybatis.paging.version}</version>
		</dependency>
	</dependencies>
</plugin>

 

本文转载自:http://mybar.iteye.com/blog/1870000

粉丝 15
博文 177
码字总数 3194
作品 0
淮安
私信 提问
Spring Boot项目利用MyBatis Generator进行数据层代码自动生成

概 述 MyBatis Generator (简称 MBG) 是一个用于 MyBatis和 iBATIS的代码生成器。它可以为 MyBatis的所有版本以及 2.2.0之后的 iBATIS版本自动生成 ORM层代码,典型地包括我们日常需要手写的...

CodeSheep
02/14
322
0
Mybatis 实战教程 代码生成工具的使用

代码生成工具的使用 Mybatis 应用程序,需要大量的配置文件,对于一个成百上千的数据库表来说,完全手工配置,这是一个很恐怖的工作量. 所以 Mybatis 官方也推出了一个 Mybatis 代码生成工具...

steven
2016/11/16
129
0
Mybatis Generator Plus

1.介绍: MyBatis generator plus 基于mybatis-generator-core v.1.3.2 扩展,增加如下主要特性: 生成支持Oracle、Mysql、Sqlserver分页查询的代码: //分页查询demoOperateLogExample relatio...

handosme_w
2017/01/20
2.1K
2
mysql8+mybatis-plus3.1自动生成带lombok和swagger和增删改查接口

mybatis-dsc-generator 还在为写swagger而烦恼吗?还在为忘记写注释而烦恼吗?还在为写简单的api接口而烦恼吗?mybatis-dsc-generator完美集成lombok,swagger的代码生成工具,让你不再为繁琐...

攻城狮-飞牛
04/11
915
2
尛爺鑫/mybatis-dsc-generator

mybatis-dsc-generator 完美集成lombok,swagger的代码生成工具,让你不再为繁琐的注释和简单的接口实现而烦恼:entity集成,格式校验,swagger; dao自动加@ mapper,service自动注释和依赖;...

尛爺鑫
04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

个人服务容器化和监控集成

1.前景 自己比较喜欢玩机器,目前手上有4台常用的机器 asw 1核1G 阿里云 1核2G 腾讯云 1核1G 百度云 2核4G

MrPei
9分钟前
2
0
Rancher源码编译

源码包准备 mkdir -p $GOPATH/src/github.com/ranchercd $GOPATH/src/github.com/ranchergit clone https://github.com/rancher/rancher.gitcd ranchergit checkout v2.2.3-rc9 注1......

深蓝苹果
13分钟前
3
0
7个理由,给你推荐这款“秒杀Excel”的分析神器!

谈到数据分析,自然离不开赖以使用的数据分析工具。 商业智能时代,可用于数据分析的工具有很多,Python、R......还有各式各样的专业工具。其中,Excel也是推荐的比较多的一种,尤其是刚入门...

朕想上头条
27分钟前
2
0
Spring5 源码分析-容器刷新-解析配置类-主流程

上一篇:Spring5 源码分析-容器刷新-invokeBeanFactoryPostProcessors()方法 此篇是上一篇方法中非常非常重要的功能,也是Spring核心功能,完成所有的BeanDefinition注册。 详细的主流程,如...

特拉仔
28分钟前
2
0
Python 3.8.0 正式发布 更新内容

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的...

阮鹏
28分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部