`
touchmm
  • 浏览: 1046878 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Java c3p0 oracle 数据库连接池 代码实现 (二)

阅读更多

DatabaseAccessImpl.java
package com.database;
import java.io.*;
import java.sql.*;
import java.util.*;
import org.apache.commons.logging.*;
public class DatabaseAccessImpl implements DatabaseAccessInterface {
private static Log log = LogFactory.getLog(DatabaseAccessImpl.class);
public void executeSQL(String sqlStatement) throws SQLException {
Connection connection = null;
PreparedStatement statement = null;
try {
connection = DBConnectionManager.getConnection();
connection.setAutoCommit(true);
statement = connection.prepareStatement(sqlStatement);
statement.execute();
} catch (SQLException ex) {
ex.printStackTrace();
throw ex;
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
connection.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
return;
}

public void executeSQL(String sqlStatement, Object parameters[]) throws SQLException {
Connection connection = null;
PreparedStatement statement = null;
try {
connection = DBConnectionManager.getConnection();
connection.setAutoCommit(true);
statement = connection.prepareStatement(sqlStatement);
// 获取执行数据
if (parameters != null && parameters.length > 0) {
for (int i = 0; i < parameters.length; i++) {
statement.setObject(i + 1, parameters[i]);
}
}
statement.execute();
} catch (SQLException ex) {
ex.printStackTrace();
throw ex;
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
connection.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
return;
}

public void executeSQL(String sqlStatement, List parameters) throws SQLException {
Connection connection = null;
PreparedStatement statement = null;
try {
connection = DBConnectionManager.getConnection();
connection.setAutoCommit(true);
statement = connection.prepareStatement(sqlStatement);
// 获取执行数据
int listsize = parameters.size();
for (int i = 0; i < listsize; i++) { statement.setObject(i + 1, parameters.get(i)); }
statement.execute();
} catch (SQLException ex) {
ex.printStackTrace();
throw ex;
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
connection.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
return;
}

public void executeSQL(String[] sqlStatement) throws SQLException {
Connection connection = null;
PreparedStatement statement = null;
if (sqlStatement == null || sqlStatement.length == 0) {
throw new SQLException();
}
try {
connection = DBConnectionManager.getConnection();
connection.setAutoCommit(false);
int slength = sqlStatement.length;// 事务中sql语句的个数
for (int i = 0; i < slength; i++) {
statement = connection.prepareStatement(sqlStatement[i]);
statement.execute();
}
connection.commit();
} catch (SQLException ex) {
connection.rollback();
ex.printStackTrace();
throw ex;
} catch (Exception ex) {
connection.rollback();
ex.printStackTrace();
} finally {
try {
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
connection.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
return;
}

public void executeSQL(String[] sqlStatement, List parameters) throws SQLException {
Connection connection = null;
PreparedStatement statement = null;
if (sqlStatement == null || sqlStatement.length == 0) {
throw new SQLException();
}
try {
connection = DBConnectionManager.getConnection();
connection.setAutoCommit(false);
int slength = sqlStatement.length;// 事务中sql语句的个数
for (int i = 0; i < slength; i++) {
statement = connection.prepareStatement(sqlStatement[i]);
if (parameters != null) {
Object[] pm = (Object[]) parameters.get(i);
// 获取执行数据
int pmsize = 0;// 每条sql数据对应的参数个数
if (pm != null) {
pmsize = pm.length;
}
for (int j = 0; j < pmsize; j++) {
statement.setObject(j + 1, pm[j]);
}
}
statement.execute();
}
connection.commit();
} catch (SQLException ex) {
connection.rollback();
ex.printStackTrace();
throw ex;
} catch (Exception ex) {
connection.rollback();
ex.printStackTrace();
} finally {
try {
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
connection.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
return;
}

public Vector executeQuerySQL(String sqlStatement) throws SQLException {
Vector resultVector = new Vector();
Connection connection = null;
PreparedStatement statement = null;
ResultSet rs = null;
try {
connection = DBConnectionManager.getConnection(); // 获取数据库连接对象
connection.setAutoCommit(false);
statement = connection.prepareStatement(sqlStatement); // 获取statement对象
statement.execute();
rs = statement.getResultSet(); // 获取查询记录集
HashMap rowItem;
for (; rs.next(); resultVector.add(rowItem)) {
rowItem = new HashMap();
int columnCount = rs.getMetaData().getColumnCount();
for (int i = 1; i <= columnCount; i++) {
Object cell = rs.getObject(i);
if (cell == null) {
cell = "";
} else if (cell instanceof Blob) {
try {
InputStreamReader in = new InputStreamReader(((Blob) cell).getBinaryStream());
char bufferString[] = new char[5000];
int readCharCount = in.read(bufferString);
StringBuffer bolbStringBuffer = new StringBuffer("");
for (; readCharCount == 5000; readCharCount = in.read(bufferString)) {
bolbStringBuffer.append(bufferString, 0, readCharCount);
}
if (readCharCount != -1) {
bolbStringBuffer.append(bufferString, 0, readCharCount);
}
cell = bolbStringBuffer.toString();
in.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
rowItem.put(rs.getMetaData().getColumnName(i), cell);
}
}
} catch (SQLException ex) {
ex.printStackTrace();
throw ex;
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
rs.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
connection.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
return resultVector;
}

public Vector executeQuerySQL(String sqlStatement, Object parameters[]) throws SQLException {
Vector resultVector = new Vector();
Connection connection = null;
PreparedStatement statement = null;
ResultSet rs = null;
try {
connection = DBConnectionManager.getConnection(); // 获取数据库连接对象
connection.setAutoCommit(false);
statement = connection.prepareStatement(sqlStatement); // 获取statement对象
// 获取查询参数
if (parameters != null && parameters.length > 0) {
for (int i = 0; i < parameters.length; i++) {
statement.setObject(i + 1, parameters[i]);
}
}
statement.execute();
rs = statement.getResultSet(); // 获取查询记录集
HashMap rowItem;
for (; rs.next(); resultVector.add(rowItem)) {
rowItem = new HashMap();
int columnCount = rs.getMetaData().getColumnCount();
for (int i = 1; i <= columnCount; i++) {
Object cell = rs.getObject(i);
if (cell == null) {
cell = "";
} else if (cell instanceof Blob) {
try {
InputStreamReader in = new InputStreamReader(((Blob) cell).getBinaryStream());
char bufferString[] = new char[5000];
int readCharCount = in.read(bufferString);
StringBuffer bolbStringBuffer = new StringBuffer("");
for (; readCharCount == 5000; readCharCount = in.read(bufferString)) {
bolbStringBuffer.append(bufferString, 0, readCharCount);
}
if (readCharCount != -1) {
bolbStringBuffer.append(bufferString, 0, readCharCount);
}
cell = bolbStringBuffer.toString();
in.close();
} catch (Exception ex) {
ex.printStackTrace();
log.error(ex.getMessage());
}
}
rowItem.put(rs.getMetaData().getColumnName(i), cell);
}
}
} catch (SQLException ex) {
ex.printStackTrace();
throw ex;
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
rs.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
connection.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
return resultVector;
}

public Vector executeQuerySQL(String sqlStatement, List parameters) throws SQLException {
Vector resultVector = new Vector();
Connection connection = null;
PreparedStatement statement = null;
ResultSet rs = null;
try {
connection = DBConnectionManager.getConnection(); // 获取数据库连接对象
connection.setAutoCommit(false);
statement = connection.prepareStatement(sqlStatement); // 获取statement对象
// 获取查询数据
int listsize = parameters.size();
for (int i = 0; i < listsize; i++) {
statement.setObject(i + 1, parameters.get(i));
}
statement.execute();
rs = statement.getResultSet(); // 获取查询记录集
HashMap rowItem;
for (; rs.next(); resultVector.add(rowItem)) {
rowItem = new HashMap();
int columnCount = rs.getMetaData().getColumnCount();
for (int i = 1; i <= columnCount; i++) {
Object cell = rs.getObject(i);
if (cell == null) {
cell = "";
} else if (cell instanceof Blob) {
try {
InputStreamReader in = new InputStreamReader(((Blob) cell).getBinaryStream());
char bufferString[] = new char[5000];
int readCharCount = in.read(bufferString);
StringBuffer bolbStringBuffer = new StringBuffer("");
for (; readCharCount == 5000; readCharCount = in.read(bufferString)) {
bolbStringBuffer.append(bufferString, 0, readCharCount);
}
if (readCharCount != -1) {
bolbStringBuffer.append(bufferString, 0, readCharCount);
}
cell = bolbStringBuffer.toString();
in.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
rowItem.put(rs.getMetaData().getColumnName(i), cell);
}
}
} catch (SQLException ex) {
ex.printStackTrace();
throw ex;
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
rs.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
connection.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
return resultVector;
}

public String getSequenceNum(String tableName) throws SQLException {
Connection connection = null;
PreparedStatement statement = null;
ResultSet rs = null;
String squenceNumber = "";
String sequenceStatement = "select " + tableName + "_seq.nextval from dual";
try {
connection = DBConnectionManager.getConnection();
statement = connection.prepareStatement(sequenceStatement);
rs = statement.executeQuery();
rs.next();
squenceNumber = rs.getBigDecimal(1).toString();
} catch (SQLException ex) {
ex.printStackTrace();
throw ex;
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
rs.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
connection.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
return squenceNumber;
}
}

分享到:
评论

相关推荐

    java oracle 数据库 连接池 小例子

    总的来说,这个小例子向我们展示了Java应用程序如何利用C3P0连接池高效地管理Oracle数据库连接,提供了一个可扩展和可配置的解决方案。通过合理配置连接池参数,可以有效地优化数据库访问性能,降低系统的资源消耗。

    数据库连接池c3p0jar包

    总的来说,C3P0作为一款成熟的数据库连接池,对于Java开发者来说,是一个值得信赖的工具,可以帮助我们更有效地管理和使用数据库连接,提升应用程序的性能和可靠性。在实际项目中,根据具体需求合理配置C3P0,可以更...

    c3p0数据库连接池案例

    总的来说,c3p0数据库连接池案例提供了一个完整的示例,涵盖了从配置到使用的全过程,有助于加深对数据库连接池概念的理解,并提升你在Java项目中的数据库管理能力。通过实践这个案例,你可以掌握如何更高效、更稳定...

    c3p0数据库连接池所需jar包

    C3P0是一个开源的Java数据库连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用程序中,数据库连接池扮演着非常重要的角色,它能够有效地管理数据库连接,提高系统性能,减少数据库资源...

    开源数据库连接池c3p0

    开源数据库连接池c3p0是一款广泛应用于Java后端开发中的数据库连接管理工具,它能够有效地管理和优化数据库连接,提高应用的性能和响应速度。c3p0的主要功能包括连接池的创建、维护以及自动回收资源,使得多个并发...

    Oracle-Driver(支持c3p0等连接池)

    在OracleC3P0-Connector.jar文件中,包含了实现Oracle数据库连接池功能所需的类和资源。这些类通常包括了数据库连接的创建、管理、回收等核心逻辑,通过c3p0的配置,可以实现数据库连接的复用,避免频繁创建和关闭...

    C3p0、Oracle数据库连接驱动、MySQL数据库连接驱动jar包.rar

    C3p0提供了高效的数据库连接池服务,而Oracle和MySQL的JDBC驱动则确保了Java代码能与这两种数据库进行有效通信。这些`.jar`文件对于构建基于Java的数据库应用至关重要,它们简化了开发过程,提高了性能,并确保了...

    数据库连接池c3p0所需jar包

    - **commons-pool**:Apache Commons Pool是通用的对象池服务,可以用于创建各种资源的池化,包括C3P0在内的数据库连接池在底层使用了这个库来实现对象的管理和复用。 在实际开发中,你通常会将这些JAR包添加到项目...

    数据库连接池在Oracle数据库中的实现.docx

    在Oracle数据库中实现数据库连接池,通常会利用第三方提供的连接池组件,如Apache的DBCP、C3P0或者HikariCP等。这些组件遵循JDBC规范,提供了连接池的管理和监控功能。开发者只需要在应用程序中配置连接池的相关参数...

    数据库连接池 java 整理

    在Java中,有多种流行的数据库连接池实现,如Apache的DBCP、C3P0、HikariCP和Apache的Deltaspike Data Pool等。这些库提供了管理和维护数据库连接的功能,包括初始化连接池、获取和释放连接、自动关闭连接以及监控...

    数据库连接池dbcp和c3p0jar包

    总的来说,DBCP和C3P0都是优秀的数据库连接池实现,它们通过高效的连接管理,提高了系统的性能和稳定性,是Java开发者在构建数据库驱动的应用程序时不可或缺的工具。正确理解和使用这些连接池,可以帮助我们构建出更...

    数据库连接池代码

    在Java中,有多种流行的数据库连接池实现,如Apache的DBCP、C3P0,以及HikariCP等。以HikariCP为例,它被广泛认为是性能最佳的连接池,因为它提供了快速的连接获取和释放,以及低延迟的特性。 使用数据库连接池的...

    C3P0数据库连接池

    C3P0数据库连接池是一种开源的Java数据库连接池组件,它允许应用程序高效地管理和...总的来说,C3P0数据库连接池是Java应用程序实现高效数据库访问的重要工具,通过合理配置和使用,能够显著提升系统的稳定性和性能。

    C3P0连接池配置需要的jar包

    C3P0连接池是Java应用中常用的数据库连接池组件,它允许程序在不关闭物理连接的情况下,管理和重用数据库连接,从而提高了应用程序的性能和效率。C3P0库依赖于其他几个JAR包来实现其功能,包括`c3p0-0.9.2.1.jar`、`...

    Java各数据库连接池配置介绍

    在Java中,有多种数据库连接池实现,包括C3P0、DBCP和Proxool等。 **C3P0连接池配置参数详解** 1. `acquireIncrement`:当连接池中的连接耗尽时,一次同时尝试获取的连接数。默认值为3,意味着如果连接池为空,它...

    c3p0-0.9.5.2的三个jar包 数据库连接池

    C3P0是一个开源的Java数据库连接池,版本号为0.9.5.2,它主要用于提升应用程序在处理数据库连接时的效率和性能。在Java应用开发中,数据库连接的建立和关闭是一个相对耗时的过程,频繁进行这样的操作会大大降低系统...

    Oracle数据库的连接池

    C3P0是一个开源的Java连接池实现,专为Oracle数据库和其他支持JDBC的数据库设计。这个工具可以帮助开发者解决在多线程环境下频繁创建和关闭数据库连接所导致的性能问题。 C3P0连接池的核心功能包括: 1. **连接...

    c3p0连接池jar包

    C3P0连接池是Java开发中常用的数据库连接池组件,它由M-Fenyes创建并维护,旨在提供一个高效、灵活且稳定的数据库连接管理工具。数据库连接池在多线程应用中扮演着重要角色,它能有效地管理和复用数据库连接,避免...

    Oracle和c3p0连接池简单封装.

    本文将详细介绍如何在Java开发中对Oracle数据库与C3P0连接池进行简单的封装,以便于更有效地管理和使用数据库资源。 首先,理解连接池的基本概念是非常重要的。连接池是一种在应用启动时预创建一定数量的数据库连接...

    数据库连接池C3P0,jar包

    C3P0是一个开源的Java数据库连接池实现,它提供了一种灵活且功能丰富的数据库连接管理方式。在本文中,我们将深入探讨C3P0库以及如何在项目中使用jar包来实现数据库连接池。 C3P0是由M EHood创建的,它的全称是...

Global site tag (gtag.js) - Google Analytics