版权声明:发扬开源精神,欢迎大家转载对自己有用的文章(●'◡'●) https://blog.csdn.net/jacksonary/article/details/81982459
1.引入Spring-Boot依赖、Spring-Boot整合MyBatis的插件依赖、MyBatis由数据库表逆向生成JavaBean和Mapper文件的mybatis-generator插件等:
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.glodon.tot.library</groupId>
<artifactId>mybatis-tot-library</artifactId>
<version>1.0-SNAPSHOT</version>
<!--SpringBoot的基本父级依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.5.RELEASE</version>
</parent>
<!--全局属性模板配置-->
<properties>
<java.version>1.8</java.version>
<mybatis.version>3.4.0</mybatis.version>
<mybatis.generator.version>1.3.2</mybatis.generator.version>
<mybatis.springboot.version>1.1.1</mybatis.springboot.version>
</properties>
<dependencies>
<!--springboot对web项目的支持-->
<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>${mybatis.springboot.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<!--SpringBoot整合Maven的依赖-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!--Maven的逆向工程插件-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>${mybatis.generator.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
2.resources目录下配置SpringBoot的配置文件和逆向工程插件mybatis-generator的配置文件,主要如下:
[application.yml]
spring:
application:
name: mybatis-spring-demo-tot
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/glodon_test
username: root
password: root
[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">
<generatorConfiguration>
<!--导入所需的jar,我们的jar都在Module的路径下,这一句可以省去
<classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />
-->
<!--这里的targetRuntime是指定生成SQL映射文件的类型:
MyBatis3:可以生成动态增删改查的映射文件;
MyBatis3Simple:可以生成简单带有增删改查的Mapper的SQL标签
其他值看文档
-->
<context id="DB2Tables" targetRuntime="MyBatis3Simple">
<!--jdbcConnection指定如何连到数据库,就是配置数据库连接-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/glodon_test"
userId="root"
password="root">
</jdbcConnection>
<!--Java类型解析器,一般使用默认-->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--指定JavaBean的生成策略
targetPackage:指定生成JavaBean的目标包名
targetProject:指定目标工程
-->
<javaModelGenerator targetPackage="com.glodon.tot.models" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--SQL映射文件的生成策略,即mapper文件
targetPackage:目标包,不需要手动创建
targetProject:目标工程
targetPackage包名必须和下面javaClientGenerator标签中targetPackage一致
-->
<sqlMapGenerator targetPackage="com.glodon.tot.mappers" targetProject="src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!--指定接口生成策略,即Dao层-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.glodon.tot.mappers" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--指定逆向分析哪些表,创建JavaBean
domainObjectName:指定对应表的JavaBean的类名
-->
<table tableName="books" domainObjectName="Books"></table>
<table tableName="buser" domainObjectName="Buser"></table>
<table tableName="bookrecords" domainObjectName="BookRecords"></table>
</context>
</generatorConfiguration>
上面是我之前的基本配置(如果mybatis的maven插件报红重启IDEA即可),然后通过侧边菜单栏Maven Projects中Plugins中的mybatis-generator插件运行即可生成数据库中表的mapper接口和接口对应的映射文件和javaBean对象,的下面有一个差不多的配置文件,也可参照:
[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">
<generatorConfiguration>
<context id="DB2Tables" defaultModelType="flat" targetRuntime="MyBatis3Simple">
<commentGenerator>
<!-- 抑制警告 -->
<property name="suppressTypeWarnings" value="true"/>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="false"/>
<property name="javaFileEncoding" value="UTF-8"/>
</commentGenerator>
<!--数据库链接地址账号密码-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://10.1.83.41:3306/demo?useUnicode=true&characterEncoding=utf8"
userId="root" password="root">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model类存放位置-->
<javaModelGenerator targetPackage="com.glodon.demo.mybatis.models" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
<!--<property name="constructorBased" value="true"/>-->
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="com.glodon.demo.mybatis.mappers" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成Dao类存放位置-->
<!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.glodon.demo.mybatis.mappers" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table tableName="user" domainObjectName="User"
enableCountByExample="true"
enableUpdateByExample="true"
enableDeleteByExample="true"
enableSelectByExample="true"
selectByExampleQueryId="true">
<generatedKey column="id" sqlStatement="JDBC"/>
<columnOverride column="sex" javaType="com.glodon.demo.mybatis.models.Sex" />
</table>
</context>
</generatorConfiguration>
3.创建SpringBoot的入口类,该类会自动扫描它所在目录及子级目录,所以注意一下它的位置。
@SpringBootApplication
@MapperScan("com.glodon.tot.mappers") //指定mapper接口的扫描路径
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
4.利用maven插件生成对应的JavaBean和Mapper接口以及对应的mapper文件,在创建好数据的表后,直接在Maven Projects侧边菜单栏找到Plugins–>mybatis-generator–>mybatis-generator:generate运行即可生成。
5.根据业务需求进行开发,注解啥的都跟Spring和SpringMVC一样,但是Controller类上的注解由@Controller
变成了@RestController
,其他一样。