栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 数据挖掘与分析

Druid数据库连接池

Druid数据库连接池

什么是数据库连接池

连接池是一种常用的技术,为什么需要连接池呢?这个需要从TCP说起。假如我们的服务器跟数据库没有部署在同一台机器,那么,服务器每次查询数据库都要先建立连接,一般都是TCP链接,建立连接就需要3次握手了,假设后台服务跟数据库的单程的访问时间需要10ms,那么光是建立连接就花了30ms,并且TCP还有慢启动的机制,实际上一次查询可能还不止1次TCP来回,查询效率就会大大降低。

官方下载地址:Maven Repository: com.alibaba » druid (mvnrepository.com)https://mvnrepository.com/artifact/com.alibaba/druid

 1.建立maven项目在pom.xml 添加相关的依赖


        
        
            com.alibaba
            druid
            1.2.7
        
        
            mysql
            mysql-connector-java
            8.0.26
        
        
            junit
            junit
            4.13.2
            test
        
        
            org.projectlombok
            lombok
            1.18.20
            provided
        

    

2.编写代码

方式一

public class Demo {
    public static void main(String[] args) throws SQLException {
        var ds = new DruidDataSource();
        ds.setUrl("jdbc:mysql:/d1?user=root");
        var conn =  ds.getConnection();
        System.out.println(conn);
    }

}

 d1为所连接的数据库 root为账号 未设密码

方式二

public class Demo {
    public static void main(String[] args) throws SQLException {
        var ds = new DruidDataSource();
        ds.setDriverClassName("com.mysql.cj.jdbc.Driver");
        ds.setUrl("jdbc:mysql:/d1");
        ds.setUsername("root");
        ds.setPassword("");
        var conn =  ds.getConnection();
        System.out.println(conn);
    }

}

username为数据库登录账号 password为登录密码,

方式三

public class Demo {
    public static void main(String[] args) throws SQLException {
        var ds = new DruidDataSource();
        Properties m1 = new Properties();
        m1.setProperty("druid.url","jdbc:mysql:/d1?user=root");
        ds.setConnectProperties(m1);
        var conn =  ds.getConnection();
        System.out.println(conn);
        
    }

}

运行结果可以看到已经连接到数据库,如下图:

 可以对数据库中的表进行操作,比如查看数据库中的表

public class Demo {
    public static void main(String[] args) throws SQLException {
        var ds = new DruidDataSource();
        Properties m1 = new Properties();
        m1.setProperty("druid.url","jdbc:mysql:/d1?user=root");
        ds.setConnectProperties(m1);
        var conn =  ds.getConnection();
        System.out.println(conn);
        try {
            var pst = conn.prepareStatement("show tables");
            var rs = pst.executeQuery();
            while (rs.next()){
                System.out.println(rs.getString(1));
            }

        } catch (Exception e){
            e.printStackTrace();
        }
    }

}

可以看到运行结果如下图:

 方式四 在项目建立配置资源文件,resource目录下

在resource目录下新建 db.properties文件

 对db.properties进行如下配置

druid.driverClassName=com.mysql.cj.jdbc.Driver
druid.url=jdbc:mysql:/d1
druid.username=root
druid.password=

然后编写代码段

public class Demo {
    public static void main(String[] args) throws SQLException, IOException {
        var ds = new DruidDataSource();
        Properties db = new Properties();
        var is = Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties");
        db.load(is);
        ds.setConnectProperties(db);
        var conn = ds.getConnection();
        try {
            var pst = conn.prepareStatement("show tables");
            var rs = pst.executeQuery();
            while (rs.next()){
                System.out.println(rs.getString(1));
            }

        } catch (Exception e){
            e.printStackTrace();
        }

同样可以连接到数据库

 

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

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

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