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

jdbc connector(4)

阅读更多
/**
*
* 執行多條SQL語句,用半形分號分隔﹐可以設置isAutoCommit的屬性﹐然后commit(),rollback() 使用方法:<br>
* DBDAO dao = new DBDAO(); //或者直接調用帶參數的構造方法﹐不再設置isAutoCommit的屬性
* dao.setAutoCommit(false); int[] count = dao.doBatch(sql); dao.commit();
* //或者dao.rollback(); dao.close();
*
* @param sql
*            String 形如:"select * from tlb_a;delete from tlb_b"
* @return int[] 對應分號相隔的sql語句執行成功的條數
* @throws SQLException
*             SQL異常
* @deprecated instead use
*             <code>doBatch(String sql, Object[][] param)</code>
*/
@Deprecated
public int[] doBatch(String sql) throws SQLException {
int[] rowResult = null;
String a;
Statement statement = null;
try {
statement = connection.createStatement();
java.util.StringTokenizer st = new java.util.StringTokenizer(sql, ";");
while (st.hasMoreElements()) {
a = st.nextToken();
statement.addBatch(a);
}
rowResult = statement.executeBatch();
} catch (SQLException e) {
LOG.error(e.toString(), e);
throw e;
} finally {
if (statement != null) {
statement.close();
statement = null;
}
}
return rowResult;
}
/**
     * 新增批處理方法 支持SQL預編譯 ,但一次只能處理一個SQL.<br>
     * <b> 注意:<br>
     * <ul>
     * <li>為避免用戶漏置 autocommit參數,出現非預期的結果,本方法內置 autoCommit=false
     * <li>方法內未調用connection.commit(),connection.close()方法,需用戶自行調用.
     * <li>方法內置 connection.rollback(),用戶只需捕獲異常即可.</b>
     * </ul>
     * 例如:
     *
     * <pre>
     * DBDAO db = new DBDAO();
     * String sql = "update table1 set column1=?, column2=? where id=?";
     * Object[][] param = { { "value11", "value12", 1 },
     *                      { "value21", "value22", 2 },
     *                     { "value31", "value32", 3 } };
     * db.doBatch(sql, param);
     * </pre>
     * @param sql
     * @param param
     * @return
     * @throws SQLException
     */


/**
* 新增批處理方法 支持SQL預編譯 ,但一次只能處理一個SQL.<br>
* <b> 注意:<br>
* <ul>
* <li>為避免用戶漏置 autocommit參數,出現非預期的結果,本方法內置 autoCommit=false
* <li>方法內未調用connection.commit(),connection.close()方法,需用戶自行調用.
* <li>方法內置 connection.rollback(),用戶只需捕獲異常即可.</b>
* </ul>
* 例如:
*
* <pre>
* DBDAO db = new DBDAO();
* String sql = &quot;update table1 set column1=?, column2=? where id=?&quot;;
* Object[][] param = { { &quot;value11&quot;, &quot;value12&quot;, 1 }, { &quot;value21&quot;, &quot;value22&quot;, 2 }, { &quot;value31&quot;, &quot;value32&quot;, 3 } };
* db.doBatch(sql, param);
* </pre>
*
* @param sql
* @param param
* @return
* @throws SQLException
*/
public int[] doBatch(String sql, Object[][] param) throws SQLException {
int[] rowResult = null;
PreparedStatement pstmt = null;
try {
connection.setAutoCommit(false);
pstmt = connection.prepareStatement(sql);
for (int i = 0; i < param.length; i++) {
for (int j = 0; j < param[i].length; j++)
pstmt.setObject(j + 1, param[i][j]);
    pstmt.addBatch();
}
rowResult = pstmt.executeBatch();
} catch (SQLException e) {
connection.rollback();
LOG.error(e.toString(), e);
throw e;
} finally {
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
}
return rowResult;
}

/**
* close statement object
*
* @throws SQLException
*/
public void closeStatement() throws SQLException {
if (statement != null) {
statement.close();
statement = null;
}
}

/**
* close preparedstatement object
*
* @throws SQLException
*/
public void closePreparedStatement() throws SQLException {
if (preparedStatement != null) {
preparedStatement.close();
preparedStatement = null;
}
}

/**
* 關閉連接。 <p/>
*
* @throws SQLException
*             SQL異常
*/
public void close() throws SQLException {
try {
if (statement != null) {
statement.close();
statement = null;
}
if (preparedStatement != null) {
preparedStatement.close();
preparedStatement = null;
}
if (resultset != null) {
resultset.close();
resultset = null;
}
if (connection != null) {
connection.close();
connection = null;
}
} catch (SQLException e) {
LOG.error(e.toString(), e);
throw e;
}
}
/**
* 調試程式時使用
*
* @param sql
* @param pram
* @return
*/
public static String toSqlString(String sql, Object[] pram) throws Exception {
String str = sql;
try {
for (int i = 0; i < pram.length; i++) {
try {
str = str.replaceFirst("\\?", "'" + pram[i] + "'");
} catch (PatternSyntaxException e) {
e.printStackTrace();
}
}
} catch (Exception e) {
LOG.error(e);
}
LOG.info(str);
return str;
}
分享到:
评论

相关推荐

    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-...

    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

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

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

    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 包,我已经编译完成,需要的自行下载

    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...

    ojdbc14+sqljdbc4-2.0+mysql-connector-java-5.1.41

    总之,ojdbc14、sqljdbc4-2.0和mysql-connector-java-5.1.41是Java应用程序(如Kettle)与Oracle、SQL Server和MySQL数据库进行交互的基础,它们在数据集成、数据分析等场景中扮演着关键角色。在使用过程中,务必...

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

    本篇文章将详细讲解“mysql-connector-java”在Linux下作为MySQL的JDBC驱动Jar包的相关知识点。 1. JDBC简介: JDBC是Java平台上的一个标准接口,它允许Java应用程序通过API与各种类型的数据库进行通信。JDBC提供...

    sqljdbc41.jar和mysql-connector-java-5.1.13-bin.jar

    标题中的"sqljdbc41.jar"和"mysql-connector-java-5.1.13-bin.jar"是两个不同的Java数据库连接器(JDBC Drivers),它们分别用于连接Microsoft SQL Server和MySQL数据库。 首先,我们来详细了解sqljdbc41.jar。这是...

    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

Global site tag (gtag.js) - Google Analytics