Maven项目中配置MyBatis Generator插件生成代码

news/2024/7/6 0:59:49

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

参考:

官网:http://www.mybatis.org/generator/index.html

官网配置文件:http://www.mybatis.org/generator/configreference/xmlconfig.html

《 OSC-蛙牛的博客——数据库逆向框架代码生成工具:MyBatis Generator的使用》

《IT大道——Maven多模块项目使用MyBatis Generator》

 

另:

MyBatis Generator GitHub代码库:https://github.com/mybatis/generator

 

开发环境

  JDK:1.8.0_11

  Maven:3.3.3

  MySQL:5.5

  MySQL Connector:5.1.38

  IDE:IntelliJ IDEA 2016

  MyBatis:3.2.8

  MyBatis Generator:1.3.5

 

一、pom文件配置

<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.lcw</groupId>
	<artifactId>mybatis-generator</artifactId>
	<version>1.0.0-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>mybatis-generator</name>
	<url>http://maven.aliyun.com/nexus/</url>

	<properties>
		<!--mybatis generator-->
		<!-- MySQL Connector 版本 -->
		<mysql-connector.version>5.1.38</mysql-connector.version>
		<!-- MyBatis Generator 版本 -->
		<mybatis-generator.version>1.3.5</mybatis-generator.version>
		<!-- 指定MyBatis Generator插件的配置文件 -->
		<plugin.generator.configurationFile>${project.basedir}\src\main\resources\generatorConfig.xml</plugin.generator.configurationFile>
		<!-- 是否重写已存在的文件 -->
		<plugin.generator.overwrite>true</plugin.generator.overwrite>
		<!-- 生成器targetProject的根目录 ,或targetProject="MAVEN"-->
		<generator.project.root>${project.basedir}\target\generated-sources\mybatis-generator</generator.project.root>
		<!-- 生成器所需驱动包的路径 -->
		<generator.classpath>${project.basedir}\lib\mysql-connector-java-5.1.38.jar</generator.classpath>
		<!--mybatis generator end-->
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.2.8</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>${mybatis-generator.version}</version>
				<!-- 插件配置 -->
				<configuration>
					<configurationFile>${plugin.generator.configurationFile}</configurationFile>
					<overwrite>${plugin.generator.overwrite}</overwrite>
				</configuration>
				<!-- 编译之前需要执行的命令 -->
				<!--<executions>
					<execution>
						<id>Generate MyBatis Artifacts</id>
						<goals>
							<goal>generate</goal>
						</goals>
					</execution>
				</executions>-->
			</plugin>
		</plugins>
	</build>
</project>

 

二、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>
    <properties resource="jdbc.properties" />

    <!--
        数据库驱动jar 在pom文件默认指定了lib\mysql-connector-java-5.1.38.jar
        如果需要使用其他目录,自行替换本地路径
    -->
    <classPathEntry location="${generator.classpath}" />

    <context id="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
        <!--去除注释  -->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <!--数据库连接 -->
        <jdbcConnection driverClass="${jdbc.driverClassName}"
                        connectionURL="${jdbc.url}"
                        userId="${jdbc.username}"
                        password="${jdbc.password}">
        </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.lcw.mybatis.generator.model" targetProject="MAVEN">
            <property name="enableSubPackages" value="false" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!--生成SQLMAP文件 -->
        <sqlMapGenerator targetPackage="conf.scho.modules.user.xml"  targetProject="MAVEN">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!--生成Dao文件 可以配置 type="XMLMAPPER"生成xml的dao实现  context id="DB2Tables" 修改targetRuntime="MyBatis3"  -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.lcw.mybatis.generator.dao"  targetProject="MAVEN">
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!--对应数据库表 mysql可以加入主键自增 字段命名 忽略某字段等,自增-->
       <!-- <table tableName="user">
            <generatedKey column="id" sqlStatement="Mysql" type="post" identity="true"/>
        </table>-->

        <!---->
        <table tableName="user" domainObjectName="user" >
        </table>

    </context>
</generatorConfiguration>

三、properties文件(配置了数据库链接)

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
jdbc.username=root
jdbc.password=root

四、点击Maven Project——自己的项目——Plugins——mybatis generator——Run Maven build

 

附件:

完整项目git地址 : http://git.oschina.net/changwei0708/Mybatis-Generator

转载于:https://my.oschina.net/runforfuture/blog/791325


http://www.niftyadmin.cn/n/4115350.html

相关文章

cesium 获取多边形polygon中心点

//创建面 支持球面和平面坐标 var polygon viewer.entities.add({ polygon: { hierarchy: { positions: Cesium.Cartesian3.fromRadiansArray([ ]), }, outline: true, outlineColor: Cesium.Color.RED, outlineWidth: 3, material: Cesium.Color.YELLOW, }, }); var pyPosi…

vue离线状态创建项目

通过vue-cli工具命令vue init webpack vuedemo创建vue项目的时候报错&#xff0c;提示连接超时&#xff0c;应该是下载某个package的时候&#xff0c;需要翻墙&#xff0c;导致出现连接超时。超时错误截图如下&#xff1a; 按照网络上的提示&#xff0c;解决办法是改为离线创建…

Android-MVP架构

MVP 简介 MVP是模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;、主持人&#xff08;Presenter&#xff09;的缩写&#xff0c;分别代表项目中3个不同的模块。如图所示&#xff1a;imageView 对应于Activity、Fragment&#xff0c;负责界面的绘制以及与用…

cesium动态创建圆和矩形

cesium鼠标动态绘制线、面、圆、矩形&#xff1b;其他entity类型依此原理 var activeShapePoints []; var activeShape; var floatingPoint; var handler new Cesium.ScreenSpaceEventHandler(viewer.canvas); //双击鼠标左键清除默认事件 viewer.cesiumWidget.screenSpaceEv…

URI的常用使用场景

2019独角兽企业重金招聘Python工程师标准>>> 1&#xff0c;调web浏览器 Uri myBlogUri Uri.parse(" http://xxxxx.com "); returnIt new Intent(Intent.ACTION_VIEW, myBlogUri); 2&#xff0c;地图 Uri mapUri Uri.parse("geo:38.899533…

u盘在本机电脑读不出来,但别的机器可以读解决方案

测试环境 win10家庭中文版 一般这种问题都是驱动程序问题导致的&#xff0c;解决方法很简单&#xff0c;不管是win7还是win10都适用&#xff1a; 插入u盘然后在设备管理里删掉设备重新插拔试试。 详细步骤是&#xff1a; 插上U盘 打开设备管理器 找到移动磁盘的图标&#xff0…

linux下热插拔事件的产生是怎样通知到用户空间,kobject_uevent_env之uevent【转】...

转自&#xff1a;http://blog.csdn.net/myarrow/article/details/8259888 1&#xff0e;kobject, ktype, kset 1) kobject: 代表sysfs中的目录。 2) ktype: 代表kobject的类型&#xff0c;主要包含release函数和attr的读写函数。比如&#xff0c;所有的bus都有同一个bus_type&a…

django DateTimeField 到 mysql DATETIME 长度问题

环境&#xff1a;django 1.9.7背景介绍 django migrate 生成表结构时&#xff0c;对于DateTimeField 类型的处理是加了6位精度的&#xff0c;只用django处理是没有任何问题的&#xff0c;但是如何别的框架来读取这种字段会读取不到该字段值。 参考链接 The DATE, DATETIME, and…