mybatis自动生成器,它能为我们根据数据库生成实体类
代码生成是趋势了,但它只能为我们减少繁复代码量,如果你一直做的是简单的重复的工作是不是该行动起来了。
一、引入依赖,加入plugin
<!-- 加入插件:mybatis 生成器-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<includeCompileDependencies>true</includeCompileDependencies>
<!--允许移动生成的文件 -->
<verbose>true</verbose>
<!-- 是否覆盖 -->
<overwrite>true</overwrite>
<!-- 自动生成的配置 -->
<configurationFile>
src/main/resources/mybatis-generator.xml
</configurationFile>
</configuration>
</plugin>
<!-- 引入依赖 -->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
</dependencies>
</plugin>
二、增加mybatis-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>
<context id="hr" targetRuntime="MyBatis3">
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="false" />
<!-- 于指定生成实体类时是否使用实际的列名作为实体类的属性名-->
<property name="useActualColumnNames" value="false" />
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/dev" userId="dev" password="1">
<property name="useInformationSchema" value="true"/>
</jdbcConnection>
<javaTypeResolver>
<!--是否使用 bigDecimal,默认false。
false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer
true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal-->
<property name="forceBigDecimals" value="true"/>
<!--默认false
false,将所有 JDBC 的时间类型解析为 java.util.Date
true,将 JDBC 的时间类型按如下规则解析
DATE -> java.time.LocalDate
TIME -> java.time.LocalTime
TIMESTAMP -> java.time.LocalDateTime
TIME_WITH_TIMEZONE -> java.time.OffsetTime
TIMESTAMP_WITH_TIMEZONE -> java.time.OffsetDateTime
-->
<property name="useJSR310Types" value="true"/>
</javaTypeResolver>
<javaModelGenerator targetPackage="com.mirror.dao.dataobject" targetProject="src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="true"/>
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true"/>
<property name="useGeneratedKeys" value="true"/>
</javaModelGenerator>
<sqlMapGenerator targetPackage="sqlMap" targetProject="src\main\resources\">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.mirror.student.dao.mapper" targetProject="src\main\java">
<property name="enableSubPackages" value="true"/>
<property name="useGeneratedKeys" value="true"/>
</javaClientGenerator>
<!-- 加入数据库的表 -->
<table tableName="student" domainObjectName="StudentDO" enableUpdateByExample="true" enableDeleteByExample="true">
<generatedKey column="ID" sqlStatement="mysql" identity="true" />
</table>
</context>
</generatorConfiguration>
三、执行命令
执行后最终生成的文件:mapper接口类,mapper文件,实体类
hi~我是Mirror,一个为了自由安逸的未来而不断前进的的程序员。
如果你觉得文章对你有一点点帮助,一个小小赞,便是对我的认可,如果有不足之处,也欢迎各位指正。