⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 operationcoreimpl.java

📁 JDBC封装之connectionFactory
💻 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 + -