java原生数据库操作封装

来源:互联网 发布:mac mini 显示器 编辑:程序博客网 时间:2024/06/05 08:36
/**
 * 用来完成操作数据库集合操作的类
 * 封装了连接数据库、执行语句、查询结果、关闭数据库完整的操作方法
 * @author 15196
 *
 */
public class CompleteOpe {
 
 private Connection conn;
 private PreparedStatement ps;
 private ResultSet rs;
 
 
 public CompleteOpe(Connection conn, PreparedStatement ps, ResultSet rs) {
  this.conn = conn;
  this.ps = ps;
  this.rs = rs;
 }
 
 /**
  * 对外开放的方法,采用策略模式,先初始化conn、ps、rs然后通过doresult执行查询结果操作,最后关闭数据库
  * 通过sql、PsSet、DoResult实现不同业务的不同功能
  * @param sql
  * @param psSet
  * @param doResult
  * @return
  */
 public boolean completeOpe(String sql,PsSet psSet,DoResult doResult){
  initConnect(sql,psSet);
  doResult.doResult(ps);
  closeConnect();
  return true;
 }
 
 
 private boolean initConnect(String sql,PsSet psSet){
  conn = DBUtils.openConn();
  try {
   ps = conn.prepareStatement(sql);
  } catch (SQLException e) {
   e.printStackTrace();
   return false;
  }
  try{
   psSet.initPs(ps);
  }catch(Exception e){
   e.printStackTrace();
   return false;
  }
  return true;
 }
 
 private boolean closeConnect(){
  if(rs!=null){
   try {
    rs.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
  if(ps!=null){
   try {
    ps.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
  if(conn!=null){
   try {
    conn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
  return true;
 }
 
 
 public static interface PsSet{
  void initPs(PreparedStatement ps) throws Exception;
 }
 
 public static interface DoResult{
  void doResult(PreparedStatement ps);
 }
}
原创粉丝点击