1. 搭建开发环境
创建一个maven下的web项目
2. 建表
mybatis-generator是根据表结构反向生成,所以表一定要提前建好
3. 在pom中添加插件
删除maven项目pom.xml中使用骨架创建项目时原有build标签中的内容,添加如下内容:
<build>
<plugins>
<!--Mybatis-generator插件,自动生成代码-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<configurationFile>${project.basedir}/src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>
4. 将mysql-connector-java-5.1.48.jar放置到电脑的一个位置(注意不要有中文路径)
5. datasource.properties配置文件
#mysql驱动的本地路径,这个jar包的版本要和pom.xml里配置的版本一致
db.driverLocation=写第四步中放置jar包的位置
db.driverClassName=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf-8
db.username=根据实际情况填写
db.password=根据实际情况填写
6. 配置generatorConfig.xml
修改tableName:表名
domainObjectName:实体类的名字
根据需求写生成文件的路径
<?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="datasource.properties"/>
<!--指定特定数据库的jbdc驱动jar包的位置-->
<classPathEntry location="${db.driverLocation}"/>
<!--选择运行的mybatis版本-->
<context id="default" targetRuntime="MyBatis3">
<!--optional,旨在创建class时,对注释进行控制-->
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--jdbc的数据库连接-->
<jdbcConnection driverClass="${db.driverClassName}"
connectionURL="${db.url}"
userId="${db.username}"
password="${db.password}">
</jdbcConnection>
<!--非必须,类型处理器,在数据库类型和java类型之间的转换控制-->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
targetPackage 指定生成的model生成所在的包名
targetProject 指定在该项目下所在的路径
-->
<javaModelGenerator targetPackage="com.xxx.entity" targetProject="./src/main/java">
<!--是否允许子包,即targetPackage.schemaName.tableName-->
<property name="enableSubPackages" value="false"/>
<!--是否对model添加构造函数-->
<property name="constructorBased" value="true"/>
<!--是否对类CHAR类型的列的数据进行trim操作-->
<property name="trimStrings" value="true"/>
<!--建立的Model对象是否不可改变,即生成的Model对象不会有setter方法,只有构造方法-->
<property name="immutable" value="false"/>
</javaModelGenerator>
<!--mapper.xml映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件-->
<sqlMapGenerator targetPackage="com.xxx.mapper" targetProject="./src/main/resources">
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!--客户端代码,生成易于使用的针对Model对象和XML配置文件的代码
type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
-->
<!--targetPackage:dao层mapper接口生成的位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.xxx.mapper" targetProject="./src/main/java">
<!--enableSubPackages:是否让schema作为包的后缀-->
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<!--配置表格映射-->
<table tableName="t_product" domainObjectName="Product"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
7. 执行mybatis-generator插件
运行之后显示BUILD SUCCESS则表示生成成功