import java.sql.*;
import javax.swing.*;public class CreatTable1 {
 private ResultSet res;
 public CreatTable1() {}
 
 public void tableSelect(String tablename) {
  Connection conn = null;
  Statement statement = null;
  try {
   conn = DBConnection.testConnection(); ////DBConnection类用于连接数据库,且连接成功
   statement = conn.createStatement();
   res = statement.executeQuery("select *from " +tablename);
   res.last();    //////问题好像出在这,怎么改都不行
   while(res.next()) {
    int id = res.getInt(1);
    String name = res.getString(2);
    boolean part = res.getBoolean(3);
    String special = res.getString(4);
    String course = res.getString(5);
    System.out.print(String.valueOf(id) + name + String.valueOf(part) + special + course +"\n");
   }
  } catch(Exception e) {
   e.printStackTrace();
  }
 
 }
 
 public static void main(String[] args) {
  CreatTable1 table = new CreatTable1();
  table.tableSelect("Teacher");
 }
}运行后报错:Result set type is TYPE_FORWARD_ONLY
然后改为 statement = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,   
                     ResultSet.CONCUR_UPDATABLE);后 又报错String index out of range: -1 怎么回事啊 

解决方案 »

  1.   

    我给你个范文把
    /**
     * =================================================
     * @author XL
     * 2009-06-10
     * =================================================
     */
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.Toolkit;
    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 javax.swing.JOptionPane;
    import javax.swing.JTable;public class ConnectionToServer {
    Connection con = null;
    /**
     * =======================================================================
     * [## public Connection getPureDriver(){} ]: 
     * 参数   :无
     * 返回值 :JPanel
     * 修饰符 :public
     * 说明   :建立纯java驱动,连接数据库
     * =======================================================================
     */
    public Connection getPureDriver(){
    try {
    //加载驱动
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

    //创建url
    String url = "jdbc:microsoft:sqlserver://localhost:1433;databaseName=Troyhotel";
    //核对密码以及url
    con = DriverManager.getConnection(url, "sa", "sa"); } catch (Exception e) {
    JOptionPane.showMessageDialog(null, "数据库连接失败......", "错误", JOptionPane.ERROR_MESSAGE);
    }
    return con;
    }

    /**
     * =======================================================================
     * [## public  ResultSet executeQuery(String sql){} ]: 
     * 参数   :有,用于传入sql语句
     * 返回值 :JPanel
     * 修饰符 :public
     * 说明   :创建一个数据集
     * =======================================================================
     */
    public  ResultSet executeQuery(String sql) {
    PreparedStatement ps = null;
    ResultSet rs = null;
    try {
    con = this.getPureDriver();
    //建立高级载体和传入sql语句
    ps = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
    rs = ps.executeQuery();
    }catch(Exception e) {
    e.printStackTrace() ;
    }
    return rs ;
    }
    }
    Connection to Jtableprivate JTable getJTablehotelGuQuery() {
    if (jTablehotelGuQuery == null) {
    // jTablehotelGuQuery.getTableHeader().setReorderingAllowed(false);//设置表格不能拖动
    String sql = "select tci.room_nums 房间号码, trt.r_type_name 房间类型," +
     "trt.r_price 房间价格,tci.guest_name 客户姓名," +
     "tci.guest_sex 客户性别,in_time 入住时间," +
     "tci.address 客户地址,tci.deposit 押金," +
     "tci.re 备注信息 " +
     "from t_checkIn tci,t_roomtype trt" +
     " where tci.r_type_id = trt.r_type_id";
    MateData md = new MateData(new ConnectionToServer().executeQuery(sql));
    jTablehotelGuQuery = new JTable(md);//讲查询出来的数据保存到这个表里面
    }
    return jTablehotelGuQuery;
    }