1. 程式人生 > >SpringBoot2.0整合Mybatis(簡單配置druid及pagehelper)

SpringBoot2.0整合Mybatis(簡單配置druid及pagehelper)

SpringBoot是目前比較火的一款web應用開發的解決方案,詳細的介紹可以瀏覽Spring boot官網https://spring.io/projects/spring-boot

總的來說,它是一款約定大於配置的框架,集成了歷來Spring的優秀產品,也可以和很多開源框架完美整合。

本人也是剛剛接觸Spring Boot,幾個月前使用Spring boot整合Mybatis完成了畢業設計的APP的後臺系統。現在重新再來學習Springboot並總結一些內容。

之前使用的Spring Boot版本是2.0.1,在整合Druid的時候需要寫配置類(這應該跟Druid的版本有關係,當時用的版本比較低),對於小白來說還是比較複雜的,而且

的版本剛出來,也沒有深入去了解版本的差異,只能查閱2.0的資料,但無奈踩坑的人還比較少,可以採納的資料也不多,只能自己摸索。

但本文搭建的Spring Boot是2.0.2版本,在整合druid的時候卻不需要再去寫配置類,直接在application.yml中寫好配置的引數即可。此外,IDE使用的是IDEA+maven下面是詳細的內容

1.建立新專案





輸入你專案的資訊,選擇以上的幾個框架或更多即可完成專案的建立

2.新增Jar包,在pom.xml中

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.wmj</groupId>
	<artifactId>blog</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>blog</name>
	<description>blog web app</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.2.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.2</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.4</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.datatype</groupId>
			<artifactId>jackson-datatype-joda</artifactId>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.module</groupId>
			<artifactId>jackson-module-parameter-names</artifactId>
		</dependency>
		<!-- 分頁外掛 -->
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<version>1.2.5</version>
		</dependency>
		<!-- alibaba的druid資料庫連線池 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.1.9</version>
		</dependency>

		<dependency>
			<groupId>org.apache.directory.studio</groupId>
			<artifactId>org.apache.commons.codec</artifactId>
			<version>1.8</version>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>


</project>

以上是詳細的pom.xml檔案

3.配置application.yml我這裡把application。properties改成了yml檔案

server:
  port: 8989
spring:
  datasource:
    name: mysql_blog
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      filters: stat
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=utf-8&useSSL=true
      username: root
      password: 1234
      initial-size: 1
      min-idle: 1
      max-active: 20
      max-wait: 60000
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 'x'
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      pool-prepared-statements: false
      max-pool-prepared-statement-per-connection-size: 20
  mvc:
    view:
      prefix: /
      suffix: .html
mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.wmj.blog.entity
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true
  params: count==countSql

注意上面的引數、路徑和檔名的不同,修改為自己的

應該不需要詳細的解釋,看關鍵字就可以明白大概的意思

4.新增dao包的路徑在啟動類中,框架可以找到你的dao


5.專案目錄結構


注意自己的包一定要和啟動類同一級

以上就是Spring Boot整合mybatis的基本搭建的內容,如有問題、建議、批評可以留言,本人小白一切皆可接收並去學習,歡迎大家指正,先謝過各位。

附:專案原始碼:https://github.com/WeiMJ1996/SpringBoot-Mybatis

關於pagehelper的使用裡面也有簡單的例子。