JDBC连接池

本文介绍了JDBC连接池的概念,阐述了其在提高数据库连接复用、减少初始化时间和防止资源泄露方面的优点。详细讲解了JDBC连接池的使用步骤,包括加载驱动、获取连接、创建SQL执行对象等,并分析了Statement与PreparedStatement的区别,以及execute、executeQuery、executeUpdate方法的不同用途。同时,还列举了常见的JDBC异常类型。
摘要由CSDN通过智能技术生成

前言

连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。


一、JDBC连接池是什么

JDBC即Java DataBase Connectivity,是java数据库连接。JDBC是一套标准,是 Java 与各大数据库厂商共同定制的一套接口. 这套接口由各大数据库厂商进行了实现。

二、基本知识

1.JDBC连接池技术优点

(1)更快的反应速度

        数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于连接池中备用。此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而减少了系统的响应时间。

(2)资源重用

由于数据库连接得以重用,避免了频繁创建,释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增加了系统运行环境的平稳性。

(3)统一的连接管理,避免泄露

在较为完善的数据库连接池实现中,可根据预先的占用超时设定,强制回收被占用连接,从而避免了常规数据库连接操作中可能出现的资源泄露。

2.JDBC使用步骤

1.引入jar文件
2.加载数据库驱动
    连接驱动MySQL6以下的版本:com.mysql.jdbc.Driver
    连接驱动MySQL6和6以上的版本:com.mysql.cj.jdbc.Driver
Class.forName("com.mysql.jdbc.Driver");

3.使用驱动管理器获得JDBC连接对象
    连接地址格式:  主协议:子协议://IP地址:端口号/数据库名
    MySQL连接:jdbc:mysql://localhost:3306/test
    Oracle连接:jdbc:oracle:thin:@IP地址:1521/ORCL
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123");

4.通过连接对象创建SQL执行对象
Statement state = conn.createStatement();

5.使用SQL执行对象执行SQL语句
state.execute("sql语句");

6.释放连接
state.close();
conn.close();

3.JDBC常见问题

1.JDBC中的Statement和PreparedStatement、CallableStatement的区别

PreparedStatement是预编译SQL语句,效率高于Statement
PreparedStatement支持?占位符操作,相对于Statement更加灵活。
PreparedStatement可以防止SQL注入,安全性高于Statement.
CallableStatement适用于执行存储过程。

2.execute、executeQuery、executeUpdate的区别是什么?

Statement中的execute(String query)方法用来执行任意的Sql查询的,如果查询结果是ResultSet,这个方法就返回true。如果不是ResultSet,比如insert或者update查询,它就会返回false。我们可以通过他的getResultSet方法来获取ResultSet,或者通过getUpdateCount()方法来获取更新的记录条数。
Statement中的executeQuery(String query)接口用来执行select查询,并且返回ResultSet。即使查询不到记录返回的ResultSet结果也不会为null。我们通常使用executeQuery来执行查询语句,这样的化如果传进来的是insert或者update语句的话,他会抛出错误信息"executeQuery method can not be used for update"的java.util.SQLException。
Statement中的executeUpdate(String query)方法来执行insert或者update/delete(DML)语句,或者什么也不返回DDL语句。返回值是int类型,如果是DML语句的话,返回影响的条数,如果是DDL语句就返回0.
只有当你不确定是什么语句的时候才使用execute()方法,否则应该使用executeQuery()或者executeUpdate()方法。

3.常见的JDBC异常

java.sql.SQLException --> 这是JDBC常用的基类
java.sql.BatchUpdateException --> 当批处理操作执行失败的时候可能会抛出这个异常。这取决于具体的JDBC驱动的实现,它也可能直接抛出基类异常java.sql.SQLException。
java.sql.SQLWarning --> SQL操作出现的警告信息。
java.sql.DataTruncation --> 字段值由于某些非正常的原因被截断了(不是因为超过对应字段类型的长度限制)。
 


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值