在網上學習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項目啦!
共勉!!!