package com.printery.conn;import java.sql.*;public class db_conn {  String sDBDriver = "com.mysql.jdbc.Driver";
  String sConnStr = "jdbc:mysql://localhost/printery?user=root&useUnicode=true&characterEncoding=8859_1";
  Connection conn = null;
  Statement stmt = null;
  ResultSet rs = null;  public db_conn() {
    try {
      Class.forName(sDBDriver);
    }
    catch (java.lang.ClassNotFoundException e) {
      System.err.println("printery(): " + e.getMessage());
    }
  }///////////////////////////insert语句
  public void executeInsert(String sql) {
    try {
      conn = DriverManager.getConnection(sConnStr);
      stmt = conn.createStatement();
      stmt.executeUpdate(sql);
      stmt.close();
      conn.close();
    }
    catch (SQLException ex) {
      System.err.println("printery.executeUpdate:" + ex.getMessage());
    }
  }///////////////////////////数据库查询
  public ResultSet executeQuery(String sql) {
    try {
      conn = DriverManager.getConnection(sConnStr);
      stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                  ResultSet.CONCUR_READ_ONLY);
      rs = stmt.executeQuery(sql);
    }
    catch (SQLException ex) {
      System.err.println("printery.executeQuery:" + ex.getMessage());
    }
    return rs;
  }////////////////////////////update
  public void executeUpdate(String sql) {
    try {
      conn = DriverManager.getConnection(sConnStr);
      stmt = conn.createStatement();
      stmt.executeUpdate(sql);
      stmt.close();
      conn.close();
    }
    catch (SQLException ex) {
      System.err.println("printery.executeQuery: " + ex.getMessage());
    }
  }/////////////////////////////////数据库删除
  public void executeDelete(String sql) {
    try {
      conn = DriverManager.getConnection(sConnStr);
      stmt = conn.createStatement();
      stmt.executeUpdate(sql);
      stmt.close();
      conn.close();
    }
    catch (SQLException ex) {
      System.err.println("printery.executeDelete:" + ex.getMessage());
    }
  }  public void closeStmt() {
    try {
      stmt.close();
    }
    catch (SQLException e) {
      e.printStackTrace();
    }
  }  public void closeConn() {
    try {
      conn.close();
    }
    catch (SQLException e) {
      e.printStackTrace();
    }
  }}

解决方案 »

  1.   

    楼上的程序可能需优化一下,我最初曾想个以下构思:
        一、针对每一表建一Bean,只有setXXX和getXXX
        二、用jsp输入新数值,  (insert或update)
        三、用Servlet接收数据,并通过语句直接判断表中的字段定义然后自动转换,并接收jsp中的数据
        四、根据表单中的操作符如"Insert“等执行相应的操作。
    这样,通用性很好,但现在是学会了却没有机会用啊··。(技术还未转化为money)
      

  2.   

    楼上各位没明白我的意思,楼上的都是封装的数据库操作的方法,我需要的是真实操作数据库了
    ……
    public class DL{
        ……
        public String check(String sql){
           ……
           while(rs.next()){
              ……
           }
           return 
        }
    }
    --------------------------
    不是只简单的返回个记录集,而是通过记录集得到所需数据,然后在进行某些运算……直到返回值。
    我觉得javabean好象不能这样哦。
      

  3.   

    不是不能,这样就不叫封装了啊。难道你每个数据库操作页面都做一个这样的bean啊。
      

  4.   

    拜托,不是象楼上说的:
    ///////////////////////////数据库查询
      public ResultSet executeQuery(String sql) {
        try {
          conn = DriverManager.getConnection(sConnStr);
          stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                      ResultSet.CONCUR_READ_ONLY);
          rs = stmt.executeQuery(sql);
        }
        catch (SQLException ex) {
          System.err.println("printery.executeQuery:" + ex.getMessage());
        }
        return rs;
      }对数据库的操作方法进行封装。而是封装的业务逻辑,其中用到了记录集,从数据库中查询出某些值然后跟其他值通过计算,得到新的值返回
      

  5.   

    用Hibernate实现DAO接口,那个才叫高效