Java SQL Query ExecuteQuery(Connection conn, PreparedStatement preparedStatement, PreparedStatement lockStatement, String tablename)

Here you can find the source of ExecuteQuery(Connection conn, PreparedStatement preparedStatement, PreparedStatement lockStatement, String tablename)

Description

Execute Query

License

Open Source License

Declaration

public static ResultSet ExecuteQuery(Connection conn, PreparedStatement preparedStatement,
            PreparedStatement lockStatement, String tablename) throws SQLException 

Method Source Code

//package com.java2s;
/**                                                                                                                                                                                
 * Copyright (c) 2012 USC Database Laboratory All rights reserved. 
 *
 * Authors:  Sumita Barahmand and Shahram Ghandeharizadeh                                                                                                                            
 *                                                                                                                                                                                 
 * Licensed under the Apache License, Version 2.0 (the "License"); you                                                                                                             
 * may not use this file except in compliance with the License. You                                                                                                                
 * may obtain a copy of the License at                                                                                                                                             
 *                                                                                                                                                                                 
 * http://www.apache.org/licenses/LICENSE-2.0                                                                                                                                      
 *                                                                                                                                                                                 
 * Unless required by applicable law or agreed to in writing, software                                                                                                             
 * distributed under the License is distributed on an "AS IS" BASIS,                                                                                                               
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or                                                                                                                 
 * implied. See the License for the specific language governing                                                                                                                    
 * permissions and limitations under the License. See accompanying                                                                                                                 
 * LICENSE file.                                                                                                                                                                   
 *//*www  .  j av a 2  s  .  c  om*/

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Main {
    public static final boolean LOCK_TABLE_EXPLICIT = false;

    public static ResultSet ExecuteQuery(Connection conn, PreparedStatement preparedStatement,
            PreparedStatement lockStatement, String tablename) throws SQLException {
        String tablename_array[] = { tablename };
        return ExecuteQuery(conn, preparedStatement, lockStatement, tablename_array);
    }

    public static ResultSet ExecuteQuery(Connection conn, PreparedStatement preparedStatement,
            PreparedStatement lockStatement, String[] tablenames) throws SQLException {
        boolean prev_autocommit_val = conn.getAutoCommit();
        ResultSet rs = null;

        conn.setAutoCommit(false);
        try {
            if (LOCK_TABLE_EXPLICIT) {
                for (String tablename : tablenames) {
                    LockRow(lockStatement, tablename, false);
                }
            }
            rs = preparedStatement.executeQuery();
            conn.commit();
        } catch (SQLException e) {
            conn.rollback();
            conn.setAutoCommit(prev_autocommit_val);
            throw e;
        }
        conn.setAutoCommit(prev_autocommit_val);
        return rs;
    }

    public static void LockRow(PreparedStatement pstmt, String tablename, boolean exclusiveMode)
            throws SQLException {
        pstmt.executeUpdate(getLockStatement(tablename, exclusiveMode));
    }

    public static String getLockStatement(String tablename, boolean exclusiveMode) {
        if (exclusiveMode) {
            return "LOCK TABLE " + tablename + " IN EXCLUSIVE MODE";
        } else {
            return "LOCK TABLE " + tablename + " IN ROW SHARE MODE";
        }
    }
}

Related

  1. executeCsvQuery(Connection csv, String csvTableName)
  2. executeDDL(String query, Connection connection)
  3. executeForResult(Connection conn, String query, String... args)
  4. ExecuteNoneQuerys(String cmdtext, Object[] parms)
  5. executeQuery(Connection c, String query)
  6. executeQuery(Connection connection)
  7. executeQuery(Connection connection, String query)
  8. executeQuery(Connection dbConnection, String selectString)
  9. executeQuery(java.sql.Connection con, String select, Object pk)