栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java初学笔记43-【Druid(德鲁伊)应用实例、基于Druid(德鲁伊)的 JDBCUtils 工具类】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java初学笔记43-【Druid(德鲁伊)应用实例、基于Druid(德鲁伊)的 JDBCUtils 工具类】

Java初学笔记43

十二、Druid(德鲁伊)应用实例十三、基于Druid(德鲁伊)的 JDBCUtils 工具类

1. JDBCUtilsByDruid工具类2. 使用举例

十二、Druid(德鲁伊)应用实例
    加入 Druid jar 包,将该文件拷贝项目的 libs 目录加入 配置文件 druid.properties , 将该文件拷贝项目的 src 目录
#key=value
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/数据库名字?rewriteBatchedStatements=true
#url=jdbc:mysql://localhost:3306/数据库名字
username=数据库用户名
password=数据库密码
#initial connection Size
initialSize=10
#min idle connecton size
minIdle=5
#max active connection size
maxActive=20
#max wait time (5000 mil seconds)
maxWait=5000
package demo.datasource;

import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.junit.jupiter.api.Test;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.util.Properties;


public class Druid_ {

    
    @Test
    public void test01() throws Exception {
        //1. 加载配置文件
        Properties properties = new Properties();
        properties.load(new FileInputStream("src\druid.properties"));

        //2. 创建一个指定参数的德鲁伊连接池
        DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);

        //测试500000次连接
        long s = System.currentTimeMillis();
        for (int i = 0; i < 500000; i++) {
            Connection connection = dataSource.getConnection();
            connection.close();
        }
        long e = System.currentTimeMillis();
        System.out.println("德鲁伊连接池耗时:" + (e - s));
    }
}

十三、基于Druid(德鲁伊)的 JDBCUtils 工具类 1. JDBCUtilsByDruid工具类
package demo.datasource;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;


public class JDBCUtilsByDruid {

    private static  DataSource dataSource;

    static {
        Properties properties = new Properties();
        try {
            properties.load(new FileInputStream("src\druid.properties"));
            dataSource = DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //方法1:获取德鲁伊连接池的“连接”的getConnection 方法
    public static Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }

    //方法2:断开与德鲁伊连接池的"连接"
    public static void close(ResultSet resultSet, Statement statement,Connection connection){
        try {
            if(resultSet != null){
                resultSet.close();
            }
            if (statement != null) {
                statement.close();
            }
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}
2. 使用举例
package demo.datasource;

import org.junit.jupiter.api.Test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class JDBCUtilsByDruid_test {
    
    @Test
    public void TestSelect(){
        //1. 换取连接
        Connection connection = null;

        //2.组织sql语句
        String sql1 = "select * from man";
        ResultSet resultSet = null;
        PreparedStatement preparedStatement = null;
        try {
            connection = JDBCUtilsByDruid.getConnection();
            preparedStatement = connection.prepareStatement(sql1);
            resultSet = preparedStatement.executeQuery(sql1);
            while (resultSet.next()){
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                System.out.println(id + " " + name);
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            JDBCUtilsByDruid.close(resultSet,preparedStatement,connection);
        }

    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/759258.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号