java 将数据库表连接到 JTable 总是报错

jzbgjsy 2009-09-27 08:23:58
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 怎么回事啊
...全文
71 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
乐乐不在这 2009-09-29
  • 打赏
  • 举报
回复
我给你个范文把

/**
* =================================================
* @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 Jtable

private 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.remark 备注信息 " +
"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;
}

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧