数据库连接池原理(二)
来源:互联网 发布:java设计模式23种分类 编辑:程序博客网 时间:2024/06/05 16:55
模拟数据库连接池原理
一、写数据库的配置文件jdbcConfig.properties
二、编写公共类
public class JDBCPoolUtil {private static String driveClass;private static String url;private static String user;private static String password;static{try {ClassLoader classLoader = JDBCPoolUtil.class.getClassLoader();InputStream inputStream = classLoader.getResourceAsStream("jdbcconfig.properties");Properties properties = new Properties();properties.load(inputStream);driveClass = properties.getProperty("driverClassName");url = properties.getProperty("url");user = properties.getProperty("username");password = properties.getProperty("password");Class.forName(driveClass);} catch (Exception e) {throw new ExceptionInInitializerError(e);}}public static Connection getConnection() throws SQLException {Connection connection = DriverManager.getConnection(url, user, password);return connection;}public static void release(ResultSet resultSet,Statement statement,Connection connection){if(resultSet != null){try {resultSet.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(statement != null){try {statement.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(connection != null){try {connection.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
三、编写连接池demo
//模拟数据库连接池原理public class ConnectionPoolDemo {private static List<Connection> pool = new ArrayList<Connection>();static {try {InputStream inputStream = JDBCPoolUtil.class.getClassLoader().getResourceAsStream("jdbcconfig.properties");Properties properties = new Properties();properties.load(inputStream);String initialSize = properties.getProperty("initialSize");for(int i = 0; i < Integer.parseInt(initialSize); i++){Connection connection = JDBCPoolUtil.getConnection();pool.add(connection);}} catch (Exception e) {e.printStackTrace();} }//从池中取出一个链接public synchronized static Connection getConnection() {if(pool.size()>0) {Connection connection = pool.remove(0);return connection;} else {throw new RuntimeException("服务器忙");}}//把链接放回池中public static void release(Connection connection) {pool.add(connection);}}
阅读全文
0 0
- 数据库连接池原理(二)
- JDBC相关(二):数据库连接池技术原理,使用详解和常见的数据库连接池
- 数据库连接池(二)
- 数据库连接池(二)
- 数据库连接池原理(转载)
- 数据库连接池原理(一)
- Java数据库连接池(二)
- 浅析数据库连接池(二)
- 数据库连接池实现原理
- 数据库连接池原理
- 数据库连接池的原理
- 数据库连接池原理
- 数据库连接池原理
- 数据库连接池原理
- java 数据库连接池原理
- 数据库连接池原理
- 数据库连接池的原理
- 数据库连接池原理
- 虚拟网卡驱动
- Java读写.properties文件实例,解决中文乱码问题
- 新闻BaseAdapter
- spring连接池配置
- 求链式表的表长
- 数据库连接池原理(二)
- mybatis+mysql返回以map形式插入的实体主键
- Unity特殊文件夹详解
- 清除缓存
- 免sdk实现微信/支付宝转账打赏功能
- tomcat服务一---tomcat部署及日志切割
- python2.x环境下unicode乱码转中文显示的2种解决方案总结
- sort-colors
- Java遍历Properties的所有的元素,四种方法详细总结的代码实例