博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot+mybatis+druid+sqlite/mysql/oracle
阅读量:5298 次
发布时间:2019-06-14

本文共 6336 字,大约阅读时间需要 21 分钟。

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

 

1.版本

springboot2.1.6

jdk1.8

2.最简springboot环境

参考这个博客搭建

最新的初始化地址

3.pom(sqlite配置)

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

mybatis-spring-boot-starter

druid

sqlite-jdbc

  
    
org.springframework.boot
    
spring-boot-starter
  
  
    
org.springframework.boot
    
spring-boot-starter-test
    
test
  
  
    
org.mybatis.spring.boot
    
mybatis-spring-boot-starter
    
1.1.1
  
  
    
com.alibaba
    
druid
    
1.1.9
  
  
    
org.xerial
    
sqlite-jdbc
    
3.21.0.1
  

4.配置application.properties

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

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

官网配置

spring.datasource.driver-class-name=org.sqlite.JDBCspring.datasource.url=jdbc:sqlite:F:/epgis/program/gis-server/dataserver.pakspring.datasource.username=spring.datasource.password= spring.datasource.type=com.alibaba.druid.pool.DruidDataSource# 初始化大小,最小,最大spring.datasource.initialSize=1spring.datasource.minIdle=3spring.datasource.maxActive=20# 配置获取连接等待超时的时间spring.datasource.maxWait=60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒spring.datasource.timeBetweenEvictionRunsMillis=60000# 配置一个连接在池中最小生存的时间,单位是毫秒spring.datasource.minEvictableIdleTimeMillis=30000spring.datasource.validationQuery=select 'x'spring.datasource.testWhileIdle=truespring.datasource.testOnBorrow=falsespring.datasource.testOnReturn=false# 打开PSCache,并且指定每个连接上PSCache的大小spring.datasource.poolPreparedStatements=truespring.datasource.maxPoolPreparedStatementPerConnectionSize= 20# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙# sqlite不支持wall,使用sqlite请去掉spring.datasource.filters=stat,slf4j# 通过connectProperties属性来打开mergeSql功能;慢SQL记录spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000# 合并多个DruidDataSource的监控数据#useGlobalDataSourceStat=truemybatis.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;@Configurationpublic 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.4application.properties里加入xml文件扫描路径

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

xml对应位置:

 

7.3编写xml文件

7.4编写测试方法

8.替换sqlite为oracle或mysql

8.1pom

org.xerial
sqlite-jdbc
3.21.0.1
com.oracle
ojdbc6
11.2.0.2
mysql
mysql-connector-java
5.1.6

8.2application.properties文件

spring.datasource.driver-class-name=org.sqlite.JDBCspring.datasource.url=jdbc:sqlite:F:/epgis/program/gis-server/dataserver.pakspring.datasource.username=spring.datasource.password=
spring.datasource.driver-class-name=oracle.jdbc.OracleDriverspring.datasource.url = jdbc:oracle:thin:@127.0.0.1:1521:orclspring.datasource.username = testspring.datasource.password = test
spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://127.0.0.1:3306/mrbird?useUnicode=true&characterEncoding=utf8spring.datasource.username=testspring.datasource.password= test

转载于:https://www.cnblogs.com/SmilingEye/p/11180889.html

你可能感兴趣的文章
Pycharm安装Markdown插件
查看>>
【转】redo与undo
查看>>
C#更新程序设计
查看>>
解决升级系统导致的 curl: (48) An unknown option was passed in to libcurl
查看>>
Java Session 介绍;
查看>>
spoj TBATTLE 质因数分解+二分
查看>>
Django 模型层
查看>>
dedecms讲解-arc.listview.class.php分析,列表页展示
查看>>
Extjs6 经典版 combo下拉框数据的使用及动态传参
查看>>
【NodeJS】http-server.cmd
查看>>
研磨JavaScript系列(五):奇妙的对象
查看>>
面试题2
查看>>
selenium+java iframe定位
查看>>
P2P综述
查看>>
第五章 如何使用Burp Target
查看>>
Sprint阶段测试评分总结
查看>>
sqlite3经常使用命令&语法
查看>>
linux下编译openjdk8
查看>>
【python】--迭代器生成器装饰器
查看>>
Pow(x, n)
查看>>