`
ioio
  • 浏览: 145222 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jdbc connector(3)

阅读更多
/**
* 資料事務提交 要先將自動提交設置狀態設置為不自動﹐然后才commit
*/
public void commit() throws SQLException {
try {
connection.commit();
} catch (SQLException e) {
LOG.error(e.toString(), e);
throw e;
}finally{
close();
}
}

/**
* 資料事務回滾,在執行SQL的過程中出現異常時執行 要先將自動提交設置狀態設置為不自動
*/
public void rollback() throws SQLException {
try {
connection.rollback();
} catch (SQLException e) {
LOG.error(e.toString(), e);
throw e;
}finally{
close();
}
}

/**
* 將查詢的結果放在一個ResultSet中 使用方法:<br>
* DBDAO dao = new DBDAO(); Result rs = dao.doSQLQueryRS(sql); 解析rs后要顯示關閉
* rs.close(); dao.close();
*
* @param sql
*            String 任何一條SQL查詢語句形如:select * from tlb_doc where id=?
* @return ResultSet 查詢結果返回對象集
* @throws SQLException
*/
public ResultSet executeQuery(String sql) throws SQLException {
resultset = null;
try {
statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
resultset = statement.executeQuery(sql);
connection.commit();//for DBLink與seq
} catch (SQLException e) {
LOG.error(e.toString(), e);
LOG.error("SQL:" + sql);
throw e;
}
return resultset;
}

/**
* 將查詢的結果放在一個數組中返回
* @param sql
* @param args
* @return
* @throws Exception
*/
public String[][] executeQueryArray(String sql, Object[] args) throws Exception {
String sTmp;
String[][] sArrRtn = null;
int iCol = 0, i = 0, j = 0;
boolean bFlg = false;
ResultSet rs = null;
ResultSetMetaData rsmd = null;
try {
rs = executeQuery(sql,args);
rsmd = rs.getMetaData();
iCol = rsmd.getColumnCount();
bFlg = rs.last();
if (bFlg)
i = rs.getRow();
rs.beforeFirst();
sArrRtn = new String[i + 1][iCol];
for (i = 0; i < iCol; i++) {
sTmp = rsmd.getColumnName(i + 1).trim();
sArrRtn[0][i] = sTmp;
}
while (rs.next()) {
j = j + 1;
for (i = 0; i < iCol; i++) {
Object o = rs.getObject(i + 1);
sTmp = String.valueOf(o == null ? "" : o);
sTmp = sTmp.equalsIgnoreCase("null") ? "" : sTmp;
sArrRtn[j][i] = sTmp;
}
}
} catch (SQLException e) {
LOG.error(e.toString(), e);
throw e;
} catch (Exception e) {
LOG.error(e.toString(), e);
throw e;
}
return sArrRtn;
}

/**
* 將查詢的結果放在一個ResultSet中 使用方法:<br>
* DBDAO dao = new DBDAO(); rs = dao.executeQuery(sql,obj); 解析rs后要顯示關閉
* rs.close(); dao.close();
*
* @param sql
*            String 任何一條SQL查詢語句形如:select * from tlb_doc where id=?
* @param args
*            Object[] 參數對象, 形如︰<p/> Object obj []= new Object[1]; </br>
*            obj[0] = new String("2"); </br>
* @return ResultSet 查詢結果返回對象集
* @throws SQLException
*/
public ResultSet executeQuery(String sql, Object[] args) throws SQLException {
resultset = null;
try {
preparedStatement = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
if (args != null) {
for (int k = 0; k < args.length; k++) {
preparedStatement.setObject(k + 1, args[k]);
}
}
resultset = preparedStatement.executeQuery();
connection.commit();//for DBLink與seq
} catch (SQLException e) {
LOG.error(e.toString(), e);
LOG.error("SQL:" + sql);
for (int i = 0; i < args.length; i++) {
LOG.error("args[" + i + "]" + args[i]);
}
throw e;
}
return resultset;
}

/**
* 執行SQL更新語句,針對PreparedStatement﹐可以用于事物處理
*
* @return int 執行成功的SQL條數
* @throws SQLException
*             SQL異常
*/
public int executeUpdate() throws SQLException {
int num = 0;
try {
if (preparedStatement != null) {
num = preparedStatement.executeUpdate();
if (isAutoCommit) {
connection.commit();
}
}
} catch (SQLException e) {
if (isAutoCommit) {
connection.rollback();
}
LOG.error(e.toString(), e);
throw e;
} finally {
if (preparedStatement != null) {
preparedStatement.close();
preparedStatement = null;
}
}
return num;
}

/**
* 執行SQL更新語句,針對Statement﹐可以用于事物處理
*
* @param sql
*            String 執行的SQL語句
* @return int 執行成功的SQL條數
*/
public int executeUpdate(String sql) throws SQLException {
int num = 0;
Statement statement = null;
try {
statement = createStatement();
num = statement.executeUpdate(sql);
if (isAutoCommit) {
connection.commit();
}
} catch (SQLException e) {
if (isAutoCommit) {
connection.rollback();
}
LOG.error(e.toString(), e);
throw e;
} finally {
if (statement != null) {
statement.close();
statement = null;
}
}
return num;
}

/**
* 執行資料更新操作,接收參數﹐可以用于執行多條操作的事物處理﹐可以回滾
*
* @param sql-String
*            增加,修改和刪除SQL語句,注意語句要帶?參數 形如:insert into tbl_group values(?,?,?)
* @param args []
*            Object參數物件陣列, 形如: <p/> Object obj []= new Object[3]; <br/>
*            obj[0] = new String("string1"); <br/> obj[1] = new
*            String("string2");<br/> obj[2] = new Integer(1);<br/>
* @return int 執行成功返回受影響的記錄數
*/
public int executeUpdate(String sql, Object[] args) throws SQLException {
int r = 0;
PreparedStatement preparedStatement = null;
try {
preparedStatement = connection.prepareStatement(sql);
if (args != null) {
for (int i = 0; i < args.length; i++) {
preparedStatement.setObject(i + 1, args[i]);
}
}
r = preparedStatement.executeUpdate();
if (isAutoCommit) {
connection.commit();
}
} catch (SQLException e) {
if (isAutoCommit) {
connection.rollback();
}
LOG.error(e.toString(), e);
throw e;
} finally {
if (preparedStatement != null) {
preparedStatement.close();
preparedStatement = null;
}
}
return r;
}
分享到:
评论

相关推荐

    Flink JDBC Connector 支持Oracle

    Flink JDBC Connector 支持Oracle , Flink 1.13.6 支持Oracle 11.2.0.4

    mssqlserve-mysql-oracle-jdbcconnector

    sqlserver的jdbc-odbc驱动,mysql的jdbc驱动,Oracle的jdbc驱动,比较全的,三个比较常用数据库的驱动,呵呵,有需要的自己下。以后还会更新一些其他方面的驱动,希望对大家有帮助,只是顺路上传一下。

    Flink jdbc connector 1.14.4

    Flink jdbc connector 1.14.4

    jdbc-connector.rar

    标题 "jdbc-connector.rar" 暗示了这个压缩包包含与Java数据库连接(JDBC)相关的组件。JDBC是Java编程语言中用于与各种类型的数据库进行交互的标准接口。让我们详细了解一下这些文件以及它们在JDBC中的作用: 1. *...

    flink-connector-jdbc-2.12-1.14.3-API文档-中英对照版.zip

    赠送jar包:flink-connector-jdbc_2.12-1.14.3.jar; 赠送原API文档:flink-connector-jdbc_2.12-1.14.3-javadoc.jar; 赠送源代码:flink-connector-jdbc_2.12-1.14.3-sources.jar; 赠送Maven依赖信息文件:flink-...

    flink-connector-jdbc-2.12-1.14.3-API文档-中文版.zip

    赠送jar包:flink-connector-jdbc_2.12-1.14.3.jar 赠送原API文档:flink-connector-jdbc_2.12-1.14.3-javadoc.jar 赠送源代码:flink-connector-jdbc_2.12-1.14.3-sources.jar 包含翻译后的API文档:flink-...

    jdbc-mysql-connector-j-8.0.31.jar jdbc-sqljdbc41.jar

    本话题将深入探讨两个关键的Java数据库连接器(JDBC)驱动,即`jdbc-mysql-connector-j-8.0.31.jar`(用于MySQL)和`jdbc-sqljdbc41.jar`(用于SQL Server),以及它们在JMeter中的应用。 首先,`jdbc-mysql-...

    基于Java语言的openGauss jdbc connector设计源码与实现

    openGauss JDBC connector便是这样一个桥梁,其设计目标是让Java程序能够通过JDBC API与openGauss数据库进行通信。本项目使用Java语言进行开发,通过编写和组织一系列Java源代码文件,提供了一套完整的openGauss...

    flink-connector-jdbc_2.11-1.14.4.jar

    flinkSQL包含clickhouse的jdbc的jar包

    flink-connector-jdbc-2.12-1.12.2.jar

    flink-connector-jdbc_2.12-1.12.2 支持Oracle

    gbase jdbc 驱动下载 gbase-connector-java

    首先,`gbase-connector-java-8.3.81.53-build55.2.1-bin.jar`是GBase JDBC驱动的一个特定版本,其中8.3.81.53可能是GBase数据库服务器的版本号,build55.2.1则是该驱动程序的构建版本。这个jar文件包含了所有必要的...

    flink-connector-jdbc_2.11-1.12.1.jar

    flink sql 连接clickhouse,需要修改flink -jdbc-connector 包,我已经编译完成,需要的自行下载

    Flink1.14.4自定义flink-connector-jdbc连接SQLServer和SAP数据库

    Flink1.14.4自定义flink-connector-jdbc连接SQLServer和SAP数据库

    mysql-connector-java-5.1.35 MySQL的jdbc驱动jar

    `mysql-connector-java-5.1.35`是MySQL官方提供的一个特定版本(5.1.35)的JDBC驱动包,它允许Java开发者通过编写Java代码与MySQL数据库进行交互,执行SQL语句,实现数据的增删改查等操作。 JDBC驱动主要分为四种...

    JDBC mysql-connector-java-5.1.6.

    就是一个JDBC连接池 MYSQL的驱动包 希望能帮助有需要的朋友们

    JDBC连接jar包mysql-connector-8.0.15.rar

    MySQL Connector/J遵循JDBC规范,使得Java开发者能够轻松地在Java应用程序中接入MySQL数据库,无论是桌面应用、Web应用还是企业级应用。 在Java项目中,要使用这个JDBC驱动,首先需要将mysql-connector-8.0.15.jar...

    mysql-connector-java Linux下MySQL的JDBC驱动Jar包

    3. “mysql-connector-java-3.1.12”: 这个版本的驱动是MySQL JDBC驱动的一个历史版本,发布于2014年。每个版本的驱动都有其特定的兼容性和性能优化,因此在使用时需确保与目标MySQL服务器版本相匹配。 4. 安装与...

    impala_jdbc_2.5.30_win_64

    Impala JDBC Connector for Cloudera Enterprise impala_jdbc_2.5.30.1049.zip 这个是window 64 版本的 没有积分请移步到 https://www.cloudera.com/downloads/connectors/impala/jdbc/2-5-30.html

    最新版 JDBC,版本号为mysql-connector-java-8.0.16

    最新版的JDBC驱动程序,即mysql-connector-java-8.0.16,是MySQL官方提供的用于连接Java应用程序到MySQL数据库的工具。这个版本的驱动程序支持最新的MySQL特性,并且在性能和稳定性上都有所提升。 在Java中,使用...

Global site tag (gtag.js) - Google Analytics