-
概念:其实就是一个容器(集合),存放数据库连接的容器。
当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。
-
好处:
- 节约资源
- 用户访问高效
-
实现:
- 标准接口:
DataSource
javax.sql
包下的- 方法:
- 获取连接:
getConnection()
- 归还连接:如果连接对象
Connection
是从连接池中获取的,那么调用Connection.close()
方法,则不会再关闭连接,而是会还连接。
- 获取连接:
- 方法:
- 一般我们不去实现它,有数据库厂商来实现
- C3P0:数据库连接池技术
- Druid:数据库连接池实现技术,由阿里巴巴提供的
- 标准接口:
-
C3P0数据库连接池技术
-
步骤:
-
导入jar包(两个)
c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar
注:不要忘记导入数据库驱动jar包
-
定义配置文件:
- 名称:
c3p0.properties
或者c3p0-config.xml
- 路径:直接将文件放在
src
目录下即可
- 名称:
-
创建核心对象——数据库连接池对象
ComboPooledDataSource
-
获取连接:
getConnection
-
-
-
Druid:数据库连接实现技术,由阿里巴巴提供
- 步骤:
- 导入jar包 druid-1.0.9.jar
- 定义配置文件:
- 是properties形式的
- 可以叫任意名字,可以放在任意目录下
- 加载配置文件。Properties
- 获取数据库连接对象:通过工厂对象来获取
DruidDataSourceFactory
- 获取连接:
getConnetion
- 步骤:
-
Druid工具类——
DruidUtils
import java.io.FileReader; import java.io.IOException; import java.net.URL; import java.sql.*; import java.util.Properties; public class JDBCUtils { private static String url; private static String user; private static String password; private static String driver; static{ try { Properties pro = new Properties(); // 获取src路径下的文件的方式-->ClassLoader类加载器 ClassLoader classLoader = JDBCUtils.class.getClassLoader(); URL res = classLoader.getResource("jdbc.properties"); String path = res.getPath(); pro.load(new FileReader(path)); url = pro.getProperty("url"); user = pro.getProperty("user"); password = pro.getProperty("password"); driver = pro.getProperty("driver"); Class.forName(driver); } catch (ClassNotFoundException | IOException e) { e.printStackTrace(); } } /** * 获取连接 * @return 连接对象 */ public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url, user, password); } public static void close(Statement stmt, Connection conn){ close(null, stmt, conn); } /** * 释放资源 * @param stmt * @param conn */ public static void close(ResultSet rs, Statement stmt, Connection conn){ if(rs != null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(stmt != null){ try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn != null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
-
Spring JDBC
-
Spring框架对JDBC进行了简单的封装。提供了一个
JDBCTemplate
对象简化JDBC的开发。 -
步骤:
-
导入jar包
-
创建
JdbcTemplate
对象,依赖于数据源DataSource
JdbcTemplate template = new JdbcTemplate(ds);
-
调用
JdbcTemplate
的方法来完成CURD的操作update()
:执行DML语句。增、删、改语句。queryForMap()
:查询结果,将结果封装为map集合。queryForList()
:查询结果,将结果封装为list集合。query()
:查询结果,将结果封装为JavaBean对象。queryForObject()
:查询结果,将结果封装为对象。
-
-
Java自学整理6——数据库连接池
最新推荐文章于 2024-05-17 13:43:01 发布