JDBC连接数据库以及druid数据库连接池的使用,有需要的看过来哦!

本文详细介绍了使用JDBC连接数据库的六个步骤,并提供了代码示例,强调了预编译语句在防止SQL注入上的作用。接着,讲解了Druid数据库连接池的使用,包括配置文件的编写、连接池的初始化和关闭,以及如何在代码中应用Druid连接池进行数据库操作。使用连接池可以有效管理并复用数据库连接,提高系统性能。
摘要由CSDN通过智能技术生成

一. JDBC连接数据库的步骤:

注意: 编写jdbc.properties文件(便于后期修改数据)

jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://ip:3306/数据库名称?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
jdbc.username=root
jdbc.password=123 

连接步骤:

1、加载jdbc驱动程序;
2、创建数据库的连接;
3、创建preparedStatement(避免SQL注入漏洞);
4、执行SQL语句;
5、遍历结果集;
6、处理异常,关闭JDBC对象资源。

代码(mysql):

Class.forName("com.mysql.cj.jdbc.Driver");//1. 加载驱动
Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);//2. 创建连接
PrepareStatement pst = conn.prepareStatement(sql);//3.创建pst
//4. 执行SQL语句
pst.executeUpdate(sql);//增删改,该方法没有返回值
ResultSet rs=pst.executeQuery(sql);//查找,该方法返回值为ResultSet 
//5.遍历结果集
while(rs.next()){
	String name = rs.getString("name") ;//通过字段名得到
	String pass = rs.getString(1) ; //列是从左到右编号的, 通过字段索引(从1开始)
}
/**
* 6.断开所有连接,与创建连接时顺序相反
* (1、 先关闭ResultSet
* (2 、再关闭PreparedStatement
* (3 、最后关闭连接对象Connection
* */
if (rs != null) {
	rs.close();
}
if (pst != null) {
	pst.close();
}
if (conn != null) {
	conn.close();
} 

二. Druid数据库连接池

数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。如下图所示:

使用Druid连接池

  1. 下载Druid的jar包,导入环境
  2. 编写配置文件 druid.properties
driverClassName = com.mysql.cj.jdbc.Driver
druid.url= jdbc:mysql://192.168.0.152:3306/book_db?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
druid.username = root
druid.password = 123
#初始化连接数量#
initialSize = 5
#最大连接数量
maxACtive = 10
#等待时间 3秒
maxWait = 3000
  1. 导入配置文件,使用Druid连接池
public void DruidConnect {
	Properties pro = new Properties();
    pro.load(new FileReader(Constants.PATH));//配置文件路径
	DruidDataSource ds = new DruidDataSource();//创建数据源对象
	ds.configFromPropety(pro);//加载druid.properties文件
	Connection conn = ds.getConnection();//获取连接
	PrepareStatement pst = conn.prepareStatement(sql);//SQL注入
	//pst.executeUpdate() ;和jdbc类似
	ResultSet rs=pst.executeQuery(); 
	while(rs.next()) {
		System.out.println(rs.getString(列名));
	}
	//断开连接并释放给连接池
	if (rs != null) {
		rs.close();
    }
	if (pst != null) {
		pst.close();
	}
	if (conn != null) {
		conn.close();
	} 
}

通常在使用的过程中会将连接操作封装成一个工具类,以便实现复用,简洁代码!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值