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 怎么回事啊
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 怎么回事啊
/**
* =================================================
* @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;
}