彩笔在springboot里集成mybatis-generator
项目工程跟前几篇的
第一步 在pom.xml 里最后面<build>节点内引入
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
第二步 resources下新建generatorConfig.xml 来配置自动生成的路径等等 springboot会自动识别这个路径下这个文件 如果没特殊设置的话
<?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="mybatisGeneratorinit.properties"/>
<!-- mysql驱动的位置 -->
<!--<classPathEntry location="C:\Users\admin\.m2\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar" />-->
<!-- 一个数据库一个context -->
<!--defaultModelType="flat" 大数据字段,不分表 -->
<context id="Tables" targetRuntime="MyBatis3">
<!-- 注释 -->
<commentGenerator>
<!-- 是否生成注释代时间戳 -->
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- JDBC连接 -->
<jdbcConnection
driverClass="${jdbc_driver}"
connectionURL="${jdbc_url}"
userId="${jdbc_user}"
password="${jdbc_password}"/>
<!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制-->
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成实体类地址 指定javaBean生成的位置-->
<javaModelGenerator targetPackage="com.example.demo.bean" targetProject="src/main/java">
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true"/>
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
</javaModelGenerator>
<!-- 生成mapper xml文件 制定sql映射文件的生成位置-->
<sqlMapGenerator targetPackage="/" targetProject="src/main/resources/mapping">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!-- 生成mapper xml对应Client 也就是接口dao-->
<javaClientGenerator targetPackage="com.example.demo.Mapper" targetProject="src/main/java"
type="XMLMAPPER">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<!-- 配置表信息 -->
<!-- schema即为数据库名 tableName为对应的数据库表 domainObjectName是要生成的实体类 enable*ByExample
是否生成 example类 -->
<table tableName="sex"
domainObjectName="Sex"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"
>
<generatedKey column="id" sqlStatement="Mysql"/>
</table>
<table 。。。
>
。。。
</table>
</context>
</generatorConfiguration>
<properties resource="mybatisGeneratorinit.properties"/> 是作为数据库配置文件 在后面<jdbcConnection 引用有用到 如果不用外部配置管理直接写相关数据库配置也可以的
<javaModelGenerator targetPackage="生成实体类地址 指定javaBean生成的位置" targetProject="src/main/java"> 不解释
<sqlMapGenerator targetPackage="/" targetProject="src/main/resources/mapping 生成mapper xml文件 制定sql映射文件的生成位置"> 不解释
<javaClientGenerator targetPackage="com.example.demo.Mapper 生成mapper xml对应接口dao" targetProject="src/main/java" type="XMLMAPPER"> 不解释
<table tableName="数据库表" domainObjectName="生成的文件名称">
<generatedKey column="id" sqlStatement="Mysql"/> 表里主键名
第三步 resources下建 mybatisGeneratorinit.properties
#Mybatis Generator configuration
#dao类和实体类的位置
project =src/main/java
#mapper文件的位置
resources=src/main/resources/mapping
#根据数据库中的表生成对应的pojo类、dao、mapper
jdbc_driver =com.mysql.cj.jdbc.Driver
jdbc_url=jdbc:mysql://localhost:3306/数据库名称?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
jdbc_user=root
jdbc_password=123456
根据自己数据库和项目结构对应修改
第四步 生成对应配置
双击就能看到控制台打印 如果成功原先指定的目录生成了文件
我的resources/mapping生成的sql有地方会报错 所以我会把生成的sql语句都删了。。