安装mysql
安装mysql,在mysql8.0中有强密码和原始密码两种安装选择,此处选择的是原始密码(强密码访问失败了- -)
build.gradle配置
引入依赖
// MySQL支持
implementation 'mysql:mysql-connector-java'
// Mybatis支持
implementation "org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2"
// Mybatis TK支持
implementation 'tk.mybatis:mapper-spring-boot-starter:2.1.2'
// MyBatis Generator支持
mybatisGenerator 'org.mybatis.generator:mybatis-generator-core:1.3.5'
mybatisGenerator 'mysql:mysql-connector-java'
mybatisGenerator 'tk.mybatis:mapper:3.4.0'
编写mybatisGenerate配置
configurations {
mybatisGenerator
}
// Mybatis Generator配置,注意配置文件固定为 application-dev.properties
task mybatisGenerate {
doLast {
def prop = new Properties()
file("src/main/resources/application-dev.properties").withInputStream { prop.load(it) }
println prop.getProperty("spring.application.name")
ant.properties['targetProject'] = projectDir.path
ant.properties['driverClass'] = prop.getProperty('spring.datasource.driver-class-name')
ant.properties['connectionURL'] = prop.getProperty('spring.datasource.url')
ant.properties['userId'] = prop.getProperty('spring.datasource.username')
ant.properties['password'] = prop.getProperty('spring.datasource.password')
ant.properties['catalogName'] = prop.getProperty('spring.datasource.catalog')
ant.properties['src_main_java'] = sourceSets.main.java.srcDirs[0].path
ant.properties['src_main_resources'] = sourceSets.main.resources.srcDirs[0].path
ant.properties['modelPackage'] = prop.getProperty('modelPackage')
ant.properties['mapperPackage'] = prop.getProperty('mapperPackage')
ant.properties['sqlMapperPackage'] = prop.getProperty('sqlMapperPackage')
ant.taskdef(
name: 'mbgenerator',
classname: 'org.mybatis.generator.ant.GeneratorAntTask',
classpath: configurations.mybatisGenerator.asPath
)
ant.mbgenerator(overwrite: true,
configfile: 'db/generatorConfig.xml', verbose: true) {
propertyset {
propertyref(name: 'targetProject')
propertyref(name: 'userId')
propertyref(name: 'driverClass')
propertyref(name: 'connectionURL')
propertyref(name: 'password')
propertyref(name: 'catalogName')
propertyref(name: 'src_main_java')
propertyref(name: 'src_main_resources')
propertyref(name: 'modelPackage')
propertyref(name: 'mapperPackage')
propertyref(name: 'sqlMapperPackage')
}
}
}
}
根据build.gradle中的配置,编写项目配置文件及创建文件夹
mysql
# mysql
spring.datasource.url=jdbc:mysql://localhost:3306/practice?characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false
spring.datasource.username=root
spring.datasource.password=12345678
spring.datasource.catalog=practice
mybatis
# mybatis
mybatis.type-aliases-package=com.kieran.practice.model
# 对象关系映射文件
mybatis.mapper-locations=classpath:mybatis_mapper/*.xml
mybatis Generator
# mybatis Generator
# model存放位置
modelPackage=com.kieran.practice.model
# mapper存放位置
mapperPackage=com.kieran.practice.mapper
# 对象关系映射文件存放位置
sqlMapperPackage=mybatis_mapper
创建对应的文件夹
`
v_1_m_user.sql
create table m_user(
id int(9) primary key auto_increment not null comment '主键ID',
nick_name varchar(50) not null comment '昵称',
age int(2) not null comment '年龄'
) ENGINE = InnoDB COMMENT '用户表' charset = utf8mb4;
generateConfig.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="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<property name="javaFileEncoding" value="UTF-8"/>
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<!-- caseSensitive默认false,当数据库表名区分大小写时,可以将该属性设置为true -->
<property name="caseSensitive" value="true"/>
</plugin>
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<jdbcConnection driverClass="${driverClass}"
connectionURL="${connectionURL}"
userId="${userId}"
password="${password}">
</jdbcConnection>
<javaModelGenerator targetPackage="${modelPackage}" targetProject="${src_main_java}"/>
<sqlMapGenerator targetPackage="${sqlMapperPackage}" targetProject="${src_main_resources}"/>
<javaClientGenerator targetPackage="${mapperPackage}" targetProject="${src_main_java}" type="XMLMAPPER" />
<!-- 用户表 -->
<table catalog="${catalogName}" tableName="m_user" mapperName="UserMapper" domainObjectName="User">
<generatedKey column="id" sqlStatement="Mysql" identity="true"/>
</table>
</context>
</generatorConfiguration>
在启动类上加上@MapperScan
配置完成,执行自动生成mysql映射文件的命令
- 切换到对应的module下
- 执行 gradle mybatisGenerate
- 如果gradle的版本不匹配,可以使用./gradlew mybatisGenerate,但是需要下载gradle wrapper的zip包