引用 一个完整的JDBC封装类

 

引用

风之子一个完整的JDBC封装类
import java.sql.Connection;   
import java.sql.DriverManager;   
import java.sql.ResultSet;   
import java.sql.SQLException;   
import java.sql.Statement;   
  
/**  
 * JDBC封装类  
 * @author ZhangShuqing  
 *  
 */  
public class DB {   
    private ResultSet rs;   
    private Statement stm;   
    private Connection con;   
    private String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=fangtian";   
    private String classname = "com.microsoft.jdbc.sqlserver.SQLServerDriver";   
    private String username =  "sa";   
    private String password =  "";   
       
    /*----------------------------------------------------*/  
  /**  
   * 构造函数  
   */  
    public DB(){   
     try{   
      Class.forName(classname);//加载数据库驱动   
     }catch(ClassNotFoundException e){   
      e.printStackTrace();   
     }   
    }   
  /**  
   * 创建数据库连接  
   */  
    public Connection getCon(){    
       try{   
           con=DriverManager.getConnection(url,username,password);   
       }catch(Exception e){e.printStackTrace(System.err);}   
       return con;   
    }   
       
    /*----------------------------------------------------*/  
  /**  
   * 获取Statement记录  
   */  
    public Statement getStm(){   
       try{   
          con=getCon();   
          stm=con.createStatement();   
       }catch(Exception e){e.printStackTrace(System.err);}   
        return stm;   
    }   
    /**  
     * 调法上面的方法,查询数据库,返回单个结果  
     * 其他类调用过程如下:  
     * DB db=new DB();  
  *   ResultSet r=db.getrs(sql);  
  *   while(r.next()){  
  *    String s1 = r.getInt(1);  
  * }  
     */  
    public ResultSet getrs(String sql){   
     if(sql==null)sql="";   
  try{   
   stm=getStm();   
   rs=stm.executeQuery(sql);   
  }catch(SQLException e){e.printStackTrace();}   
  return rs;   
 }   
       
    /*----------------------------------------------------*/  
    /**  
     * 获取Statement记录集  
     */  
    public Statement getStmed(){   
     try{   
         con=getCon();   
         stm=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);   
     }catch(Exception e){e.printStackTrace(System.err);}   
     return stm;   
    }   
    /**  
     * 调法上面的方法,查询数据库,返回一个结果集  
     * 其他类调用过程如下:  
     * DB db=new DB();  
  *   ResultSet rs=db.getRs(sql);  
  *   if(rs.next()){  
  *    String s1 = r.getInt(1);  
  *      String s2 = r.getInt(2);  
  *      String s3 = r.getInt(3);  
  * }  
     */  
    public ResultSet getRs(String sql){   
     if(sql==null)sql="";   
  try{   
   stm=getStmed();   
   rs=stm.executeQuery(sql);   
  }catch(SQLException e){e.printStackTrace();}   
  return rs;   
 }   
       
    /*----------------------------------------------------*/  
    /**  
     * 对数据库进行更新操作,适合SQL的insert语句和update语句  
     * 返回一个int值,表示更新的记录数  
     * 若返回为0,表示更新失败  
     * 其他类调用过程如下:  
     * DB db=new DB();  
  *   int i=db.update(sql);  
  *   f(i==0){  
  *    return mapping.findForward("false");  
  * }  
  *  return mapping.findForward("success");  
     */  
    public int update(String sql){   
  int num=0;   
     if(sql==null)sql="";   
     try{   
         stm=getStmed();   
         num=stm.executeUpdate(sql);   
     }catch(SQLException e){e.printStackTrace();num=0;}   
     return num;   
    }   
  
    /*----------------------------------------------------*/  
    /**  
     * 删除数据库的中数据  
     * 其他类调用过程如下:  
     * DB db=new DB();  
  *   db.delete(sql);  
     */  
    public boolean delete(String sql){   
     boolean ok;   
     if(sql==null)sql="";   
     try{   
      stm=getStmed();   
      ok=stm.execute(sql);   
     }catch(SQLException e){e.printStackTrace();}   
     return true;   
    }   
       
    /**  
     * 断开数据库连接  
     * 其他类调用过程如下:  
     * DB db=new DB();  
  *   db.closed();  
     */  
    public void closed(){   
     try{   
      if(rs!=null)rs.close();   
     }catch(Exception e){e.printStackTrace();}   
     try{   
      if(stm!=null)stm.close();   
     }catch(Exception e){e.printStackTrace();}   
     try{   
      if(con!=null)con.close();   
     }catch(Exception e){e.printStackTrace();}        
    }   
       
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值