前言
连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。
一、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提供了大量能使我们快速便捷地处理数据的函数和方法。