Kimi's NutShell

我荒废的今日,正是昨日殒身之人祈求的明日

BlogJava 新随笔 管理
  141 Posts :: 0 Stories :: 75 Comments :: 0 Trackbacks

package classmate;
import java.sql.*;

import javax.sql.DataSource;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class DataStore {
 
 DataSource dataSource = null;
 private static Connection conn = null;
 private Statement stmt = null;
 private boolean hadErrors = false;
 
 //construct
 public DataStore(DataSource dataSource) throws Exception{
  this.dataSource = dataSource;
  conn = dataSource.getConnection();
  stmt = conn.createStatement();
 }
 
 //invoke transaction
 public void beginTransaction() throws SQLException{
  conn.setAutoCommit(false);
 }
 
 //perform transaction
 public void commitTransaction() throws SQLException{
  //hadErrors = false
  if(!hadErrors){
   conn.commit();
  }
  else{  //hadErrors = true
   conn.rollback();
   hadErrors = false;
  }
  hadErrors = false;
  conn.setAutoCommit(true);
 }
 
 //mark error
 public void ErrorOccur(){
  hadErrors = true;
 }
 
 //execute insert,delete,update
 synchronized public void execute(String sql) throws SQLException{
  if(stmt != null)
   stmt.executeUpdate(sql);
  else{
   Log log = LogFactory.getLog("mylog");
   log.error("fail to execute sql");
  }
 }
 
 //execute select
 synchronized public ResultSet read(String sql) throws SQLException{
  if(stmt != null){
   ResultSet tmp = null;
   tmp = stmt.executeQuery(sql);
   return tmp;
  }else{
   return null;
  }
 }
 
 // count of result
 synchronized public int readCount(String sql) throws SQLException{
  int nCount = 0;
  try{
   if(stmt != null){
    ResultSet tmp = null;
    tmp = stmt.executeQuery(sql);
    if(tmp != null && tmp.next()){
     nCount = tmp.getInt(1);
    }else{
     nCount = 0;
    }
   }
  }catch(SQLException e){
   nCount = 0;
  }
  return nCount;
 }
 
 // close db
 synchronized public void stop(){
  try{
   if(conn != null){
    conn.close();
    stmt.close();
   }
  }catch(Exception e){
   Log log = LogFactory.getLog("mylog");
   log.error("fail to close db- DataStore.java");
  }finally{
   conn = null;
  }
 }
}

还在研究,貌似DCL的问题还存在。

posted on 2007-10-24 16:35 Kimi 阅读(467) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航: