Druid连接池

Druid连接池用法

一、数据库的连接

0、创建

首先在项目文件夹中新建resources文件夹,并且将此文件夹设定为项目的源文件夹(如果已经存在就无需创建),在resources文件夹下创建db.properties配置文件。

在该配置文件中需要包含用户名、密码、需要连接的数据库地址、数据库驱动四个信息

username=root
password=12345
url:jdbc:mysql://localhost:3306/hqyj
driver=com.mysql.jdbc.Driver

 

再在项目src文件夹,创建utils包,新建DruidUtil类。

在该类中引入JAR包

import com.alibaba.druid.pool.DruidDataSourceFactory;

 

1、获取数据源:

首先获取一个数据流

InputStream is = DruidUtil.class.getClassLoader().getResourceAsStream("db.properties");

 

然后建立一个和流相关的集合

Properties prop = new Properties();

 

加载一个文件流,文件流中存储有数据库的连接信息,该语句需要try\catch语句环绕

prop.load(is);

 

通过DruidDataSourceFactory工厂获取数据源,此处需要try\catch语句环绕

//首先由于作用域问题,我们先定义datasource为空
Datasource datasource = null;
try{
    dataSource = DruidDataSourceFactory.createDataSource(prop);
}catch(Exception e){
    e.printStackTrace();
}

 

2、在该类中建一个main方法,查看连接状况

public static void main(String[] args) {
        try {
            System.out.println(getDataSource().getConnection());
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }

 

 

DruidUtil.java:

复制代码
package com.sdufe.utils;
​
import com.alibaba.druid.pool.DruidDataSourceFactory;
​
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;
import java.util.Properties;
​
//通过Druid获取数据库连接
public class DruidUtil {
​
    //获取数据源
    public static DataSource getDataSource(){
        //如何获取一个流
        InputStream is = DruidUtil.class.getClassLoader().getResourceAsStream("db.properties");
​
        //唯一一个和流相关的集合
        Properties prop = new Properties();
​
        //加载一个文件流,文件流中还有数据库的连接信息
        try {
            prop.load(is);
        } catch (IOException exception) {
            exception.printStackTrace();
        }
​
        //通过工厂获取数据源
        DataSource dataSource = null;
        try {
            dataSource = DruidDataSourceFactory.createDataSource(prop);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dataSource ;
    }
​
    public static void main(String[] args) {
        try {
            System.out.println(getDataSource().getConnection());
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}
​
复制代码

 

二、持久层操作

通过创建一个queryrunner对象runner,runner可以执行SQL语句 他来源dbuitls.jar包

 QueryRunner runner = new QueryRunner(DruidUtil.getDataSource());

 

1、runner.query(),常用于获取数据,可以配合sql的select语句一起使用

BeanHandler<>将结果集中的第一行数据封装到一个对应的JavaBean实例中,在这里就是将第一行数据封装到LinkMan实例中。

BeanHandlerList<>将结果集中的所有数据封装到一个对应的JavaBean实例中。

//通过ID查询表内字段,BeanHandler<>将结果集中的第一行数据封装到一个对应的JavaBean实例中,在这里就是将第一行数据封装到LinkMan实例中。
linkMan =  runner.query("select*from linkman where id=?",new BeanHandler<>(LinkMan.class),id);
//列出表内所有字段,BeanHandlerList<>将结果集中的所有数据封装到一个对应的JavaBean实例中。
  LinkMans = runner.query("select * from linkman" ,new BeanListHandler<>(LinkMan.class));

 

2、runner.update(),常用于将信息传入数据库中,可以配合update\delete数据一起使用

//根据ID删除表内字段
i = runner.update("delete from linkman where id=?",id);
//根据ID修改表内字段
 runner.update("update linkman set sex=?,age=?,address=?,qq=?,email=? where id=?",    
               linkMan.getSex(),linkMan.getAge(),linkMan.getAddress(),linkMan.getQq(),linkMan.getEmail(),linkMan.getName());

 

posted on   老菜农  阅读(205)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

导航

统计信息

点击右上角即可分享
微信分享提示