Druid介绍及配置说明

  1. Druid简介

    Druid是阿里开源的数据库连接池,作为后起之秀,性能比dbcp、c3p0更高,使用也越来越广泛。

    当然Druid不仅仅是一个连接池,还有很多其他的功能。

  2. 配置(引用:https://www.cnblogs.com/wuyun-blog/p/5679073.html

  3. MERP系统关于连接池的配置

  4. # 数据库连接
    jdbc: 
    
    #  # Oracle 数据库配置
      type: oracle
      driver: oracle.jdbc.driver.OracleDriver
      url: jdbc:oracle:thin:@192.168.8.10:1521/merp
      username: merp
      password: ********
      testSql: SELECT 1 FROM DUAL
    
    #  # 数据库连接池配置
      pool:
    #  
    #    # 初始化连接数
        init: 10
    #    # 最小连接数
        minIdle: 20
    #    # 最大连接数
        maxActive: 1000  # 数据库连接池配置
    #
    #    # 获取连接等待超时时间,单位毫秒(1分钟)(4.0.6+)
        maxWait: 60000
    #    
    #    # 从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个(4.0.6+)
    #    testOnBorrow: false
    #    testOnReturn: false
    #    
    #    # 间隔多久才进行一次检测,检测需要关闭的空闲连接,单位毫秒(10s)(4.0.6+)
        timeBetweenEvictionRunsMillis: 10000
    #    
    #    # 一个连接在池中最小空闲的时间,单位毫秒(20分钟)(4.0.6+)
    #    minEvictableIdleTimeMillis: 1200000
    #    # 一个连接在池中最大空闲的时间,单位毫秒(60分钟)(4.1.2+)
        maxEvictableIdleTimeMillis: 3600000
    #    
    #    # 是否自动回收泄露的连接和超时时间,单位秒(60分钟)(4.0.6+)
        removeAbandoned: true
        removeAbandonedTimeout: 3600
    #
    #    # Oracle 下会自动开启 PSCache,并指定每个连接上 PSCache 大小。若不指定,则与 maxActive 相同(4.1.5+)
    #    maxPoolPreparedStatementPerConnectionSize: ~
  5. 引入依赖:

    <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.8</version>
            </dependency>

            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.19</version>
            </dependency>

    代码中使用:

    //数据源配置
            DruidDataSource dataSource = new DruidDataSource();
            dataSource.setUrl("jdbc:mysql://127.0.0.1/db_student?serverTimezone=UTC");
            dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); //这个可以缺省的,会根据url自动识别
            dataSource.setUsername("root");
            dataSource.setPassword("abcd");
            
            //下面都是可选的配置
            dataSource.setInitialSize(10);  //初始连接数,默认0
            dataSource.setMaxActive(30);  //最大连接数,默认8
            dataSource.setMinIdle(10);  //最小闲置数
            dataSource.setMaxWait(2000);  //获取连接的最大等待时间,单位毫秒
            dataSource.setPoolPreparedStatements(true); //缓存PreparedStatement,默认false
            dataSource.setMaxOpenPreparedStatements(20); //缓存PreparedStatement的最大数量,默认-1(不缓存)。大于0时会自动开启缓存PreparedStatement,所以可以省略上一句代码

            //获取连接
            Connection connection = dataSource.getConnection();

            //Statement接口
            Statement statement = connection.createStatement();
            String sql1 = "insert into tb_student (name,age) values ('chy',20)";
            statement.executeUpdate(sql1);

            //PreparedStatement接口
            String sql2 = "insert into tb_student (name,age) values ('chy',21)";
            PreparedStatement preparedStatement = connection.prepareStatement(sql2);
            preparedStatement.execute();

            //关闭连接
            connection.close();

    参考文件

  6.  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值