完整JDBC封装

来源:互联网 发布:阿里云华东2 编辑:程序博客网 时间:2024/05/05 03:29
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();}         }    }

原创粉丝点击