之前在网上找了一些关于逆向工程的配置,照着试做了一下,有些能够成功,有些直接报错,但是感觉不够简单,又方方面面找了一大堆资料,整理出一套比较简单的方法,而且不是在项目基础上配置的,直接放在任意一个文件夹下面就可以直接使用,好了,我就为大家简单介绍一下使用方法。
首先。使用idea创建一个ssm项目,相信你们已经走到逆向工程这一步创建项目应该没什么问题了,我就不细说了。这里我的项目使用的是mysql数据库,如果你们使用的是oracle数据库,那就需要更改一下连接数据库语句。这里是我随便建的一个项目。
大家可以看到我在项目根目录下建了一个generator文件夹,我就把配置方法放入了这个文件夹了,也就是说如果删除这个文件夹咱们的项目是不受任何影响的,我们需要导入两个jar包放入generator文件夹中
mybatis-generator-core-1.3.2.jar 是mybatis逆向工程专用jar包
mysql-connector-java-5.1.34.jar 是连接mysql数据库用的
这里是两个jar包以及配置文件的下载地址,永久免费有效!
链接:https://pan.baidu.com/s/1MeZmpmDm0AfvjiW0gR3YVg 密码:4x41
现在generator文件夹下面是这样的
然后。在generator文件夹下面创建src文件夹,为了存放我们生成的文件,以及gen.txt文件和generator.xml配置逆向工程文件
接下来我们就开始配置generator.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>
<!-- 数据库驱动包位置 -->
<classPathEntry location="/Users/apple/Downloads/helloword/generator/mysql-connector-java-5.1.34.jar" /> <!-- 1 -->
<context id="DB2Tables" defaultModelType="flat" targetRuntime="MyBatis3">
<!--自动实现Serializable接口-->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 数据库链接URL、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/hellword?characterEncoding=utf8" userId="root" password="123456"> <!-- 2 -->
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 生成模型的包名和位置 --> <!-- 3 -->
<javaModelGenerator targetPackage="com.springmvc.entity" targetProject="/Users/apple/Downloads/helloword/generator/src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="false" />
</javaModelGenerator>
<!-- 生成的映射文件包名和位置 --> <!-- 4 -->
<sqlMapGenerator targetPackage="com.springmvc.mapper" targetProject="/Users/apple/Downloads/helloword/generator/src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 生成DAO的包名和位置 --> <!-- 5 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.springmvc.mapper" targetProject="/Users/apple/Downloads/helloword/generator/src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 要生成那些表(更改tableName和domainObjectName就可以) --><!-- 6 -->
<!--<table tableName="sys_invite" domainObjectName="SysInvite" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />-->
<table tableName="sys_crew" domainObjectName="SysCrew" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" >
<!-- 参考 javaModelGenerator 的 constructorBased属性-->
<property name="constructorBased" value="false"/>
<!-- 默认为false,如果设置为true,在生成的SQL中,table名字不会加上catalog或schema;-->
<property name="ignoreQualifiersAtRuntime" value="false"/>
<!-- 参考 javaModelGenerator 的 immutable 属性 -->
<property name="immutable" value="false"/>
<!-- 指定是否只生成domain类,如果设置为true,只生成domain类,如果还配置了sqlMapGenerator,那么在mapper XML文件中,只生成resultMap元素 -->
<property name="modelOnly" value="false"/>
<!-- 如果设置为true,生成的model类会直接使用column本身的名字,而不会再使用驼峰命名方法,比如BORN_DATE,生成的属性名字就是BORN_DATE,而不会是bornDate -->
<property name="useActualColumnNames" value="false"/>
<generatedKey column="id" sqlStatement="JDBC"/>
</table>
<table tableName="sys_film" domainObjectName="SysFilm" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" >
<!-- 参考 javaModelGenerator 的 constructorBased属性-->
<property name="constructorBased" value="false"/>
<!-- 默认为false,如果设置为true,在生成的SQL中,table名字不会加上catalog或schema;-->
<property name="ignoreQualifiersAtRuntime" value="false"/>
<!-- 参考 javaModelGenerator 的 immutable 属性 -->
<property name="immutable" value="false"/>
<!-- 指定是否只生成domain类,如果设置为true,只生成domain类,如果还配置了sqlMapGenerator,那么在mapper XML文件中,只生成resultMap元素 -->
<property name="modelOnly" value="false"/>
<!-- 如果设置为true,生成的model类会直接使用column本身的名字,而不会再使用驼峰命名方法,比如BORN_DATE,生成的属性名字就是BORN_DATE,而不会是bornDate -->
<property name="useActualColumnNames" value="false"/>
<generatedKey column="id" sqlStatement="JDBC"/>
</table>
</context>
</generatorConfiguration>
大家在使用的时候一定已定记得把用户名密码更换成自己的,以及你要生成的数据库中哪些表,把表名改成自己的就ok,这时候不要忘了我们还创建了一个gen.txt文件呢,在这个文件夹里我放入了一段代码
java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite
这是mybatis-generator工具,逆向工程使用的,这时候大家把这段代码先复制下来我们马上就要使用,如果你们按照我的步骤来操作的话你们的项目结构应该是这个样子的
这时候打开最下方的terminal终端,输入cd generator进入到generator文件下面,如下图
最后一步,我们将刚刚复制的那段代码放入终端然后回车
稍等两三秒等提示successfully时即表示生成逆向工程成功,这时候我们刷新一下项目打开src项目就可以看到刚刚生成的工程代码,如
这时候把类接口以及mapper文件复制到你的项目中去即可使用~