springboot2.X整合mybatis


github地址:https://github.com/BenchChen/springboot

1) 創建springboot-maven項目,並修改pom文件

 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 
 6     <groupId>com.cx</groupId>
 7     <artifactId>180723_mybatisdome</artifactId>
 8     <version>0.0.1-SNAPSHOT</version>
 9     <packaging>jar</packaging>
10 
11     <name>180723_mybatisdome</name>
12     <description>Demo project for Spring Boot</description>
13 
14     <parent>
15         <groupId>org.springframework.boot</groupId>
16         <artifactId>spring-boot-starter-parent</artifactId>
17         <version>2.0.3.RELEASE</version>
18         <relativePath/> <!-- lookup parent from repository -->
19     </parent>
20 
21     <properties>
22         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
23         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
24         <java.version>1.8</java.version>
25     </properties>
26 
27     <dependencies>
28         <dependency>
29             <groupId>org.springframework.boot</groupId>
30             <artifactId>spring-boot-starter-web</artifactId>
31         </dependency>
32         <dependency>
33             <groupId>org.mybatis.spring.boot</groupId>
34             <artifactId>mybatis-spring-boot-starter</artifactId>
35             <version>1.3.2</version>
36         </dependency>
37     <!-- alibaba的druid數據庫連接池 -->
38         <dependency>
39             <groupId>com.alibaba</groupId>
40             <artifactId>druid-spring-boot-starter</artifactId>
41             <version>1.1.9</version>
42         </dependency>
43         <dependency>
44             <groupId>mysql</groupId>
45             <artifactId>mysql-connector-java</artifactId>
46             <scope>runtime</scope>
47         </dependency>
48         <dependency>
49             <groupId>org.springframework.boot</groupId>
50             <artifactId>spring-boot-starter-test</artifactId>
51             <scope>test</scope>
52         </dependency>
53     </dependencies>
54 
55     <build>
56         <plugins>
57             <plugin>
58                 <groupId>org.springframework.boot</groupId>
59                 <artifactId>spring-boot-maven-plugin</artifactId>
60             </plugin>
61              <!-- Mybatis-Generator插件,自動生成代碼 -->
62             <plugin>
63                 <groupId>org.mybatis.generator</groupId>
64                 <artifactId>mybatis-generator-maven-plugin</artifactId>
65                 <version>1.3.5</version>
66                 <configuration>
67                     <configurationFile>${project.basedir}/src/main/resources/generatorConfig.xml</configurationFile>
68                     <verbose>true</verbose>
69                     <overwrite>true</overwrite>
70                 </configuration>
71             </plugin>
72         </plugins>
73     </build>
74 
75 
76 </project>

2 ) 在 src/main/resources 目錄下新建配置文件 datasource.properties保存連接數據庫的信息 , 為generator 准備

 1 ## mysql驅動包的本地路徑,這個jar包的版本要和pom.xml里配置的版本一致
 2 db.driverLocation=E:\\mavenKu\\repository\\mysql\\mysql-connector-java\\5.1.46\\mysql-connector-java-5.1.46.jar
 3 ## 驅動類的包名
 4 db.driverClassName=com.mysql.jdbc.Driver
 5 ## // 連接數據庫的url
 6 db.url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf-8
 7 ## 用戶名
 8 db.username=root
 9 ## 密碼
10 db.password=root

3 ) 在 src/main/resources 目錄下新建配置文件 generatorConfig.xml  , generator 配置信息

 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     <!--導入屬性配置文件-->
 8     <properties resource="datasource.properties"/>
 9 
10     <!--指定特定數據庫的jdbc驅動jar包的位置-->
11     <classPathEntry location="${db.driverLocation}"/>
12 
13     <!-- 選擇運行的mybatis版本 -->
14     <context id="default" targetRuntime="MyBatis3">
15 
16         <!-- optional,旨在創建class時,對注釋進行控制 -->
17         <commentGenerator>
18             <property name="suppressDate" value="true"/>
19             <property name="suppressAllComments" value="true"/>
20         </commentGenerator>
21 
22         <!--jdbc的數據庫連接 -->
23         <jdbcConnection
24                 driverClass="${db.driverClassName}"
25                 connectionURL="${db.url}"
26                 userId="${db.username}"
27                 password="${db.password}">
28         </jdbcConnection>
29 
30         <!-- 非必需,類型處理器,在數據庫類型和java類型之間的轉換控制-->
31         <javaTypeResolver>
32             <property name="forceBigDecimals" value="false"/>
33         </javaTypeResolver>
34 
35         <!-- Model模型生成器,用來生成含有主鍵key的類,記錄類 以及查詢Example類
36             targetPackage     指定生成的model生成所在的包名
37             targetProject     指定在該項目下所在的路徑
38         -->
39         <javaModelGenerator targetPackage="com.cx.user.model" targetProject="./src/main/java">
40             <!-- 是否允許子包,即targetPackage.schemaName.tableName -->
41             <property name="enableSubPackages" value="false"/>
42             <!-- 是否對model添加 構造函數 -->
43             <property name="constructorBased" value="true"/>
44             <!-- 是否對類CHAR類型的列的數據進行trim操作 -->
45             <property name="trimStrings" value="true"/>
46             <!-- 建立的Model對象是否不可改變  即生成的Model對象不會有 setter方法,只有構造方法 -->
47             <property name="immutable" value="false"/>
48         </javaModelGenerator>
49 
50         <!--mapper xml映射文件生成所在的目錄 為每一個數據庫的表生成對應的SqlMap文件 -->
51         <sqlMapGenerator targetPackage="mappers" targetProject="./src/main/resources">
52             <property name="enableSubPackages" value="false"/>
53         </sqlMapGenerator>
54 
55         <!-- 客戶端代碼,生成易於使用的針對Model對象和XML配置文件 的代碼
56                 type="ANNOTATEDMAPPER",生成Java Model 和基於注解的Mapper對象
57                 type="MIXEDMAPPER",生成基於注解的Java Model 和相應的Mapper對象
58                 type="XMLMAPPER",生成SQLMap XML文件和獨立的Mapper接口
59         -->
60 
61         <!-- targetPackage:dao層mapper接口生成的位置 -->
62         <javaClientGenerator type="XMLMAPPER" targetPackage="com.cx.user.dao" targetProject="./src/main/java">
63             <!-- enableSubPackages:是否讓schema作為包的后綴 -->
64             <property name="enableSubPackages" value="false" />
65         </javaClientGenerator>
66 
67         <!-- 配置表格映射 -->
68         <table tableName="t_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>
69     </context>
70 </generatorConfiguration>

4 ) 修改 application.yml  ,  配置數據池

 1 server:
 2   port: 8080
 3 
 4 spring:
 5     datasource:
 6         name: mybatis_test
 7         #使用druid連接池
 8         type: com.alibaba.druid.pool.DruidDataSource
 9         #druid相關配置
10         druid:
11           #監控統計攔截的filters
12           filters: stat
13           driver-class-name: com.mysql.jdbc.Driver
14           #配置基本屬性
15           url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
16           username: root
17           password: root
18           #配置初始化大小/最小/最大
19           initial-size: 1
20           min-idle: 1
21           max-active: 20
22           #獲取連接等待超時時間
23           max-wait: 60000
24           #間隔多久進行一次檢測,檢測需要關閉的空閑連接
25           time-between-eviction-runs-millis: 60000
26           #一個連接在池中最小生存的時間
27           min-evictable-idle-time-millis: 300000
28           validation-query: SELECT 'x'
29           test-while-idle: true
30           test-on-borrow: false
31           test-on-return: false
32           #打開PSCache,並指定每個連接上PSCache的大小。oracle設為true,mysql設為false。分庫分表較多推薦設置為false
33           pool-prepared-statements: false
34           max-pool-prepared-statement-per-connection-size: 20
35 
36 mybatis:
37   # 映射文件所在路徑
38   mapper-locations: classpath:mappers/*.xml
39   # pojo類所在包路徑
40   type-aliases-package: com.cx.user.model

5 )  在 pom.xml 文件上右鍵 Run As >> Maven builed  在彈出的窗口 Goals 處輸入  mybatis-generator:generate  然后Run 等待文件生成

  此時項目結構如下, 圖中紅圈位置是自己寫的 , 不會生成。

  PS:注意要在mapper接口上加上@Mapper注解不然運行會拋異常

 

 

 =====================================整合結束 , 測試沒毛病=====================================

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM