关于JTable与数据库的连接问题? 一个GUI界面上有一个表格,怎么样用JAVA写个方法,让它从数据库里的数据返回到GUI表格里,我以在网上查了很多,也没有一个结果,我对Java很感兴趣,目前自己在自学,希望前辈们能指点,指点,我将非常感谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 while (rs.next()) { String[] str = { rs.getString("id"), rs.getString("pwd")}; defaulttablemodel.addRow(str); }我是这样的 用的是 defaulttablemodel 的这个模型,这个不怎么好,将就用,我就是用的他 呵呵 没有直接可利用的API 只有自己写的函数 楼上的方法可行 但是在处理数据时要小心 容易出现错误以前做了一个学生管理系统就遇到这样的情形 这个问题还是不懂,我在网上查了一下,帮我看看这段代码哪里错了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的内容 这个问题解决了,只要按照上面的程序,把Vector vect设置成全局变量就可以了 java如何防止两个人同时更改数据库,造成覆盖? JAVA与数据库连接问题 新手问一个简单问题 求一个java版的外部排序算法 JAVA的参数传递问题 JDK常用的几个类是哪一些? xml的输出:我已经建好一个完整的document对象,如何把它输出成string呢? (新手) 在对线程进行控制的时候,经常会捕获InterruptedException类异常,请问到底在什么情况下会抛出InterruptedException异常? JDBC分页? 在JBuilder4中调试程序时如何设置Run/Debug的参数?---一个初学者 谁能帮我找份资料,关于三层体系介绍的,急需。 新手问题
while (rs.next()) {
String[] str = {
rs.getString("id"), rs.getString("pwd")};
defaulttablemodel.addRow(str);
}我是这样的 用的是 defaulttablemodel 的这个模型,
这个不怎么好,将就用,我就是用的他 呵呵
只有自己写的函数 楼上的方法可行 但是在处理数据时要小心 容易出现错误
以前做了一个学生管理系统就遇到这样的情形
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的内容