前言
本文简单的介绍一些JDBC相关的知识点,并用DAO模式写一个JDBC Demo,没有讲述太多的细节。
概述
JDBC英文名为:Java Data Base Connectivity(Java数据库连接),它是一种规范,提供一套完整的、允许便捷式访问底层数据库的接口,架构图如下:
常用接口
-
DriverManager:这个类管理数据库驱动程序的列表,查看加载的驱动是否符合JAVA Driver API的规范。
-
Connection:与数据库中的所有的通信是通过唯一的连接对象。
-
Statement/PareparedStatement:把创建的SQL对象,转而存储到数据库当中。
-
ResultSet:它是一个迭代器,用于检索查询数据。
操作流程图
ResultSet解析
JDBC开启事物
try {
con.setAutoCommit(false);//开启事务
….
…
con.commit();//try的最后提交事务
} catch() {
con.rollback();//回滚事务
数据库连接池
池(Pool)技术在一定程度上可以明显优化服务器应用程序的性能,提高程序执行效率和降低系统资源开销,例如数据库连接池、线程池、内存池、对象池等。
资源池(Resource Pool)已经是处理共享资源的一种经典设计模式。该模式正是为了优化资源的频繁分配﹑释放所造成的资源浪费及系统系统延迟。
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。
重用的数据库连接池C3P0:
池参数:
MaxActive 最大连接数
MaxIdle 最大空闲连接数
InitialSize 初始化连接数
MinIdle 最小空闲连接数
MaxWait 最大等待时间
AcquireIncrement 增量
public void fun1() throws PropertyVetoException, SQLException {
ComboPooledDataSource ds = new ComboPooledDataSource();
ds.setJdbcUrl("jdbc:mysql://localhost:3306/databaseName");
ds.setUser("root");
ds.setPassword("mysql");
ds.setDriverClass("com.mysql.jdbc.Driver");
ds.setAcquireIncrement(5);
ds.setInitialPoolSize(20);
ds.setMinPoo