?? operationcoreimpl.java
字號:
package com.passedbylove.database.core;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
/** 類名:OperationCoreImplements<br>
*
* 作用: 該類實現IOperationCore接口的所有方法<br>
*
* 創建人:被愛情路過<br>
*
* 創建日期:2008.11.11<br> */
public class OperationCoreImpl implements IOperationCore {
protected Connection aConnection = null;
protected Statement aStatement = null;
protected ResultSet aResultSet = null;
protected ResultSetMetaData rsmd = null;
protected static OperationCoreImpl m_instance = null;
/** Singleton 即單例(態)模式,用來生成對象唯一實例的方法
*
* @return OperationCoreImplements的一個實例
* @throws Exception */
public static OperationCoreImpl createFactory() throws Exception {
if(m_instance==null)
m_instance=new OperationCoreImpl();
return m_instance;
}
/** @exception Exception */
public OperationCoreImpl() throws Exception {
init();
}
private void init() throws Exception{
aConnection=ConnectionFactory.getConnection();
}
/**
* 釋放系統連接資源
*/
public void dispose() {
try {
if(aResultSet!=null)
aResultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(aStatement!=null)
aStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(aConnection!=null)
aConnection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/** sql更新語句
*
* @param queryString 查詢語句
* @return 返回一個<code>ResultSet</code>結果集
*
* @exception SQLException */
public ResultSet executeQuery(String queryString) {
try {
aStatement = aConnection.createStatement();
aResultSet = aStatement.executeQuery(queryString);
} catch (SQLException e) {
aResultSet=null;
e.printStackTrace();
}
return aResultSet;
}
/**
* sql更新語句
*
* @param updateString 數據庫更新語句
* @return 更新數據庫影響行數
*
* @exception SQLException */
public int executeUpdate(String updateString) {
int effectedRows=0;
try{
aConnection.setAutoCommit(false);
aStatement = aConnection.createStatement();
effectedRows = aStatement.executeUpdate(updateString);
aConnection.commit();
}catch(SQLException ex){
System.out.println("數據庫寫操作失敗!");
if(aConnection!=null)
{
try {
aConnection.rollback();
System.out.println("JDBC事務回滾成功");
} catch (SQLException e) {
System.out.println("JDBC事務回滾失敗");
e.printStackTrace();
}
}
}
return effectedRows;
}
/**
* 讀取queryString查詢結果集<code>ResultSet</code>表中的所有列名
*
* @param queryString 用于返回<code>ResultSet</code>結果集的語句
* @return 表中的所有列名
* @throws SQLException */
public Collection<String> getColumnNames(String queryString) {
ArrayList<String> ColumnNames=new ArrayList<String>();
try {
aResultSet=executeQuery(queryString);
ResultSetMetaData rsmd=aResultSet.getMetaData();
int j=rsmd.getColumnCount();
for(int k=0;k<j;k++){
ColumnNames.add(rsmd.getColumnName(k+1));
}
} catch (SQLException e) {
ColumnNames=null;
e.printStackTrace();
}
return ColumnNames;
}
/**
* 讀取queryString查詢結果集<code>ResultSet</code>表中的所有字段類型名稱
*
* @param queryString 用于返回查詢結果集的語句
* @return 表中的所有字段類型名稱
* @throws SQLException */
public Collection<String> getColumnTypeNames(String queryString) {
ArrayList<String> ColumnNames=new ArrayList<String>();
try {
aResultSet=executeQuery(queryString);
ResultSetMetaData rsmd=aResultSet.getMetaData();
int j=rsmd.getColumnCount();
for(int k=0;k<j;k++){
ColumnNames.add(rsmd.getColumnTypeName(k+1));
}
} catch (SQLException e) {
ColumnNames=null;
e.printStackTrace();
}
return ColumnNames;
}
/**
* 讀取列名
*
* @param columIndex 列索引
* @param queryString 提供ResultSet二維表的查詢字符串
* @return ResultSet表中的指定的列名
*
* @exception SQLException */
public String getColumnName(int columIndex, String queryString) {
String columnName=null;
try {
aResultSet=executeQuery(queryString);
rsmd=aResultSet.getMetaData();
columnName=rsmd.getColumnName(columIndex + 1);
} catch (SQLException e) {
e.printStackTrace();
}
return columnName;
}
/**
* 讀取列數個數
*
* @param queryString 查詢語句
* @return Transact-SQL 查詢后的虛擬表的列數
*
* @exception SQLException */
public int getColumnCount(String queryString) {
int columnCount=0;
try {
aResultSet=executeQuery(queryString);
ResultSetMetaData rsmd=aResultSet.getMetaData();
columnCount = rsmd.getColumnCount();
} catch (SQLException e) {
e.printStackTrace();
}
return columnCount;
}
/**
* 讀取行個數
*
* @param queryString 查詢語句
* @return Transact-SQL 查詢后的虛擬表的行數
*
* @exception SQLException */
public int getRowCount(String queryString) {
int rowCount=0;
try {
aResultSet=executeQuery(queryString);
while(aResultSet.next())
rowCount=aResultSet.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
}
return rowCount;
}
/**
* 獲取ResultSet二維表中指定位置的值,目前只支持mysql
*
* @param rowIndex 行索引
* @param columnIndex 列索引
* @param queryString 產生一個ResultSet結果集的查詢語句
* @return 指定位置的數據記錄
*
* @exception SQLException */
public Object getValueAt(int rowIndex, int columnIndex, String queryString) {
Object values=null;
try {
aResultSet=executeQuery(queryString);
aResultSet.absolute(rowIndex + 1);
values=aResultSet.getObject(columnIndex + 1);
} catch (SQLException e) {
e.printStackTrace();
}
return values;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -