配置Mybatis一共需要修改四个文件,分别是pom.xml、application.properties、generatorConfig.xml、jdbc.properties。另外,从视图层的login.html页面到MySql数据库访问数据,一共要访问四个东西,Controller、Entity、Service、Mapper,这里Mybatis只生成了Entity和Mapper、以及Mapper下的xml文件三个东西,剩下两个需要自己写,分别是Controller、Service的代码。
1、pom.xml文件,加入两个配置
下面这个配置的是生成代码的保存路径
下图是把MyBatis插件的按钮加入到Maven—Piugins—mybatis-generator中
完整的pom.xml文件代码如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.11.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.snow</groupId>
<artifactId>demo_crm</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo_crm</name>
<description>Demo project for Spring Boot</description>
<properties>
<mbg.version>1.3.6</mbg.version>
<java.version>1.8</java.version>
<!-- Java接口和实体类生成路径
targetMapperPackage是生成的接口包名
targetModelPackage是生成的实体类包名
-->
<targetJavaProject>${basedir}/src/main/java</targetJavaProject>
<targetMapperPackage>com.snow.mapper</targetMapperPackage>
<targetModelPackage>com.snow.entity</targetModelPackage>
<!-- XML生成路径 -->
<targetResourcesProject>${basedir}/src/main/resources</targetResourcesProject>
<targetXMLPackage>mapper</targetXMLPackage>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!--mbg插件-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>${mbg.version}</version>
<configuration>
<!-- MBG配置文件路径 -->
<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<!-- 是否覆盖,true表示会替换生成的JAVA文件,false则不覆盖 -->
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>
</project>
2、application.properties配置数据库路径以及schema
springboot_manager是你数据库的创建的schema,完整代码如下:
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/springboot_manager?characterEncoding=utf-8&useSSL=false&unicode=true&serverTimezone=UTC
#mybatis
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.snow.entity
mybatis.configuration.map-underscore-to-camel-case=true
#thymeleaf
spring.thymeleaf.mode=HTML5
spring.thymeleaf.cache=false
spring.thymeleaf.encoding=UTF-8
#jsonʱ���ʽ������
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
3、generatorConfig.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">
<!--下列所有xml标签顺序不能颠倒、不能多不能少-->
<generatorConfiguration>
<!-- mysql数据源配置文件路径,0或1个 -->
<properties resource="jdbc.properties"/>
<!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包,0或多个-->
<classPathEntry location="${jdbc.location}"/>
<!--1或多个,用于指定生成一组对象的环境
defaultModelType:如何生成实体类
1、conditional:这是默认值,这个模型和下面的hierarchical类似,除了如果那个单独的类将只包含一个字段,将不会生成一个单独的类
因此,如果一个表的主键只有一个字段,那么不会为该字段生成单独的实体类,会将该字段合并到基本实体类中。
2、flat:该模型为每一张表只生成一个实体类。这个实体类包含表中的所有字段。这种模型最简单,推荐使用。
3、hierarchical:如果表有主键,那么该模型会产生一个单独的主键实体类,如果表还有BLOB字段,则会为表生成一个包含所有BLOB字段
的单独的实体类,然后为所有其他的字段生成一个单独的实体类。 MBG会在所有生成的实体类之间维护一个继承关系
targetRuntime:用于指定生成的代码的运行时环境
1、MyBatis3:*这是默认值*
2、MyBatis3Simple
3、Ibatis2Java2
4、Ibatis2Java5
如果你希望不生成和Example查询有关的内容,那么可以按照如下进行配置
使用MyBatis3Simple可以避免在后面的<table>中逐个进行配置
-->
<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<!--autoDelimitKeywords,当表名或者字段名为SQL关键字的时候,可以设置该属性为true,
MBG会自动给表名或字段名添加分隔符-->
<property name="autoDelimitKeywords" value="true"/>
<!--beginningDelimiter和endingDelimiter的默认值为双引号("),
在Mysql中不能这么写,所以还要将这两个默认值改为反单引号(`)
例如:select * from `user info`-->
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<!--插件用于扩展或修改通过MyBatis Generator (MBG)代码生成器生成的代码-->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
<!--阻止生成的注释包含时间戳-->
<property name="suppressDate" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="${jdbc.driver-class-name}"
connectionURL="${jdbc.url}"
userId="${jdbc.username}"
password="${jdbc.password}">
<!--解决(当不同数据库中存在相同的表名时,生成的代码有问题)的问题-->
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
<!--
默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer
true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal
-->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 实体类生成路径 -->
<javaModelGenerator targetPackage="${targetModelPackage}" targetProject="${targetJavaProject}"/>
<!-- XML生成路径 -->
<sqlMapGenerator targetPackage="${targetXMLPackage}" targetProject="${targetResourcesProject}"/>
<!-- 接口生成路径 -->
<javaClientGenerator targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}"
type="XMLMAPPER"/>
<!--生成全部的表名,用%-->
<table tableName="mall_product" schema="springboot_manager"/>
</context>
</generatorConfiguration>
4、jdbc.properties配置文件主要修改你数据库的schema以及你连接数据库的jar包的路径
完整的代码:
jdbc.driver-class-name:com.mysql.cj.jdbc.Driver
jdbc.url:jdbc:mysql://localhost:3306/springboot_manager?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
jdbc.username:root
jdbc.password:123456
jdbc.location=D:/Java/maven_repository/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar