分享

An easy JDBC wrapper(Table.java)

 smoking_boy 2005-09-18
// $Id$

import java.sql.*;

public class Table
{
  private Database database;
  private String name;

  public Table( Database database, String name ) {
    this.database = database;
    this.name = name;
  }

  private RowSet execute( String criteria ) throws SQLException {
    Connection con = database.getConnection();
    Statement st = con.createStatement();
    ResultSet rs = st.executeQuery( "select * from "+name+
      (criteria==null?"":(" where "+criteria)) );
    ResultSetMetaData rsmd = rs.getMetaData();
    RowSet rows = new RowSet();
    int cols = rsmd.getColumnCount();
    while (rs.next()) {
      Row row = new Row();
      for (int i=0; i<cols; ++i) {
        String name = rsmd.getColumnName( i+1 );
        String value = rs.getString( i+1 );
        row.put( name, value );
      }
      rows.add( row );
    }
    con.close();
    return rows;
  }

  public Row getRow( String criteria ) throws SQLException {
    RowSet rs = execute( criteria );
    return rs.get( 0 );
  }

  public RowSet getRows( String criteria ) throws SQLException {
    RowSet rs = execute( criteria );
    return rs;
  }

  public RowSet getRows() throws SQLException {
    return getRows( null );
  }

  public void putRow( Row row ) throws SQLException {
    putRow( row, null );
  }

  public void putRow( Row row, String conditions ) throws SQLException {
    String ss = "";
    if (conditions==null) {
      ss = "INSERT INTO "+name+" VALUES (";
      for (int i=0; i<row.length(); ++i) {
        String v = row.get( i );
        ss += "‘"+v+"‘";
        if (i != row.length()-1)
          ss += ", ";
      }
      ss += ")";
    } else {
      ss = "UPDATE "+name+" SET ";
      for (int i=0; i<row.length(); ++i) {
        String k = row.getKey( i );
        String v = row.get( i );
        ss += k+"=‘"+v+"‘";
        if (i != row.length()-1)
          ss += ", ";
      }
      ss += " WHERE ";
      ss += conditions;
    }

    System.out.println( "SS "+ss );
    Connection con = database.getConnection();
    Statement st = con.createStatement();
    st.executeUpdate( ss );
  }
}

     

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多