关于JTable与数据库的连接问题?

skywei777 2007-07-24 03:35:10
一个GUI界面上有一个表格,怎么样用JAVA写个方法,让它从数据库里的数据返回到GUI表格里,我以在网上查了很多,也没有一个结果,我对Java很感兴趣,目前自己在自学,希望前辈们能指点,指点,我将非常感谢!!
...全文
254 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
skywei777 2007-07-26
  • 打赏
  • 举报
回复
这个问题解决了,只要按照上面的程序,把Vector vect设置成全局变量就可以了
lionest 2007-07-25
  • 打赏
  • 举报
回复
没有直接可利用的API
只有自己写的函数 楼上的方法可行 但是在处理数据时要小心 容易出现错误
以前做了一个学生管理系统就遇到这样的情形
ericSola 2007-07-25
  • 打赏
  • 举报
回复

while (rs.next()) {
String[] str = {
rs.getString("id"), rs.getString("pwd")};
defaulttablemodel.addRow(str);
}

我是这样的 用的是 defaulttablemodel 的这个模型,
这个不怎么好,将就用,我就是用的他 呵呵
skywei777 2007-07-25
  • 打赏
  • 举报
回复
这个问题还是不懂,我在网上查了一下,帮我看看这段代码哪里错了
AbstractTableModel tm;
  //声明一个类AbstractTableModel对象
  JTable jg_table;//声明一个类JTable对象
  Vector vect;//声明一个向量对象
  JScrollPane jsp;//声明一个滚动杠对象
  String title[]={"职工号","职工名",
  "性别","出生日期","工资"};
  //二维表列名
  定制表格。
  实现抽象类AbstractTableModel对象tm中的方法:
  vect=new Vector();//实例化向量
  tm=new AbstractTableModel(){
  public int getColumnCount(){
  return title.length;}//取得表格列数
  public int getRowCount(){
  return vect.size();}//取得表格行数
  public Object getValueAt(int row,int column){
  if(!vect.isEmpty())
  return
  ((Vector)vect.elementAt(row)).elementAt(column);
  else
  return null;}//取得单元格中的属性值
  public String getColumnName(int column){
  return title[column];}//设置表格列名
  public void setValueAt
  (Object value,int row,int column){}
  //数据模型不可编辑,该方法设置为空
  public Class getColumnClass(int c){
  return getValueAt(0,c).getClass();
  }//取得列所属对象类
  public boolean isCellEditable(int row,int column){
  return false;}//设置单元格不可编辑,为缺省实现
  };
  定制表格:
  jg_table=new JTable(tm);//生成自己的数据模型
  jg_table.setToolTipText("显示全部查询结果");
  //设置帮助提示
  jg_table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
  //设置表格调整尺寸模式
  jg_table.setCellSelectionEnabled(false);
  //设置单元格选择方式
  jg_table.setShowVerticalLines(true);//
  设置是否显示单元格间的分割线
  jg_table.setShowHorizontalLines(true);
  jsp=new JScrollPane(jg_table);//给表格加上滚动杠
  显示查询结果。
  连接数据库:已给出。
  数据库查询:
  Statement stmt=connection.createStatement();
  ResultSet rs=stmt.executeQuery
  ("select * from worker");
  显示查询结果:
  vect.removeAllElements();//初始化向量对象
  tm.fireTableStructureChanged();//更新表格内容
  while(rs.next()){
  Vector rec_vector=new Vector();
  //从结果集中取数据放入向量rec_vector中
  rec_vector.addElement(rs.getString(1));
  rec_vector.addElement(rs.getString(2));
rec_vector.addElement(rs.getString(3));
rec_vector.addElement(rs.getDate(4));
  rec_vector.addElement(new Float(rs.getFloat(5)));
  vect.addElement(rec_vector);
  //向量rec_vector加入向量vect中
  }
  tm.fireTableStructureChanged();
  //更新表格,显示向量vect的内容
skywei777 2007-07-24
  • 打赏
  • 举报
回复
具体怎么做,能给点代码提示吗,最好是事列
joejoe1991 2007-07-24
  • 打赏
  • 举报
回复
最简单的方法
把查询出来的结果赋给一个二维数组 然后用这个二维数组来构造表格

62,623

社区成员

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

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