dbcp数据库连接池简单例子
来源:互联网 发布:windows是谁开发的 编辑:程序博客网 时间:2024/03/29 02:54
首先,编写数据库配置文件,命名为dbcp.properties。
driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriverurl=jdbc:sqlserver://127.0.0.1:1433username=stupassword=123initialSize=10maxActive=50maxIdle=20minIdle=5maxWait=60000characterEncoding=UTF8defaultAutoCommit=true
该文件的编写遵循properties文件的编写方式,采用名值对的形式。比较重要的参数包括:driverClassName指明加载的连接驱动器的全包名。url为访问数据库的url,username和password为访问数据库的用户名和密码。initialSize为初始连接池的大小,其他参数含义可以根据英文单词猜出。
其次,编写使用该类的工具类。
import org.apache.commons.dbcp2.BasicDataSourceFactory;import javax.sql.DataSource;import java.sql.ResultSet;import java.sql.Statement;import java.io.InputStream;import java.sql.Connection;import java.sql.SQLException;import java.util.Properties;/** * Created by dan on 2015/12/2. */public class DbcpJdbcUtil { private static DataSource ds = null; static { try{ InputStream in = DbcpJdbcUtil.class.getClassLoader().getResourceAsStream("dbcp.properties"); Properties prop = new Properties(); prop.load(in); ds = BasicDataSourceFactory.createDataSource(prop); }catch(Exception e){ e.printStackTrace(); } } public static Connection getConnection() throws SQLException{ return ds.getConnection(); } public static void release(Connection conn, Statement st, ResultSet rs){ if (rs != null){ try{ rs.close(); }catch(Exception e){ e.printStackTrace(); } } if (st != null){ try{ st.close(); }catch(Exception e){ e.printStackTrace(); } } if (conn != null){ try{ conn.close(); }catch(Exception e){ e.printStackTrace(); } } }}
需要在类路径中加载的包包括:commons-dbcp2-2.1.1.jar
在该类中,使用类加载的方式加载配置文件,注意配置文件的名字一定要与刚刚写的properties一致。
使用类加载的方式,一定要注意properties在src目录的根目录下,不是类的包中。
在整个项目中,一般只申请一个连接池,所以该类的连接池对象被声明为类变量,调用该类变量,获取连接的方法getConnection被声明为类方法。
release统一负责释放所有与数据库相关的连接资源,其中connection的释放实际上是将conncetion对象重新放回到连接池中。
当建立完成上述类后,就可以通过调用getConnection方法获取链接。
import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class Main { public static void main(String[] args) { try { //Connection conn = JdbcUtil.getConnection(); Connection conn = DbcpJdbcUtil.getConnection(); //Connection conn = C3P0JdbcUtil.getConnection(); Statement stmt = conn.createStatement(); String sql = "select sn,sex from s"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ System.out.println(rs.getString("sn") + " " + rs.getString("sex")); } C3P0JdbcUtil.release(conn, stmt, rs); } catch (SQLException e) { e.printStackTrace(); } }}
0 0
- dbcp数据库连接池简单例子
- dbcp的简单使用_数据库连接池
- DBCP数据库连接池的简单使用
- DBCP数据库连接池的简单使用
- 数据库连接池DBCP框架的研究以及源代码分析一:第一个DBCP例子
- dbcp数据库连接池
- JDBC-数据库连接池dbcp
- 数据库连接池DBCP浅析
- 数据库连接池dbcp整理
- DBCP 数据库连接池
- DBCP 数据库连接池配置
- java数据库连接池dbcp
- DBCP 数据库连接池配置
- 数据库连接池c3p0/dbcp
- DBCP数据库连接池
- 数据库连接池---DBCP
- dbcp 配置数据库连接池
- dbcp数据库连接池
- 关于实现多个button只实现可以选中一个的代码
- redis入门
- TClientDataSet用法详解
- PCM音频
- 制作自己的静态库
- dbcp数据库连接池简单例子
- Web Services 指南之:为何要使用 Web Services
- google protobuf学习笔记二:使用和原理
- IOS响应式编程框架ReactiveCocoa(RAC)使用示例
- DLL工程调试
- 大小端 字节序
- 简单工厂模式
- log4j.properties 使用
- Android中集成支付宝sdk的常见问题,以及在mac环境下生成支付宝公钥私钥(window通用)