• 第15章—数据库连接池(DBCP2)


    spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html

    码云源码地址:https://gitee.com/jinxiaohang/springboot

      

      DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。

      本次练习在之前整合Spring Data JPA基础上进行。

    一、引入依赖

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-dbcp2</artifactId>
    </dependency>
    View Code

    二、添加配置文件(application.properties)

    # 数据源配置
    spring.datasource.url=jdbc:mysql://localhost:3306/test
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.username=root
    spring.datasource.password=root
    #连接池配置
    spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource
    #初始化连接:连接池启动时创建的初始化连接数量
    spring.datasource.dbcp2.initial-size=50
    #最大活动连接:连接池在同一时间能够分配的最大活动连接的数量, 如果设置为非正数则表示不限制
    spring.datasource.dbcp2.max-active=250
    #最大空闲连接:连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,如果设置为负数表示不限制
    spring.datasource.dbcp2.max-idle=50
    #最小空闲连接:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为0则不创建
    spring.datasource.dbcp2.min-idle=5
    #最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常,如果设置为-1表示无限等待
    spring.datasource.dbcp2.max-wait-millis=10000
    #SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.如果指定,则查询必须是一个SQL SELECT并且必须返回至少一行记录
    spring.datasource.dbcp2.validation-query=SELECT 1
    #当建立新连接时被发送给JDBC驱动的连接参数,格式必须是 [propertyName=property;]。注意:参数user/password将被明确传递,所以不需要包括在这里。
    spring.datasource.dbcp2.connection-properties=characterEncoding=utf8
    
    # JPA配置
    spring.jpa.hibernate.ddl-auto=update
    #spring.jpa.show-sql用来设置hibernate操作的时候在控制台显示其真实的sql语句。
    spring.jpa.show-sql=true
    #让控制器输出的json字符串格式更美观。
    spring.jackson.serialization.indent-output=true
    View Code

    三、添加测试类

    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.context.ApplicationContext;
    import org.springframework.test.context.junit4.SpringRunner;
    
    import javax.sql.DataSource;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class DataSourceTest {
        @Autowired
        ApplicationContext applicationContext;
    
        @Autowired
        DataSourceProperties dataSourceProperties;
    
        @Test
        public void testDataSource() throws Exception {
            // 获取配置的数据源
            DataSource dataSource = applicationContext.getBean(DataSource.class);
            // 查看配置数据源信息
            System.out.println(dataSource);
            System.out.println(dataSource.getClass().getName());
            System.out.println(dataSourceProperties);
        }
    }
    View Code

    四、启动测试

    启动测试类:整合成功。

    启动demo,访问接口是否正常:数据正常显示,sql语句正常打印,整合成功。

  • 相关阅读:
    《海量数据库解决方式》读后感
    HDU-3533-Escape(BFS)
    (017)将一棵二叉查找树重构成链表(keep it up)
    hadoop招聘需求每天都在添加,短短半个月时间,需求量差点儿翻了一番,这是大数据要爆发的节奏么?
    关于Oracle安装完毕后,登录时遇到的错误的解决的方法
    C/C++产生随机数
    android手机SD卡中的android_secure目录
    【Unity Shaders】Lighting Models —— 衣服着色器
    ASM相关视图
    win2003的IIS無法使用,又一次安裝提示找不到iisadmin.mfl文件
  • 原文地址:https://www.cnblogs.com/jinxiaohang/p/8337816.html
Copyright © 2020-2023  润新知