jdbc结合dpcp连接池的封装实例

demo需求:

实现jdbc结合dpcp连接池的封装(以oracle数据库为例)并实现简单地查找demo主要技术:
(1)Properties类加载.properties的方式

(2)dpcp连接池建立数据库连接的方式

(3)查询数据的方式

(4)静态代码块的使用,分离驱动的加载和连接信息的载入,整个服务器生命周期只执行一次

demo所用jar包:

classes12.jar
commons-dbcp-1.4.jar
commons-pool-1.5.4.jar

demo主要代码展示:

Utils.java
 private static Connection conn = null;
 private static BasicDataSource dataSource = new BasicDataSource();
 private static Properties prop = getProperties("src/db.properties");

 // 将连接池的创建放在静态代码块,保证整个服务器生命周期只执行一次,减少服务器负担
 static {
  try {
   dataSource.setDriverClassName(prop.getProperty("driver"));
   dataSource.setUrl(prop.getProperty("url"));
   dataSource.setUsername(prop.getProperty("user"));
   dataSource.setPassword(prop.getProperty("password"));
   dataSource.setMaxActive(20);
   dataSource.setInitialSize(10);
  } catch (Exception e) {
   System.out.println("连接池创建失败");
  }
 }

 /**
  * show 方法简介 获取数据库连接池的连接,因为已经封装,以后只需要配置db.properties,无需动这边代码
  *
  * @author 叶灬黎
  * @return
  */
 public static Connection getConnection() {
  try {
   conn = dataSource.getConnection();
  } catch (Exception e) {
   System.out.println("数据库连接失败");
  }
  return conn;
 }

 /**
  * show 方法简介 读取.properties文件,这里主要服务于想将jdbc连接数据库的各项参数抽取出来
  *
  * @author 叶灬黎
  * @param file
  *   要读取的.properties文件的路径
  * @return Properties类对象
  */
 private static Properties getProperties(String file) {
  Properties properties = new Properties();
  try {
   FileInputStream fis = new FileInputStream(new File(file));
   properties.load(fis);
   fis.close();
  } catch (IOException e) {
   System.out.println("加载配置文件出错");
  }
  return properties;
 }
OneSelect.java
 public static void main(String[] args) {
  List<String> names = new ArrayList<>();

  try {
   Connection conn = Utils.getConnection();
   //创建执行引擎
   Statement state = conn.createStatement();
   //执行sql
   String sql = "select * from emp";
   ResultSet rs = state.executeQuery(sql);
   while(rs.next()){
    names.add(rs.getString("ename"));
   }
   rs.close();
   state.close();
   conn.close();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  for(String s : names){
   System.out.println(s);
  }
 }
db.properties(src目录下)
  driver = oracle.jdbc.driver.OracleDriver
  url = jdbc:oracle:thin:@127.0.0.1:1521:orcl
  user = scott
  password = 123456

demo资源位置:

svn://106.15.229.200/Javaweb/tinyDemo_jdbc 用户temp/密码temp)

以上这篇jdbc结合dpcp连接池的封装实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 关于JDBC的简单封装(实例讲解)

    如下所示: import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; /** * 数据库连接工具 * @author 2017 * */ public class DbTool { /** * 数据库的类 */ private static final String ORACLE_DRIVER = "oracle.

  • JDBC数据源连接池配置及应用

    使用JDBC建立数据库连接的两种方式: 1.在代码中使用DriverManager获得数据库连接.这种方式效率低,并且其性能.可靠性和稳定性随着用户访问量得增加逐渐下降. 2.使用配置数据源的方式连接数据库,该方式其实质就是在上述方法的基础上增加了数据库连接池,这种方式效率高. 数据源连接池的方式连接数据库与在代码中使用DriverManager获得数据库连接存在如下差别: 1)数据源连接池的方式连接数据库是在程序中,通过向一个JNDI(Java Naming and  Directory In

  • java的jdbc简单封装方法

    学习了jdbc一段时间后感觉自己写一个简单的封装来试试,于是参考的一些资料就写了一下不是多好,毕竟刚学也不太久 首先写配置文件:直接在src下建立一个db.properties文件然后写上内容 <span style="font-size:18px;">MysqlDriver=com.mysql.jdbc.Driver MysqlURL=jdbc\:mysql\://localhost\:3306/one User=root Pwd=123456 </span>

  • jdbc结合dpcp连接池的封装实例

    demo需求: 实现jdbc结合dpcp连接池的封装(以oracle数据库为例)并实现简单地查找demo主要技术: (1)Properties类加载.properties的方式 (2)dpcp连接池建立数据库连接的方式 (3)查询数据的方式 (4)静态代码块的使用,分离驱动的加载和连接信息的载入,整个服务器生命周期只执行一次 demo所用jar包: classes12.jar commons-dbcp-1.4.jar commons-pool-1.5.4.jar demo主要代码展示: Util

  • jdbc与druid连接池的使用详解

    使用jdbc实现对数据库的操作 Ⅰ 获取数据库连接 package org.example.utils; import java.sql.*; public class JavaDateConnection { /** * 获取数据库连接 * @return Connection */ public Connection getConn() { //project为数据库名 String url = "jdbc:mysql://localhost:3306/project"; //用户

  • Node.js使用MySQL连接池的方法实例

    本文实例讲述了Node.js使用MySQL连接池的方法.分享给大家供大家参考,具体如下: Nodejs如何使用MySQL Nodejs要连接MySQL,可以使用Nodejs的MysQL驱动来实现.比如,我们这里使用"node-mysql"连接数据库.我们使用下面的方式来连接数据库: 首先,我们需要使用nodejs的包管理工具(npm)安装mysql的驱动.命令行如下: npm install musql 现在,要在js文件中使用mysql,添加下面的代码到你的文件中: var mysq

  • 用连接池提高Servlet访问数据库的效率(1)

    Java Servlet作为首选的服务器端数据处理技术,正在迅速取代CGI脚本.Servlet超越CGI的优势之一在于,不仅多个请求可以共享公用资源,而且还可以在不同用户请求之间保留持续数据.本文介绍一种充分发挥该特色的实用技术,即数据库连接池. 一.实现连接池的意义 动态Web站点往往用数据库存储的信息生成Web页面,每一个页面请求导致一次数据库访问.连接数据库不仅要开销一定的通讯和内存资源,还必须完成用户验证.安全上下文配置这类任务,因而往往成为最为耗时的操作.当然,实际的连接时间开销千变万

  • dbcp 连接池不合理的锁导致连接耗尽解决方案

    dbcp 连接池不合理的锁导致连接耗尽解决方案 应用报错,表象来看是连接池爆满了. org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool

  • Java中JDBC连接池的基本原理及实现方式

    目录 一. 应用程序直接建立数据库连接模型 二.使用数据库连接池优化模型 1.关于连接池中的连接数量的一些规定: 2.编写数据库连接池 创建数据库连接池: 进一步封装一些相关数据库的类的方法 三.两个开源的数据库连接池 1.dbcp连接 (1)导入相关jar包 (2)在项目根目录增加配置文件dbcp.properties (3)程序实现dbcp连接 2.c3p0连接池 (1)导入相关的jar包 (2)在项目根目录下增加配置文件 (3)编写类文件,创建连接池 3.dbcp和c3p0不同之处 一.

  • 简单通用JDBC辅助类封装(实例)

    哎,最近很好久没写点东西了,由于工作的原因,接触公司自己研发的底层orm框架,偶然发现该框架在调用jdbc操作的时候参考的是hibernate 里面的SimpleJdbcTemplate,这里我想到了在大学的时候自己用过的一个简单的jdbc封装,现在我将代码贴出来,和大家一起分享: Config类:读取同一包下的数据库连接配置文件,这样是为了更好的通用性考虑 package com.tly.dbutil; import java.io.IOException; import java.util.

  • 自定义一个简单的JDBC连接池实现方法

    一.什么是JDBC连接池? 在传统的JDBC连接中,每次获得一个Connection连接都需要加载通过一些繁杂的代码去获取,例如以下代码: public static Connection getConn(){ Connection conn = null; String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "root"

  • 关于Java 项目封装sqlite连接池操作持久化数据的方法

    Sqlite sqlite是C实现的一个开源SQL引擎,其api提供sql语法支持,通过sql解析后对存储层的磁盘文件进行操作,完整配置的sqlite库小于400kb,多用于移动端应用,小型项目中. 对Sqlite有兴趣的可以了解下其体系结构 之前自研SQL解析器的时候便是借鉴了SQLcompiler的源码,这里不展开介绍 封装Java的Sqlite连接池 首先maven项目引入依赖sqlite-jdbc,其主要是java版的sqliteapi,关于Sqlite api的操作,大家可以看菜鸟教程

随机推荐