在Java中格式化Resultset

时间:2013-07-31 21:02:41

标签: java

我需要格式化从JDBC获得的结果集

我使用的是现成的包装吗,

http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/query/ResultSetFormatter.html

我在上面的网站上看到它,但不知道如何获取jar文件

package mysql.first;
import com.hp.hpl.jena.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;

public class MySQLAccess {
  private Connection connect = null;
  private Statement statement = null;
  private PreparedStatement preparedStatement = null;
  private int dmlresultSet = 0;
  private ResultSet ddlresultSet = null;

  public static void main(String[] args) throws Exception {
      MySQLAccess dao = new MySQLAccess();
        //dao.readDataBase();
        dao.createtemptable();
  }

  public void createtemptable() throws Exception{
      try
      {
          // This will load the MySQL driver, each DB has its own driver
          Class.forName("com.mysql.jdbc.Driver");
          // Setup the connection with the DB
          connect = DriverManager
              .getConnection("jdbc:mysql://localhost/feedback?"
                  + "user=sqluser&password=sqluserpw");

          connect.setAutoCommit(false);

          // Statements allow to issue SQL queries to the database
          statement = connect.createStatement();
          // Result set get the result of the SQL query

          String sql = "CREATE TEMPORARY TABLE REGISTRATION " +
                  "(id INTEGER not NULL, " +
                  " first VARCHAR(255), " + 
                  " last VARCHAR(255) )"; 

          dmlresultSet = statement
              .executeUpdate(sql);
          ResultSetFormattter.out(dmlresultSet);
          System.out.println("Temp table created return code = " + dmlresultSet);

          insertRows(1,"TOM","LEO", connect);
          selectRows(connect);
          insertRows(2,"BRAN","LEY", connect);
          selectRows(connect);
          updateRows(connect);
          selectRows(connect);
          insertRows(3,"DI","ROBY", connect);

      }
      catch (Exception e){
            throw e;  
      } finally{
          close();
      }

  }

  private void insertRows(int id, String first, String last, Connection connect) throws SQLException {
      preparedStatement = connect
              .prepareStatement("insert into  REGISTRATION values (?, ?, ?)");
      preparedStatement.setString(2, first);
      preparedStatement.setString(3, last);
      preparedStatement.setInt(1, id);
      preparedStatement.executeUpdate();

  }

  private void selectRows(Connection connect) throws SQLException {
      preparedStatement = connect
              .prepareStatement("SELECT id, first, last from REGISTRATION");
      ddlresultSet = preparedStatement.executeQuery();
      writeResultSet(ddlresultSet);

  }

  private void updateRows(Connection connect) throws SQLException {
      preparedStatement = connect
              .prepareStatement("Update REGISTRATION set first = 'RENAMED' WHERE ID = 1");
      dmlresultSet = preparedStatement.executeUpdate();
  }

  private void writeResultSet(ResultSet resultSet) throws SQLException {
      System.out.println("                                                        ");
      System.out.println("*****           Printing the Rows                  *****");
        // ResultSet is initially before the first data set
        while (resultSet.next()) {
          // It is possible to get the columns via name
          // also possible to get the columns via the column number
          // which starts at 1
          // e.g. resultSet.getSTring(2);
          int id = resultSet.getInt("id");
          String first = resultSet.getString("first");
          String last = resultSet.getString("last");
          System.out.println("ID: " + id);
          System.out.println("First: " + first);
          System.out.println("Last: " + last);

        }
      }


  // You need to close the resultSet
    private void close() {
    try {
      if (ddlresultSet != null) {
        ddlresultSet.close();
      }

      if (statement != null) {
        statement.close();
      }

      if (connect != null) {
        connect.close();
      }
    } catch (Exception e) {

    }
  }
}

1 个答案:

答案 0 :(得分:1)

如果你想要上面的库(Apache jena),请使用以下链接:

http://jena.apache.org/download/index.html

或从这里选择二进制文件:

http://www.apache.org/dist/jena/binaries/