1:添加依赖
1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 <parent> 6 <groupId>org.springframework.boot</groupId> 7 <artifactId>spring-boot-starter-parent</artifactId> 8 <version>2.1.5.RELEASE</version> 9 <relativePath/> <!-- lookup parent from repository --> 10 </parent> 11 <groupId>com.dev</groupId> 12 <artifactId>devloper-mine</artifactId> 13 <version>0.0.1-SNAPSHOT</version> 14 <name>devloper-mine</name> 15 <description>dev project for Spring Boot</description> 16 17 <properties> 18 <java.version>1.8</java.version> 19 20 <!-- MyBatis Generator --> 21 <!-- Java接口和实体类 --> 22 <targetJavaProject>${basedir}/src/main/java</targetJavaProject> 23 <targetMapperPackage>com.dev.mapper.repositry</targetMapperPackage> 24 <targetModelPackage>com.dev.model</targetModelPackage> 25 <!-- XML生成路径 --> 26 <targetResourcesProject>${basedir}/src/main/resources</targetResourcesProject> 27 <targetXMLPackage>mapper</targetXMLPackage> 28 29 <!-- 通用mapper --> 30 <tk.mybatis.version>4.1.5</tk.mybatis.version> 31 <persistence.version>1.0.2</persistence.version> 32 <mapper.plugin>tk.mybatis.mapper.generator.MapperPlugin</mapper.plugin> 33 <mapper.Mapper>tk.mybatis.mapper.common.Mapper</mapper.Mapper> 34 </properties> 35 36 <dependencies> 37 <dependency> 38 <groupId>org.springframework.boot</groupId> 39 <artifactId>spring-boot-starter-web</artifactId> 40 </dependency> 41 42 <dependency> 43 <groupId>org.springframework.boot</groupId> 44 <artifactId>spring-boot-starter-test</artifactId> 45 <scope>test</scope> 46 </dependency> 47 48 <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter --> 49 <!-- 通用 mapper --> 50 <dependency> 51 <groupId>tk.mybatis</groupId> 52 <artifactId>mapper</artifactId> 53 <version>${tk.mybatis.version}</version> 54 </dependency> 55 56 <!-- https://mvnrepository.com/artifact/javax.persistence/persistence-api --> 57 <!-- @entity 注解 --> 58 <dependency> 59 <groupId>javax.persistence</groupId> 60 <artifactId>persistence-api</artifactId> 61 <version>${persistence.version}</version> 62 </dependency> 63 64 <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter --> 65 <dependency> 66 <groupId>org.mybatis.spring.boot</groupId> 67 <artifactId>mybatis-spring-boot-starter</artifactId> 68 <version>2.0.1</version> 69 </dependency> 70 71 <!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter --> 72 <dependency> 73 <groupId>com.alibaba</groupId> 74 <artifactId>druid-spring-boot-starter</artifactId> 75 <version>1.1.17</version> 76 </dependency> 77 78 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> 79 <dependency> 80 <groupId>mysql</groupId> 81 <artifactId>mysql-connector-java</artifactId> 82 <version>8.0.16</version> 83 </dependency> 84 85 86 </dependencies> 87 88 <build> 89 <plugins> 90 <plugin> 91 <groupId>org.springframework.boot</groupId> 92 <artifactId>spring-boot-maven-plugin</artifactId> 93 </plugin> 94 95 <plugin> 96 <groupId>org.springframework.boot</groupId> 97 <artifactId>spring-boot-maven-plugin</artifactId> 98 <configuration> 99 <fork>true</fork> 100 </configuration> 101 </plugin> 102 103 <!--mybatis-generator插件--> 104 <plugin> 105 <!--Mybatis-generator插件,用于自动生成Mapper和POJO--> 106 <groupId>org.mybatis.generator</groupId> 107 <artifactId>mybatis-generator-maven-plugin</artifactId> 108 <version>1.3.7</version> 109 <configuration> 110 <!--配置文件的位置 一定要改成配置文件的位置--> 111 <configurationFile>src/main/resources/mybatis-generator/generator-config.xml</configurationFile> 112 <!-- 覆盖 --> 113 <verbose>true</verbose> 114 <!-- 重写 --> 115 <overwrite>true</overwrite> 116 </configuration> 117 118 <dependencies> 119 <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper --> 120 <dependency> 121 <groupId>tk.mybatis</groupId> 122 <artifactId>mapper</artifactId> 123 <version>${tk.mybatis.version}</version> 124 </dependency> 125 126 </dependencies> 127 128 </plugin> 129 </plugins> 130 </build> 131 132</project>
notice1:使用了 mybatis-generator+通用mapper 可以生成model、mapper、mapper.xml文件,但是若不加mybatis的依赖生成的文件会报错...
notice2:使用了mybatis就要配数据源否则会启动报错...
notice3:pom依赖中可以配置依赖版本号、mapper、model等的存放位置...
2:添加一个mybatis-generator需要用的db.properties文件(也可以不添加)
1jdbc.driver=com.mysql.cj.jdbc.Driver 2jdbc.url=jdbc:mysql://localhost:3306/dsos_zgq?&useUnicode=true&characterEncoding=utf-8 3jdbc.username=root 4jdbc.password=root 5 6#插件位置 7mapper.plugin=tk.mybatis.mapper.generator.MapperPlugin 8#生成的mapper类继承的父类的位置 9mapper.Mapper=com.dev.mapper.BaseMapper
如图:

3:添加generator-config.xml(要和pom文件中配置的路径一致)
1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE generatorConfiguration 3 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 4 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 5 6<generatorConfiguration> 7 <properties resource="mybatis-generator/db.properties"/> 8 9 <classPathEntry 10 location="D:\IntelljIdea\Maven3.5\localmaven\mysql\mysql-connector-java\8.0.16\mysql-connector-java-8.0.16.jar"/> 11 12 <!-- MyBatis3Simple 可以不生成生成model衍生的example文件 --> 13 <context id="DB2Tables" targetRuntime="MyBatis3Simple" defaultModelType="flat"> 14 <!-- TKmybatis配置 --> 15 <property name="javaFileEncoding" value="UTF-8"/> 16 <property name="beginningDelimiter" value="`"/> 17 <property name="endingDelimiter" value="`"/> 18 19 <plugin type="${mapper.plugin}"> 20 <property name="mappers" value="${mapper.Mapper}"/> 21 </plugin> 22 23 <commentGenerator> 24 <property name="suppressDate" value="true"/> 25 <!-- 是否去除自动生成的注释 true:是 : false:否 --> 26 <property name="suppressAllComments" value="true"/> 27 </commentGenerator> 28 29 <jdbcConnection driverClass="${jdbc.driver}" 30 connectionURL="${jdbc.url}" 31 userId="${jdbc.username}" 32 password="${jdbc.password}"> 33 34 <!-- mysql 驱动8.x版本需要设置时区 value设置为GMT、UTC都可以 --> 35 <property name="serverTimezone" value="GMT"/> 36 37 <!-- 解决生成其他数据库的表的model和mapper等 --> 38 <!-- 也可解决生成的model里面缺少@Id注解问题(此问题mysql驱动版本回退到5.1也可以解决)--> 39 <property name="nullCatalogMeansCurrent" value="true"/> 40 </jdbcConnection> 41 42 <javaTypeResolver> 43 <property name="forceBigDecimals" value="false"/> 44 </javaTypeResolver> 45 46 <javaModelGenerator targetPackage="${targetModelPackage}" targetProject="${targetJavaProject}"/> 47 48 <sqlMapGenerator targetPackage="${targetXMLPackage}" targetProject="${targetResourcesProject}"/> 49 <javaClientGenerator targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}" 50 type="XMLMAPPER"/> 51 52 <!--tableName 代表表名 domainObjectName代表实体名 schema指数据库结构--> <!-- 要保证表aopi存在哦~,使用%则可生成当前数据下所有表对应的model、mapper等文件 --> 53 <table tableName="aopi"> 54 <generatedKey column="id" sqlStatement="Mysql" identity="true"/> 55 </table> 56 57 </context> 58</generatorConfiguration>
4:编写一个通用mapper的接口BaseMapper
1package com.dev.mapper; 2 3import tk.mybatis.mapper.common.IdsMapper; 4import tk.mybatis.mapper.common.Mapper; 5import tk.mybatis.mapper.common.MySqlMapper; 6 7/** 8 * Created by zgq7 on 2019/6/24. 9 * 让生成的mapper文件都集成该接口 10 */ 11public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T>, IdsMapper<T> { 12 13}
notice1:类路径要与db.properties中定义的一样,不然会报错...
**5:application.xml的配置
**
1server.port=8022 2server.servlet.context-path=/ 3#druid数据源 4spring.datasource.type=com.alibaba.druid.pool.DruidDataSource 5spring.datasource.druid.url=jdbc:mysql://localhost:3306/dsos_zgq?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8 6spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver 7spring.datasource.druid.username=root 8spring.datasource.druid.password=root 9#druid连接配置 10spring.datasource.druid.db-type=mysql 11#druid测试 12spring.datasource.druid.test-on-borrow=true 13#打印sql(两种都可以,但是我偏向后者了) 14#mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 15logging.level.com.dev.mapper.repositry=debug
在此处我思索了一下druid的配置,我这里只是做简单配置而已,而且不止这一种配置方法,还有其他的配置方法,但是这种明显更方便更快捷。
后面我会更新druid的相关配置其他写法,多多研究一下。
6:运行mybatis-generator的插件,生成相关文件。

生成的文件结构如下:

7:进行单元测试看看是否能正常运行嘿嘿~~

notice1:可以看到sql日志也打出来了
notice2:单元测试也成功了,大功完成啦啦啦。。。。
总结:学习新的知识,了解新的用法,才能收获更多。
附mybatis官网地址关于xml配置的详情介绍:http://www.mybatis.org/generator/configreference/table.html