1、在IDEA中新建Springboot项目
1.1、选择Spring Initializr:
1.2、配置项目信息:
1.3、选择依赖库,这里简单选择了Spring Web和MyBatis Framework
1.4、设置项目名称与位置
2、配置项目文件层次
3、配置MapperScan,springboot会扫描该文件夹下的mapper:
@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
4、在pom.xml中添加相关依赖库:
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.68</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
5、配置application.properties:
#服务器端口号
server.port=8080
#数据库用户名
spring.datasource.username=root
#数据库密码
spring.datasource.password=*****
#url
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&characterSetResults=utf-8&allowMultiQueries=true&useTimezone=true&serverTimezone=GMT%2B8
#mysql驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#mapper.xml文件位置
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
6、配置mybatis:
在resources文件目录下新建mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- 查询时,关闭关联对象即时加载以提高性能 -->
<setting name="lazyLoadingEnabled" value="true" />
<!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指 定),不会加载关联表的所有字段,以提高性能 -->
<setting name="aggressiveLazyLoading" value="false" />
<!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 -->
<setting name="multipleResultSetsEnabled" value="true" />
<!-- 允许使用列标签代替列名 -->
<setting name="useColumnLabel" value="true" />
<!-- 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 允许JDBC 生成主键。需要驱动器支持。如果设为了true,这个设置将强制使用被生成的主键,有一些驱动器不兼容不过仍然可以执行。
default:false -->
<setting name="useGeneratedKeys" value="false" />
<!-- 给予被嵌套的resultMap以字段-属性的映射支持 -->
<setting name="autoMappingBehavior" value="FULL" />
<!-- 对于批量更新操作缓存SQL以提高性能 -->
<!--使用batch无法返回自增主键-->
<setting name="defaultExecutorType" value="SIMPLE" />
<!-- 数据库超过25000秒仍未响应则超时 -->
<setting name="defaultStatementTimeout" value="25000" />
<!-- 使用log4j记录sql -->
<setting name="logImpl" value="slf4j" />
<!-- 开启mybatis缓存 -->
<setting name="cacheEnabled" value="false" />
<!--返回map value为空字段依然显示-->
<setting name="callSettersOnNulls" value="true"/>
</settings>
<typeAliases>
<typeAlias type="com.example.demo.util.PageData" alias="pageData"/>
</typeAliases>
<plugins>
<plugin interceptor="com.example.demo.plugin.PagePlugin">
<property name="dialect" value="mysql" />
<property name="pageSqlId" value=".*listPage.*" />
</plugin>
</plugins>
</configuration>
7、配置mybatis generator
7.1、添加依赖库和插件
<!--mybatis生成器-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.6</version>
</dependency>
<plugins>
<!--添加插件,支持组件化调用mybatis.generator-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<!-- 在控制台打印执行日志 -->
<verbose>true</verbose>
<!-- 重复生成时会覆盖之前的文件-->
<overwrite>true</overwrite>
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
</configuration>
<!-- 数据库连接选择8.0以上的,因为用的mysql8.0-->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
</dependencies>
</plugin>
</plugins>
7.2、引入mysql驱动jar包:
放在resrouces下:
7.3、配置mybatis generator:
在resources文件目录下新建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 >
<classPathEntry
location="D:\java_wrokspace\demo\src\main\resources\mysql-connector-java-5.1.25.jar" />
<context id="context1" targetRuntime="MyBatis3Simple" defaultModelType="flat" >
<!-- 去掉注释 -->
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.21.240:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone = GMT" userId="root" password="123456789" />
<javaModelGenerator targetPackage="com.example.demo.domain" targetProject=".\src\main\java" />
<sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources" />
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.example.demo.mapper" targetProject="src/main/java">
<!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 -->
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<table schema="test" tableName="user_member" domainObjectName="UserMember"
enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
</context>
</generatorConfiguration>
配置完成之后即可在Maven下找到这个插件,并且可以点击启动,使用:
即可自动生成相关的mapper.java、mapper.xml以及实体类对象了。