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(); }
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());
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律