在网上学习SpringBoot+mybatis plus开放项目,网上资料采用yum和xml配置的方案较多,采用application.properties文件配置的方案较少。本着学习、记录态度,写下这篇文章,希望在记录自己学习的同时,能给他人提供帮助。
- 项目创建
在[SpringBoot创建网站]上创建项目,添加`Web`和`MySQL`依赖。
- 项目配置
通过以上步骤,创建好项目,通弄个IDEA(或eclipse)打开项目。
- 1. 配置`pom.xml`
添加`Mybatis plus`依赖,添加内容如下:
1 <dependency> 2 <groupId>com.baomidou</groupId> 3 <artifactId>mybatis-plus-boot-starter</artifactId> 4 <version>3.0.5</version> 5 </dependency>
配置完全的`pom.xml`文件内容如下
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>demo</groupId> 12 <artifactId>demo</artifactId> 13 <version>0.0.1-SNAPSHOT</version> 14 <name>demo</name> 15 <description>Demo project for Spring Boot</description> 16 17 <properties> 18 <java.version>1.8</java.version> 19 </properties> 20 21 <dependencies> 22 <dependency> 23 <groupId>org.springframework.boot</groupId> 24 <artifactId>spring-boot-starter-web</artifactId> 25 </dependency> 26 <dependency> 27 <groupId>org.springframework.boot</groupId> 28 <artifactId>spring-boot-starter</artifactId> 29 </dependency> 30 <dependency> 31 <groupId>mysql</groupId> 32 <artifactId>mysql-connector-java</artifactId> 33 <scope>runtime</scope> 34 </dependency> 35 <dependency> 36 <groupId>org.springframework.boot</groupId> 37 <artifactId>spring-boot-starter-test</artifactId> 38 <scope>test</scope> 39 </dependency> 40 <dependency> 41 <groupId>com.baomidou</groupId> 42 <artifactId>mybatis-plus-boot-starter</artifactId> 43 <version>3.0.5</version> 44 </dependency> 45 </dependencies> 46 <build> 47 <plugins> 48 <plugin> 49 <groupId>org.springframework.boot</groupId> 50 <artifactId>spring-boot-maven-plugin</artifactId> 51 </plugin> 52 </plugins> 53 </build> 54 </project>
- 2. 配置`application.properties`文件
配置文件中,根据自己的需求修改即可使用,每项配置的介绍和注意事项见注释
1 spring.datasource.url=jdbc:mysql://database ip:database port/database name?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC 2 spring.datasource.username=*** 3 spring.datasource.password=*** 4 5 # EMBEDDED SERVER CONFIGURATION (ServerProperties) 6 server.port=8080 7 server.address= localhost 8 9 # mybatis-plus 10 # mybatis-config.xml路径配置 11 mybatis-plus.config-location=classpath:mybatis-config.xml 12 # 项目Mapper.xml存放位置,classpath:*****,表示项目resources文件夹下,子文件创建时,需要手动一层一层创建 13 mybatis-plus.mapper-locations=classpath:com/example/demo/mapper/*Mapper.xml 14 # 项目Mapper接口存放位置 15 mybatis-plus.type-aliases-package=com.example.demo.dao 16 # 数据库类型设置 17 mybatis-plus.global-config.db-config.db-type=mysql 18 mybatis-plus.global-config.db-config.column-underline=true 19 mybatis-plus.global-config.db-config.logic-delete-value=true 20 mybatis-plus.global-config.db-config.logic-not-delete-value=false 21 ``` 22 - 配置`mybatis-config.xml`文件 23 此配置文件可以拿来直接使用,不做任何修改。当然,你也可以根据自己的需求做一定的修改。 24 ``` 25 <?xml version="1.0" encoding="UTF-8"?> 26 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN" 27 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 28 <!-- 29 | plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下: 30 | properties?, settings?, 31 | typeAliases?, typeHandlers?, 32 | objectFactory?,objectWrapperFactory?, 33 | plugins?, 34 | environments?, databaseIdProvider?, mappers? 35 |--> 36 <configuration> 37 <!-- 38 | 全局配置设置 39 | 40 | 可配置选项 默认值, 描述 41 | 42 | aggressiveLazyLoading true, 当设置为‘true’的时候,懒加载的对象可能被任何懒属性全部加载。否则,每个属性都按需加载。 43 | multipleResultSetsEnabled true, 允许和不允许单条语句返回多个数据集(取决于驱动需求) 44 | useColumnLabel true, 使用列标签代替列名称。不同的驱动器有不同的作法。参考一下驱动器文档,或者用这两个不同的选项进行测试一下。 45 | useGeneratedKeys false, 允许JDBC 生成主键。需要驱动器支持。如果设为了true,这个设置将强制使用被生成的主键,有一些驱动器不兼容不过仍然可以执行。 46 | autoMappingBehavior PARTIAL, 指定MyBatis 是否并且如何来自动映射数据表字段与对象的属性。PARTIAL将只自动映射简单的,没有嵌套的结果。FULL 将自动映射所有复杂的结果。 47 | defaultExecutorType SIMPLE, 配置和设定执行器,SIMPLE 执行器执行其它语句。REUSE 执行器可能重复使用prepared statements 语句,BATCH执行器可以重复执行语句和批量更新。 48 | defaultStatementTimeout null, 设置一个时限,以决定让驱动器等待数据库回应的多长时间为超时 49 | --> 50 <settings> 51 <!--<setting name="logImpl" value="LOG4J2"/>--> 52 <!-- 这个配置使全局的映射器启用或禁用缓存 --> 53 <setting name="cacheEnabled" value="true"/> 54 <setting name="mapUnderscoreToCamelCase" value="true"/> 55 <!-- 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载 --> 56 <setting name="lazyLoadingEnabled" value="true"/> 57 <setting name="multipleResultSetsEnabled" value="true"/> 58 <setting name="useColumnLabel" value="true"/> 59 <setting name="defaultExecutorType" value="REUSE"/> 60 <setting name="defaultStatementTimeout" value="25000"/> 61 <!--设置查询resultType为map时空字段允许查出来--> 62 <setting name="callSettersOnNulls" value="true"/> 63 </settings> 64 </configuration>
- - 项目整体结构
此项目的整体架构,见下图
项目架构由上向下,依次为:
- business存放service的实现类
- controller存放Controller类
- core存放核心类
- dao存放Mapper接口类
- exception存放异常配置和自定义异常类
- logger存放logger
- model存放实体bean的类
- service存放service接口类
- util存放自定义工具类
这就是一个简单的SpringBoot + Mybatis plus项目啦!
共勉!!!