spring boot配置MySQL数据库连接、Hikari连接池和Mybatis的简单配置方法

所属分类: 软件编程 / java 阅读数: 16
收藏 0 赞 0 分享

此方法为极简配置,支持MySQL数据库多库连接、支持Hikari连接池、支持MyBatis(包括Dao类和xml文件位置的配置)。

1、pom.xml中引入依赖:

<!-- 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就会寻找是否有HikariCP可用,第二个依赖就被找到了,然后mysql-connector也有了。

2、application.yml中的相关配置:

spring: 
 profiles: 
 active: dev 
 datasource: 
 driver-class-name: com.mysql.jdbc.Driver 
 username: root 
 password: 123456 
 hikari: 
  maxLifetime: 1765000 #一个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟,建议设置比数据库超时时长少30秒以上 
  maximumPoolSize: 15 #连接池中允许的最大连接数。缺省值:10;推荐的公式:((core_count * 2) + effective_spindle_count) 
mybatis: 
 mapperLocations: classpath:mapper/*.xml 
--- 
# 开发环境配置 
spring: 
 profiles: dev 
 datasource: 
 url: jdbc:mysql://localhost:3306/ 
--- 
# 测试环境配置 
spring: 
 profiles: test 
 datasource: 
 url: jdbc:mysql://192.168.0.12:3306/ 
--- 
# 生产环境配置 
spring: 
 profiles: prod 
 datasource: 
 url: jdbc:mysql://192.168.0.13:3306/ 

其中,datasource.url最后面不跟dbName,这样就可以支持多个db的情况,使用的时候只需要在sql语句的table名前面里面指定db名字就行了。

3、Dao接口代码:

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语句。

4、XML文件:

在resources目录下创建mapper目录,然后创建xml文件如下:

<?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"> 
 <!-- 插入数据库用户表 --> 
 <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、测试:

@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("八")); 
} 

以上所述是小编给大家介绍的spring boot配置MySQL数据库连接、Hikari连接池和Mybatis的简单配置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

更多精彩内容其他人还在看

Java数据类型的规则

这篇文章主要介绍了Java数据类型的规则的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Spring整合TimerTask实现定时任务调度

这篇文章主要介绍了Spring整合TimerTask实现定时任务调度的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解SpringMVC使用MultipartFile实现文件的上传

本篇文章主要介绍了SpringMVC使用MultipartFile实现文件的上传,本地的文件上传到资源服务器上,比较好的办法就是通过ftp上传。这里是结合SpringMVC+ftp的形式上传的,有兴趣的可以了解一下。
收藏 0 赞 0 分享

SpringMVC上传文件的三种实现方式

本篇文章主要介绍了SpringMVC上传文件的三种实现方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例

本篇文章主要介绍了微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
收藏 0 赞 0 分享

浅析Java中的继承与组合

本文将介绍组合和继承的概念及区别,并从多方面分析在写代码时如何进行选择。文中通过示例代码介绍的很详细,有需要的朋友可以参考借鉴,下面来一起看看吧。
收藏 0 赞 0 分享

利用反射获取Java类中的静态变量名及变量值的简单实例

下面小编就为大家带来一篇利用反射获取Java类中的静态变量名及变量值的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

java启动线程的3种方式对比分析

这篇文章主要为大家对比分析了java启动线程的3种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

SpringMVC上传和解析Excel方法

这篇文章主要介绍了SpringMVC上传和解析Excel方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

JAVA中String类与StringBuffer类的区别

这篇文章主要为大家详细介绍了JAVA中String类与StringBuffer类的区别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多