搭建springboot+mybatis+druid+sqlite/mysql/oracle附带测试

1.版本

springboot2.1.6

jdk1.8

2.最简springboot环境

https://www.cnblogs.com/SmilingEye/p/11422536.html

3.pom(sqlite配置)

spring-boot-starter与spring-boot-starter-test

mybatis-spring-boot-starter

druid

sqlite-jdbc

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.1.</version>
  </dependency>
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.</version>
  </dependency>
  <dependency>
    <groupId>org.xerial</groupId>
    <artifactId>sqlite-jdbc</artifactId>
    <version>3.21.0.1</version>
  </dependency>
</dependencies>

4.配置application.properties

注意1:sqlite不支持spring.datasource.filters的wall,请去掉

注意2:spring.datasource.type=com.alibaba.druid.pool.DruidDataSource这一行以下的连接池的配置无法被druid加载,需要自己将配置设置到druid里,按照官网配置也不行。

官网配置https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

spring.datasource.driver-class-name=org.sqlite.JDBC
spring.datasource.url=jdbc:sqlite:F:/epgis/program/gis-server/dataserver.pak
spring.datasource.username=
spring.datasource.password= spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 初始化大小,最小,最大
spring.datasource.initialSize=
spring.datasource.minIdle=
spring.datasource.maxActive=
# 配置获取连接等待超时的时间
spring.datasource.maxWait=
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=
spring.datasource.validationQuery=select 'x'
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
# sqlite不支持wall,使用sqlite请去掉
spring.datasource.filters=stat,slf4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=
# 合并多个DruidDataSource的监控数据
#useGlobalDataSourceStat=true mybatis.mapper-locations=classpath:mybatis/*.xml

5.将application.properties配置设置到druid里

如果不做第5步,数据库连接池也可以正常使用,但是它是使用的默认配置,非application.properties配置。

注意1:@configurationProperties的prefix里的设置,spring.datasource代表application.properties里的spring.datasource下的值,将自动调用DruidDataSource相同名称的set方法。

import javax.sql.DataSource;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary; import com.alibaba.druid.pool.DruidDataSource; @Configuration
public class DruidConfiguration { private static final Logger logger = LoggerFactory.getLogger(DruidConfiguration.class); @Bean
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource1() {
return new DruidDataSource();
} /*@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}*/
}

6.编写测试类,验证数据库连接池设置成功

package com.epgis.gisserver;

import java.sql.Connection;
import java.sql.SQLException; import javax.sql.DataSource; import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import com.alibaba.druid.pool.DruidDataSource; @SpringBootTest
@RunWith(SpringRunner.class)
public class DataSouceTest { @Autowired
DataSource dataSource1; @Test
public void contextDuridLoads() throws SQLException {
Connection con = dataSource1.getConnection();
System.err.println("**************");
System.err.println(dataSource1);
DruidDataSource dss = (DruidDataSource)dataSource1;
System.err.println(dss.getName());
System.err.println(dss.getValidationQuery());
System.err.println(dss.getTimeBetweenEvictionRunsMillis());
System.err.println(dss.getMinEvictableIdleTimeMillis());
// 数据源例如:HikariDataSource(springboot2.x默认),DruidDataSource,dbcp2DataSource
System.err.println(dataSource1.getClass().getName());
// 连接例如org.sqlite.SQLiteConnection
System.err.println(con);
System.err.println("**************");
con.close();
}
}

检查1:dataSource1对象为DruidDataSource即为数据库连接池设置成功。

检查2:dss.getValidationQuery()的值为application.properties里spring.datasource.validationQuery的值"select 'x'",即为其他数据库连接池配置成功。

7.编写及配置mybatis

很多人对这一步骤很熟悉了,在此简写。

7.1在开始类上加入@MapperScan("com.epgis.gisserver.**.dao")

7.2编写dao接口

7.3application.properties里加入xml文件扫描路径

路径:mybatis.mapper-locations=classpath:mybatis/*.xml

xml对应位置:

7.4编写xml文件

7.5编写测试方法

8.替换sqlite为oracle或mysql

8.1pom

<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.21.0.1</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>

8.2application.properties文件

spring.datasource.driver-class-name=org.sqlite.JDBC
spring.datasource.url=jdbc:sqlite:F:/epgis/program/gis-server/dataserver.pak
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url = jdbc:oracle:thin:@127.0.0.1:1521:orcl
spring.datasource.username = test
spring.datasource.password = test
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mrbird?useUnicode=true&characterEncoding=utf8
spring.datasource.username=test
spring.datasource.password= test

springboot+mybatis+druid+sqlite/mysql/oracle的更多相关文章

  1. 3分钟搞定SpringBoot+Mybatis+druid多数据源和分布式事务

    文章来自: https://blog.csdn.net/qq_29242877/article/details/79033287 在一些复杂的应用开发中,一个应用可能会涉及到连接多个数据源,所谓多数据 ...

  2. 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建

    基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建 前言 最近做回后台开发,重新抓起以前学过的SSM(Spring+Sp ...

  3. springboot+mybatis+druid+atomikos框架搭建及测试

    前言 因为最近公司项目升级,需要将外网数据库的信息导入到内网数据库内.于是找了一些springboot多数据源的文章来看,同时也亲自动手实践.可是过程中也踩了不少的坑,主要原因是我看的文章大部分都是s ...

  4. SpringBoot+Mybatis+ Druid+PageHelper 实现多数据源并分页

    前言 本篇文章主要讲述的是SpringBoot整合Mybatis.Druid和PageHelper 并实现多数据源和分页.其中SpringBoot整合Mybatis这块,在之前的的一篇文章中已经讲述了 ...

  5. 记录一下自己搭建springboot+mybatis+druid 多数据源的过程

    前言  上次的一个项目(springboot+mybatis+vue),做到后面的时间发现需要用到多数据源.当时没有思路..后来直接用了jdbc来实现.这几天不是很忙,所以决定自己再搭建一次.不多说, ...

  6. springboot+mybatis+druid数据库连接池

    参考博客https://blog.csdn.net/liuxiao723846/article/details/80456025 1.先在pom.xml中引入druid依赖包 <!-- 连接池 ...

  7. Springboot+mybatis+druid 配置多数据源

    项目结构 application.yml配置文件 spring: application: name: service datasource: primary: jdbc-url: jdbc:orac ...

  8. springboot + mybatis +druid

    Druid Spring Boot Starter mybatis-spring-boot-autoconfigure mybatis-spring-boot-samples 新建spring boo ...

  9. SpringBoot+Mybatis+Druid批量更新 multi-statement not allow异常

      本文链接:https://blog.csdn.net/weixin_43947588/article/details/90109325 注:该文是本博主记录学习之用,没有太多详细的讲解,敬请谅解! ...

随机推荐

  1. 通俗化理解Spring3 IoC的原理和主要组件

      ♣什么是IoC? ♣通俗化理解IoC原理 ♣IoC好处 ♣工厂模式 ♣IoC的主要组件 ♣IoC的应用实例 ♣附:实例代码 1.什么是IoC(控制反转)? Spring3框架的核心是实现控制反转( ...

  2. C#projectPropertyGrid 显示结构(展开逗号分隔)

    [TypeConverter(typeof(ExpandableObjectConverter))] public A MyA { get{..} set{..} }

  3. Java Web 深入分析(2) DNS

    DNS :Domain Name System,域名系统 ,通俗的来说需要把我们日常见到的URL 网址信息解析成IP地址,例如 DNS域名解析过程 用户浏览器:用户在浏览器地址栏输入域名进行访问,浏览 ...

  4. python实现暴力破解

    import urllib2 import urllib import cookielib import threading import sys import Queue from HTMLPars ...

  5. 6.Java集合-LinkedList实现原理及源码分析

    Java中LinkedList的部分源码(本文针对1.7的源码) LinkedList的基本结构 jdk1.7之后,node节点取代了 entry ,带来的变化是,将1.6中的环形结构优化为了直线型链 ...

  6. docker搭建单机ELK

    yum -y install epel-release yum -y install python-pip // 更新pip pip install --upgrade pip // 安装docker ...

  7. CentOS7数据库架构之NFS+heartbeat+DRBD(亲测,详解)

    目录 参考文档 理论概述 DRBD 架构 NFS 架构部署 部署DRBD 部署heartbeat 部署NFS及配合heartbeat nfs切记要挂载到别的机器上不要为了省事,省机器 参考文档 htt ...

  8. 《浏览器工作原理与实践》<11>this:从JavaScript执行上下文的视角讲清楚this

    在上篇文章中,我们讲了词法作用域.作用域链以及闭包,接下来我们分析一下这段代码: var bar = { myName:"time.geekbang.com", printName ...

  9. 清除keil编译中间文件的脚本

    清除keil编译生成的中间文件,减小项目体积. keykill.bat del *.bak /s del *.ddk /s del *.edk /s del *.lst /s del *.lnp /s ...

  10. idou教你学Istio10 : 如何用Istio实现K8S Egress流量管理

    上一篇我们了解了如何控制入口流量,本文主要介绍在使用Istio时如何访问集群外服务,即对出口流量的管理. 默认安装的Istio是不能直接对集群外部服务进行访问的,如果需要将外部服务暴露给 Istio ...