此方法為極簡(jiǎn)配置,支持MySQL數(shù)據(jù)庫(kù)多庫(kù)連接、支持Hikari連接池、支持MyBatis(包括Dao類和xml文件位置的配置)。
1、pom.xml中引入依賴:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<!-- Begin of DB related --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version> 1.1 . 1 </version> <exclusions> <exclusion> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- End of DB related --> |
我們使用了mybatis-spring-boot-starter
,并讓它把tomcat-jdbc連接池排除掉,這樣spring-boot就會(huì)尋找是否有HikariCP可用,第二個(gè)依賴就被找到了,然后mysql-connector也有了。
2、application.yml中的相關(guān)配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
spring: profiles: active: dev datasource: driver- class -name: com.mysql.jdbc.Driver username: root password: 123456 hikari: maxLifetime: 1765000 #一個(gè)連接的生命時(shí)長(zhǎng)(毫秒),超時(shí)而且沒(méi)被使用則被釋放(retired),缺省: 30 分鐘,建議設(shè)置比數(shù)據(jù)庫(kù)超時(shí)時(shí)長(zhǎng)少 30 秒以上 maximumPoolSize: 15 #連接池中允許的最大連接數(shù)。缺省值: 10 ;推薦的公式:((core_count * 2 ) + effective_spindle_count) mybatis: mapperLocations: classpath:mapper/*.xml --- # 開發(fā)環(huán)境配置 spring: profiles: dev datasource: url: jdbc:mysql: //localhost:3306/ --- # 測(cè)試環(huán)境配置 spring: profiles: test datasource: url: jdbc:mysql: //192.168.0.12:3306/ --- # 生產(chǎn)環(huán)境配置 spring: profiles: prod datasource: url: jdbc:mysql: //192.168.0.13:3306/ |
其中,datasource.url最后面不跟dbName,這樣就可以支持多個(gè)db的情況,使用的時(shí)候只需要在sql語(yǔ)句的table名前面里面指定db名字就行了。
3、Dao接口代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package com.xjj.dao; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import com.xjj.entity.Person; @Mapper public interface PersonDAO { @Select ( "SELECT id, first_name AS firstName, last_name AS lastName, birth_date AS birthDate, sex, phone_no AS phoneNo" + " FROM test.t_person WHERE id=#{0};" ) public Person getPersonById( int id); public int insertPerson(Person person); public int updatePersonById(Person person); public int updatePersonByPhoneNo(Person person); } |
只需要用@Mapper注解,就可以支持被Mybatis找到,并支持在方法上面寫SQL語(yǔ)句。
4、XML文件:
在resources目錄下創(chuàng)建mapper目錄,然后創(chuàng)建xml文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?xml version= "1.0" encoding= "UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace= "com.xjj.dao.PersonDAO" > <!-- 插入數(shù)據(jù)庫(kù)用戶表 --> <insert id= "insertPerson" > INSERT INTO test.t_person(first_name,last_name,birth_date,sex,phone_no,update_dt) VALUES(#{firstName},#{lastName},#{birthDate},#{sex},#{phoneNo},NOW()) </insert> <update id= "updatePersonById" > UPDATE test.t_person SET first_name=#{firstName}, last_name=#{lastName}, birth_date=#{birthDate}, sex=#{sex}, phone_no=#{phoneNo} WHERE id=#{id} </update> <update id= "updatePersonByPhoneNo" > UPDATE test.t_person SET first_name=#{firstName}, last_name=#{lastName}, birth_date=#{birthDate}, sex=#{sex} WHERE phone_no=#{phoneNo} </update> </mapper> |
5、測(cè)試:
1
2
3
4
5
6
7
8
9
10
|
@Test public void dbTest() throws JsonProcessingException{ Person person2 = personDAO.getPersonById( 2 ); logger.info( "person no 2 is: {}" , objectMapper.writeValueAsString(person2)); person2.setFirstName( "八" ); personDAO.updatePersonById(person2); person2 = personDAO.getPersonById( 2 ); logger.info( "person no 2 after update is: {}" , objectMapper.writeValueAsString(person2)); assertThat(person2.getFirstName(), equalTo( "八" )); } |
總結(jié)
以上所述是小編給大家介紹的spring boot配置MySQL數(shù)據(jù)庫(kù)連接、Hikari連接池和Mybatis的簡(jiǎn)單配置方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!
原文鏈接:http://blog.csdn.net/ClementAD/article/details/52944505