发布网友 发布时间:2022-04-22 13:56
共5个回答
热心网友 时间:2023-11-07 16:41
Vector 这种方式添加表格数据,我没用过,我给你改了一下。你看一下,这个在你那里运行能不能成功?
有问题再联系。
/**
* 从oracle数据库中取出学生信息
*/
package com.test3;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class Test2 extends JFrame {
// rowDate用来存放行数据,columnNames存放行数据
DefaultTableModel model = null;
JTable jt;
JScrollPane jsp = null;
// 定义操作数据库需要的东西
PreparedStatement ps = null;
Connection ct = null;
ResultSet rs = null;
public static void main(String[] args) {
// TODO Auto-generated method stub
Test2 test2 = new Test2();
}
public Test2() {
// 设置列明
String[] columnNames = { "学号", "名字", "性别", "籍贯", "系别" };
// 初始化JTable
// ------------------从这里就开始出险问题了
model = new DefaultTableModel(columnNames, 0);
jt = new JTable(model);
// 初始化jsp JScrollPane
jsp = new JScrollPane(jt);
addRow();
// 把jsp放到jframe
this.add(jsp);
this.setSize(400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
private void addRow() {
try {
// 1.加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
ct = DriverManager
.getConnection("jdbc:ORACLE:thin:@localhost:1521:oracle",
"scott", "tiger");
ps = ct.prepareStatement("select * from stu");
rs = ps.executeQuery();
while (rs.next()) {
// rowDate可以存放多行
Vector hang = new Vector();
String[] row = { rs.getString("stuId"),
rs.getString("stuName"), rs.getString("stuSex"),
rs.getString("stuJg"), rs.getString("stuDEPT") };
// 加入到rowdate
model.addRow(row);
}
} catch (Exception e) {
// TODO: handle exception
System.out.println("数据库连接失败" + e.getMessage());
} finally {
try {
if (rs != null)
rs.close();
if (ps != null)
ps.close();
if (ct != null)
ct.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("数据库连接失败" + e.getMessage());
}
}
}
}
热心网友 时间:2023-11-07 16:42
类转换错误,对jswing不是特别熟悉,以下意见仅供参考:热心网友 时间:2023-11-07 16:42
没有楼上的几个说的那么复杂,其实就是你字符串字段出现错误了。追问可以指出来吗?我应该怎修改那。谢谢您的回答追答你点下错误的行数,看看是跳到具体的哪一行,发给我看看。
热心网友 时间:2023-11-07 16:43
典型的写代码不用心。热心网友 时间:2023-11-07 16:43
你的一些控件应该new在test2的构造方法里吧,你现在test2构造方法里什么都没有,new出来的对象不是什么都有没有吗