侧边栏壁纸
博主头像
Epoch

Java开发、Python爬虫、微服务、分布式、前端

  • 累计撰写 93 篇文章
  • 累计创建 110 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录

JDBC--Druid的配置和使用

Epoch
2021-02-05 / 0 评论 / 0 点赞 / 319 阅读 / 456 字 / 正在检测是否收录...

Druid的配置和使用

新建个配置文件druid-config.properties

image-20210205180407505.png

内容如下:

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/bystart?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username=root
password=root
# 连接池配置
# 初始连接大小 最好把初始连接大小设置和最大连接大小设置一致,提前分配好资源
initialSize=10
# 最大连接大小
maxActive=20

开发Tips:

初始连接大小最好和最大连接大小一致,提前把所有的资源分配好

编写测试类

package com.xmaven;

import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.xmaven.utils.DbUtils;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;

/**
 * @ClassName DruidSample
 * @Description TODO Druid连接池配置与使用
 * @Author Ambition
 * @Date 2021/2/5 15:16
 * @Version 1.0.0
 **/
public class DruidSample {

    public static void main(String[] args) {
        // 1.加载属性文件
        Properties properties = new Properties();
        String propertieFile = DruidSample.class.getResource("/druid-config.properties").getPath();
        try {
            // 空格会被转换成%20  这个操作就是把这个转成原来的格式C:\Program Files\Java 而不是C:\Program%20Files\Java
            propertieFile = URLDecoder.decode(propertieFile, "UTF-8");
            properties.load(new FileInputStream(propertieFile));
        } catch (UnsupportedEncodingException | FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;

        try {
            // 2.获取DataSource数据源对象
            DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
            // 3. 创建数据库连接
            conn = dataSource.getConnection();
            pstmt = conn.prepareStatement("select  * from user limit 0,10");
            rs = pstmt.executeQuery();
            while (rs.next()){
                Integer id = rs.getInt(1);
                String username = rs.getString("username");
                String password = rs.getString("password");
                Float salary = rs.getFloat("salary");
                String dname = rs.getString("dname");
                System.out.println(id + "-" + username + "-" + password + "-" + salary + "-" + dname);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            /**
             * 不使用连接池:conn.close()关闭连接
             * 使用连接池: conn.close()将连接回收到连接池
             * */
            DbUtils.closeConnection(rs,pstmt,conn);
        }

    }

}

image-20210205180525189.png

打开Navicat

image-20210205180657592.png

0

评论区