mybatis逆向工程使用
Posted xiafeiyong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis逆向工程使用相关的知识,希望对你有一定的参考价值。
下面给大家介绍一种偷懒的生成工具使用--mybatis-generator,使用此插件可以从数据库生成指定表格对应的实体类、mapper接口以及对应的xml文件(包含一些常用的方法实现)。
首先是通过maven添加插件引用
-
<plugin>
-
<groupId>org.mybatis.generator</groupId>
-
<artifactId>mybatis-generator-maven-plugin</artifactId>
-
<version>1.3.2</version>
-
<configuration>
-
<!--配置文件的位置-->
-
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
-
<verbose>true</verbose>
-
<overwrite>true</overwrite>
-
</configuration>
-
<executions>
-
<execution>
-
<id>Generate MyBatis Artifacts</id>
-
<goals>
-
<goal>generate</goal>
-
</goals>
-
</execution>
-
</executions>
-
<dependencies>
-
<dependency>
-
<groupId>org.mybatis.generator</groupId>
-
<artifactId>mybatis-generator-core</artifactId>
-
<version>1.3.2</version>
-
</dependency>
-
</dependencies>
-
</plugin>
新建配置文件generatorConfig.xml:
-
-
-
-
-
<generatorConfiguration>
-
<!--mysql 连接数据库jar 这里选择自己本地位置-->
-
<classPathEntry location="D:maven epositorymysqlmysql-connector-java5.1.34mysql-connector-java-5.1.34.jar" />
-
<context id="testTables" targetRuntime="MyBatis3">
-
<commentGenerator>
-
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
-
<property name="suppressAllComments" value="true" />
-
</commentGenerator>
-
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
-
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
-
connectionURL="jdbc:mysql://localhost:3306/test?serverTimezone=UTC" userId="root"
-
password="123456">
-
</jdbcConnection>
-
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
-
NUMERIC 类型解析为java.math.BigDecimal -->
-
<javaTypeResolver>
-
<property name="forceBigDecimals" value="false" />
-
</javaTypeResolver>
-
-
<!-- targetProject:生成PO类的位置 -->
-
<javaModelGenerator targetPackage="com.example.demo.entry"
-
targetProject="src/main/java">
-
<!-- enableSubPackages:是否让schema作为包的后缀 -->
-
<property name="enableSubPackages" value="false" />
-
<!-- 从数据库返回的值被清理前后的空格 -->
-
<property name="trimStrings" value="true" />
-
</javaModelGenerator>
-
<!-- targetProject:mapper映射文件生成的位置
-
如果maven工程只是单独的一个工程,targetProject="src/main/java"
-
若果maven工程是分模块的工程,targetProject="所属模块的名称",例如:
-
targetProject="ecps-manager-mapper",下同-->
-
<sqlMapGenerator targetPackage="mapXml"
-
targetProject="src/main/resources">
-
<!-- enableSubPackages:是否让schema作为包的后缀 -->
-
<property name="enableSubPackages" value="false" />
-
</sqlMapGenerator>
-
<!-- targetPackage:mapper接口生成的位置 -->
-
<javaClientGenerator type="XMLMAPPER"
-
targetPackage="com.example.demo.mapper"
-
targetProject="src/main/java">
-
<!-- enableSubPackages:是否让schema作为包的后缀 -->
-
<property name="enableSubPackages" value="false" />
-
</javaClientGenerator>
-
<!-- 指定数据库表 -->
-
<table schema="" tableName="demo2"></table>
-
</context>
-
</generatorConfiguration>
配置文件需配置数据库jar包位置,生成的文件存放位置等信息
IEDA配置运行选项:
运行环境配置中新增maven选项,Command Line项设置值为 mybatis-generator:generate -e
最后,选中generatorConfig.xml配置文件,以新建的方式运行
可以看到对应的文件已经生成,而且mapper中也生成了一些基础的方法
MyEclipse中也有类似的无须maven引入的插件,可以自行百度了解其安装方法
注意:
在上面的配置文件,有一个严重的问题,就是
-
<commentGenerator>
-
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
-
<property name="suppressAllComments" value="true" />
-
</commentGenerator>
这里的注释设置,最好设置为false,因为第二次更新生成代码的时候,是会根据注释中@mbggenerated来生成,如果去除自动生成的注释,会引起XML代码重复生成的问题,从而导致启动报错。
还有一个问题,在Maven插件设置中设置了
<overwrite>true</overwrite>
所以每次重新生成,Mapper会被覆盖,这样自己写的接口会被清除,myeclipse中使用插件安装是可以避免这个问题的,但是IDEA不行,最近在找方法解决中。。。
以上是关于mybatis逆向工程使用的主要内容,如果未能解决你的问题,请参考以下文章