JAVA 怎么把数据库里的数据显示在JTable表格里

JAVA 怎么把数据库里的数据显示在JTable表格里,第1张

这个要从头说起就复杂了。我简单说一下吧。\x0d\首先,要把数据从库中取出来,假设你已经会了。\x0d\其次,创建一个表格模型,\x0d\DefaultTableModel model=new DefaultTableModel();\x0d\//创建表头\x0d\modelsetColumnIdentifiers(new Object[]{"日期/时间"," *** 作工","产品型号","数量"});\x0d\再次,添加数据\x0d\while(resultsnext())\x0d\{\x0d\String dt=resultsgetString("dt");\x0d\String name=resultsgetString("name");\x0d\String pname=resultsgetString("product");\x0d\int i=resultsgetInt("num");\x0d\//把以上数据添加到表格模型的一行中\x0d\\x0d\modeladdRow(new Object[]{dt,name,pname,i});\x0d\}\x0d\最后,用模型生成表格\x0d\JTable table=new JTable(model);\x0d\当然,还有一些其它的 *** 作,比如把表格显示出来,表格的字体、行高等设置等等,不再一一赘述。

参考一下我的。你的while(rsnext())是不是放错地方了

public void queryCus(String sql,String[] paras){

SqlHelper sqlHelper = null;

columnNames = new Vector();

columnNamesadd("客户编号");

columnNamesadd("客户姓名");

columnNamesadd("客户性别");

columnNamesadd("身份z号码");

columnNamesadd("客户联系电话");

columnNamesadd("客户类型编号");

columnNamesadd("备注");

rowData = new Vector();

try {

sqlHelper = new SqlHelper();

ResultSet rs = sqlHelperqueryExectue(sql, paras);

while(rsnext()){

Vector hang = new Vector();

hangadd(rsgetInt(1));

hangadd(rsgetString(2));

hangadd(rsgetString(3));

hangadd(rsgetString(4));

hangadd(rsgetString(5));

hangadd(rsgetInt(6));

hangadd(rsgetString(7));

//加入到rowData

rowDataadd(hang);

}

} catch (Exception e) {

eprintStackTrace();

} finally{

sqlHelperclose();

}

}

利用Java开发数据库应用系统时 经常需要在用户界面上显示查询结果 由于SUN公司提供的JDK x开发工具包不是可视化的集成开发环境(IDE) 能象Delphi VB那样方便地把查询结果在DBGrid等表格中显示出来 因此 只能靠自己编写代码来实现 在实际应用中 我们可以利用Vector JTable AbstractTableModel等三个类较好地解决这一问题 以下 详细介绍一下实现方法 一 类Vector 类JTable及类AbstractTableModel简介 类Vector 类Vector是Java的历史集合类 隶属于java util包 它包装了异构链表和数组杂合体 具有以下两个特点 ( )向量是异构的 不要求每个元素的类型相同 向量中可以混合多种对象类型 ( )向量是数组杂合体 因为它们可以在增加元素时动态增大 其异构性正好符合数据库记录中属性类型不一的特点 而其动态性也正好符合数据库查询时 结果集记录个数不定的特点 类Vector定义如下 public class Vector extends AbstractList implements List Cloneable Serializable{…} 实现了向量成员的查找 新增 删除等方法 如 add(Object obj)可方便地加入一个对象 get(int index)可方便地得到向量中的一个对象 remove(Object obj)则可方便地删除向量中一个对象 类JTable JTable组件是Swing组件中比较复杂的小件 隶属于javax swing包 它能以二维表的形式显示数据 类JTable定义如下 public class JTable extends JComponentimplements TableModelListener Scrollable TableColumnModelListener ListSelectionListener CellEditorListener Accessible{…} 类JTable在显示数据时具有以下特点 ( )可定制性 可以定制数据的显示方式和编辑状态 ( )异构性 可以显示不同类型的数据对象 甚至包括颜色 图标等复杂对象 ( )简便性 可以以缺省方式轻松地建立起一个二维表 其可定制性可满足不同用户和场合的要求 异构性也正好符合数据库访问结果集中属性类型不一的特点 类JTable提供了极为丰富的二维表格 *** 作方法 如设置编辑状态 显示方式 选择行列等 在此不一一赘述 使用类JTable显示数据之前 必须根据情况生成定制模型 单元绘制器或单元编辑器 类AbstractListModel用来定制用户自己的数据模型 这个类在后面要介绍 TableCellRenderer接口用来定制单元绘制器 TableCellEditor接口用来定制单元编辑器 这两个接口主要用于颜色对象的处理上 在示例中没有用到 不做过多说明 类AbstractTableModel 类AbstractTableModel是一个抽象类 没有完全实现 不能实例化 使用时必须在程序中实现方法 它隶属于javax swing table 类定义如下 public abstract class AbstractTableModel extends Objectimplements TableModel Serializable{…} 类AbstractTableModel提供了TableModel接口中绝大多数方法的缺省实现 TableModel接口定义了JTable 的基础数据结构 用户要生成自己的数据模型 本来可以通过实现TableModel接口中所有方法来满足要求 但管理听众表的功能对于所有数据模型是共同的 所以在javax swing table中又定义了类AbstractTableModel来处理这个工作 它既管理听众表 又为生成TableModelEvents事件并委托给听众提供了便利 要想生成一个具体的TableModel作为AbstractTableMode的子类 至少必须实现下面三个方法 public int getRowCount();public int getColumnCount();public Object getValueAt(int row int column); 至此 我们可以建立一个简单二维表( × ) 实现方法如下 TableModel dataModel = new AbstractTableModel() {public int getColumnCount() { return ; }public int getRowCount() { return ;}public Object getValueAt(int row int col) { return new Integer(rowcol); }};JTable table = new JTable(dataModel);JScrollPane scrollpane = new JScrollPane(table); 二 数据库及其连接方法简介 示例采用Sybase数据库系统 数据库存放在数据库服务器中 路径为 D:\WORKER 数据库名为 worker dbf 具有以下字段 字段名 类型Wno(职工号) VARCHARWname(职工名) VARCHARSex(性别) VARCHARBirthday(出生日期) DATEWage(工资) FLOAT 要连接此数据库 需使用java sql包中的类DriverManager 此类是用于管理JDBC驱动程序的实用程序类 它提供了通过驱动程序取得连接 注册 撤消驱动程序 设置登记和数据库访问登录超时等方法 具体连接方法如下 第一步 定位 装入和链接SybDriver类 driver= sybase jdbc SybDriver ;SybDriver sybdriver=(SybDriver)Class forName(driver) newInstance(); 第二步 注册SybDriver类 DriverManager registerDriver(sybdriver); 第三步 取得连接(SybConnection)对象引用 user= sa ;password= ;url= jdbc:sybase:Tds: : /WORKER ;SybConnection connection=(SybConnection)DriverManager getConnection (url user password); 建立完连接后 即可通过Statement接口进行数据库的查询与更改 三 实现方法 限于篇幅 在此只给出核心代码 包引入 界面处理 变量定义等部分不再介绍 第一步 对象声明 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);elsereturn 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( 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( ));rec_vector addElement(rs getString( ));rec_vector addElement(rs getString( ));rec_vector addElement(rs getDate( ));rec_vector addElement(new Float(rs getFloat( )));vect addElement(rec_vector);//向量rec_vector加入向量vect中}tm fireTableStructureChanged();//更新表格 显示向量vect的内容 若要实现示图中记录前翻 后翻的效果 有两种方法 一 如果软件环境支持JDBC 可直接利用rs prevoius()和rs next()获得记录 然后通过类JTextField中的setText()方法 显示出各个字段值 二 如果不支持JDBC 则可利用向量Vector按行取出JTable中数据 自定义一个指针 用来记录位置 当指针加 时 取出上一行数据放入Vector中显示 指针减 时 取出下一行数据显示 显示方法同上 需要说明的是 代码中没有给出捕捉例外的部分 如SQLException 实际应用中必须给出 此外 有些系统中 lishixinzhi/Article/program/Java/hx/201311/26092

JTabel 获取表格中选中的数据, 那么有可以考虑使用下面两种方法来实现

方法一:ListSelectionListener 来获取用户在表格里选中的数据是最方便和最优的

因为: 支持单选, 也支持多行, 支持键盘上下移动进行选择

方法二: MouseListener 当鼠标点击某行数据后,输出该数据 ,可以实现

不推荐使用MouseListener来获取表格选中数据:

1 不够灵敏, 偶尔会失效, 比如刚打开窗口后 ,有时候迅速点击table MouseListener 就可能不会有反应

2  用户选中多行, 比如拖动或者键盘上下移动进行选择时,那么在MouseListener里获取多行比较麻烦不仅仅需要实现鼠标点击 ,还得需要实现拖动鼠标,释放鼠标 等多个方法,如果完善一点还需要实现键盘事件的方法

参考代码如下

import javaawt;

import javaawtevent;

import javaxswing;

import javaxswingevent;

public class TableDemo extends JFrame {

String[] names = { "姓名", "等级" };

String[][] data = { { "张三", "A" }, { "李四", "B" }, { "王五", "C" } };

public TableDemo() {

JTable table = new JTable(data, names);

JScrollPane jsp = new JScrollPane(table);

add(jsp);

setSize(300, 200);

setLocationRelativeTo(null);

setDefaultCloseOperation(EXIT_ON_CLOSE);

// 推荐

tablegetSelectionModel()addListSelectionListener(new ListSelectionListener() {

@Override

public void valueChanged(ListSelectionEvent e) {

if (!egetValueIsAdjusting()) {

//支持拖动多选

int[] rows = tablegetSelectedRows();

// int[] cols = tablegetSelectedColumns();//选中的列

for (int i : rows) {

Systemoutprintln("#方法一:\t" + tablegetValueAt(i, 0) + "\t" + tablegetValueAt(i, 1));

}

//支持单选

// int row=tablegetSelectedRow();//选中行

// //int col=tablegetSelectedColumn();//选中列

// Systemoutprintln("方法一:"+tablegetValueAt(row, 0)+"\t"+tablegetValueAt(row, 1));

}

}

});

tableaddMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

//单选

int row = tablerowAtPoint(egetPoint());// 选中行

// int col =tablecolumnAtPoint(egetPoint());//选中列

Systemoutprintln("方法二:\t" + tablegetValueAt(row, 0) + "\t" + tablegetValueAt(row, 1));

}

});

}

public static void main(String[] args) {

EventQueueinvokeLater(new Runnable() {

public void run() {

new TableDemo()setVisible(true);

}

});

}

}

不是很明白你的要求。具体的 *** 作是怎样的的呢?

假设数据库中有个学生表:

学号  姓名  年龄

001  张三  20

002  李四  21

假设按姓名搜索,输入搜索条件“张”:

情况1、根据搜索条件直接搜索数据库记录(通常都是这样搜索),那从数据库搜索出的记录就只有姓名包含“张”的记录,然后JTable中也就只展示这些记录,就无所谓置顶不置顶啦。

情况2、只是根据搜索条件在当前JTable展示的数据中搜索,代码如下:

import javaawtBorderLayout;

import javaawtGridLayout;

import javaawteventActionEvent;

import javaawteventActionListener;

import javaxswingJButton;

import javaxswingJFrame;

import javaxswingJLabel;

import javaxswingJPanel;

import javaxswingJScrollPane;

import javaxswingJTable;

import javaxswingJTextField;

import javaxswingborderEmptyBorder;

import javaxswingeventTableModelEvent;

import javaxswingeventTableModelListener;

 public class JTableTest extends JFrame {

  private JPanel searchPanel;

  private JTextField numField;

  private JButton searchByNumButton;

  private JTextField nameField;

  private JButton searchByNameButton;

  private JTable table;

  private TestTableModel tableModel;

  public JTableTest() {

    super("Simple JTable Test");

    setSize(400, 300);

    setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    searchPanel = new JPanel();

    searchPanelsetBorder(new EmptyBorder(3, 3, 3, 3));

    searchPanelsetLayout(new GridLayout(2, 3, 2, 3));

    searchPaneladd(new JLabel("学号"));

    numField = new JTextField(20);

    searchPaneladd(numField);

    searchByNumButton = new JButton("按学号搜索");

    searchByNumButtonaddActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent event) {

        tablegetSelectionModel()clearSelection();

        tableModeldoSearchByNum(numFieldgetText());

      }

    });

    searchPaneladd(searchByNumButton);

    searchPaneladd(new JLabel("姓名"));

    nameField = new JTextField(20);

    searchPaneladd(nameField);

    searchByNameButton = new JButton("按姓名搜索");

    searchByNameButtonaddActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent event) {

        tablegetSelectionModel()clearSelection();

        tableModeldoSearchByName(nameFieldgetText());

      }

    });

    searchPaneladd(searchByNameButton);

    getContentPane()add(searchPanel, BorderLayoutNORTH);

    tableModel = new TestTableModel();

    tableModeladdTableModelListener(new TableModelListener() {

      @Override

      public void tableChanged(TableModelEvent e) {

        if (tableModelgetHitRowCount() > 0) {

          tablesetRowSelectionInterval(0, tableModelgetHitRowCount() - 1);

        }

      }

    });

    table = new JTable(tableModel);

    JScrollPane jsp = new JScrollPane(table);

    getContentPane()add(jsp, BorderLayoutCENTER);

  }

  public static void main(String[] args) {

    JTableTest self = new JTableTest();

    selfsetVisible(true);

  }

}import javautilArrayList;

import javautilArrays;

import javautilList;

import javaxswingtableAbstractTableModel;

public class TestTableModel extends AbstractTableModel {

  private List<Student> data = ArraysasList(new Student("001", "王二", 20), new Student("002",

      "王二小", 19), new Student("003", "张三", 20), new Student("004", "张三丰", 21), new Student("005",

      "李四", 21), new Student("006", "李四光", 19));

  private List<Integer> searchHitRows = new ArrayList<Integer>();

  @Override

  public int getRowCount() {

    return datasize();

  }

  @Override

  public int getColumnCount() {

    return 3;

  }

  @Override

  public String getColumnName(int column) {

    if (column == 0)

      return "学号";

    else if (column == 1)

      return "姓名";

    return "年龄";

  }

  @Override

  public Object getValueAt(int rowIndex, int columnIndex) {

    Student student = dataget(rowIndex);

    if (columnIndex == 0)

      return studentgetNum();

    else if (columnIndex == 1)

      return studentgetName();

    return studentgetAge();

  }

  / 按姓名搜索 /

  public void doSearchByName(String key) {

    searchHitRowsclear();

    if (key == null || ""equals(key))

      return;

    for (int i = 0; i < datasize(); i++) {

      Student studentI = dataget(i);

      String value = studentIgetName();

      if (valueindexOf(key) < 0)

        continue;

      int j = 0;

      for (j = i - 1; j >= 0; j--) {

        Student studentJ = dataget(j);

        String valueJ = studentJgetName();

        if (valueJindexOf(key) >= 0)

          break;

      }

      Student temp = dataget(j + 1);

      dataset(j + 1, studentI);

      dataset(i, temp);

      searchHitRowsadd(IntegervalueOf(j + 1));

    }

    fireTableDataChanged();

  }

  / 按学号搜索 /

  public void doSearchByNum(String key) {

    searchHitRowsclear();

    if (key == null || ""equals(key))

      return;

    for (int i = 0; i < datasize(); i++) {

      Student studentI = dataget(i);

      String value = studentIgetNum();

      if (valueindexOf(key) < 0)

        continue;

      int j = 0;

      for (j = i - 1; j >= 0; j--) {

        Student studentJ = dataget(j);

        String valueJ = studentJgetNum();

        if (valueJindexOf(key) >= 0)

          break;

      }

      Student temp = dataget(j + 1);

      dataset(j + 1, studentI);

      dataset(i, temp);

      searchHitRowsadd(IntegervalueOf(j + 1));

    }

    fireTableDataChanged();

  }

  public void setData(List<Student> data) {

    if (data == null)

      throw new IllegalArgumentException("参数data不能为null。");

    thisdata = data;

    fireTableDataChanged();

  }

  public int getHitRowCount() {

    return searchHitRowssize();

  }

}

从数据库查询出记录后,转成Student对象列表调用TestTableModel的setData设置表格的数据。

利用Java开发数据库应用系统时,经常需要在用户界面上显示查询结果。由于SUN公司提供的JDK1x开发工具包不是可视化的集成开发环境(IDE),不能象Delphi、VB那样方便地把查询结果在DBGrid等表格中显示出来。因此,只能靠自己编写代码来实现。

在实际应用中,我们可以利用Vector、JTable、AbstractTableModel等三个类较好地解决这一问题。以下,详细介绍一下实现方法。

· 一、 类Vector、类JTable及类AbstractTableModel简介:

1、 类Vector:

类Vector是Java的历史集合类,隶属于javautil包。它包装了异构链表和数组杂合体,具有以下两个特点:

向量是异构的,不要求每个元素的类型相同,向量中可以混合多种对象类型;

向量是数组杂合体,因为它们可以在增加元素时动态增大。

其异构性正好符合数据库记录中属性类型不一的特点,而其动态性也正好符合数据库查询时,结果集记录个数不定的特点。

类Vector定义如下:

public class Vector extends AbstractList

implements List , Cloneable , Serializable{…}

实现了向量成员的查找、新增、删除等方法。如:add(Object obj)可方便地加入一个对象;get(int index)可方便地得到向量中的一个对象;remove(Object obj)。则可方便地删除向量中一个对象。

· 2、 类JTable:

JTable组件是Swing组件中比较复杂的小件,隶属于javaxswing包,它能以二维表的形式显示数据。类JTable定义如下:

public class JTable extends JComponent

implements TableModelListener, Scrollable, TableColumnModelListener,

ListSelectionListener, CellEditorListener, Accessible{…}

类JTable在显示数据时具有以下特点:

可定制性:可以定制数据的显示方式和编辑状态;

异构性:可以显示不同类型的数据对象,甚至包括颜色、图标等复杂对象;

简便性:可以以缺省方式轻松地建立起一个二维表。

其可定制性可满足不同用户和场合的要求,异构性也正好符合数据库访问结果集中属性类型不一的特点。类JTable提供了极为丰富的二维表格 *** 作方法,如设置编

辑状态、显示方式、选择行列等,在此不一一赘述。

使用类JTable显示数据之前,必须根据情况生成定制模型、单元绘制器或单元编辑器。类AbstractListModel用来定制用户自己的数据模型,这个类在后面要介绍。

TableCellRenderer接口用来定制单元绘制器,TableCellEditor接口用来定制单元编辑器,这两个接口主要用于颜色对象的处理上,在示例中没有用到,不做过多说明。

· 3、 类AbstractTableModel:

类AbstractTableModel是一个抽象类,没有完全实现,不能实例化,使用时必须在程序中实现方法。它隶属于javaxswingtable 。类定义如下:

public abstract class AbstractTableModel extends Object

implements TableModel, Serializable{…}

类AbstractTableModel提供了TableModel接口中绝大多数方法的缺省实现。TableModel接口定义了JTable 的基础数据结构。用户要生成自己的数据模型,本来可以

通过实现TableModel接口中所有方法来满足要求,但管理听众表的功能对于所有数据模型是共同的,所以在javaxswingtable中又定义了类AbstractTableModel来

处理这个工作。它既管理听众表,又为生成TableModelEvents事件并委托给听众提供了便利。

要想生成一个具体的TableModel作为AbstractTableMode的子类,至少必须实现下面三个方法:

public int getRowCount();

public int getColumnCount();

public Object getValueAt(int row, int column);

至此,我们可以建立一个简单二维表(5×5),实现方法如下:

TableModel dataModel = new AbstractTableModel() {

public int getColumnCount() { return 5; }

public int getRowCount() { return 5;}

public Object getValueAt(int row, int col) { return new Integer(rowcol); }

};

JTable table = new JTable(dataModel);

JScrollPane scrollpane = new JScrollPane(table);

· 二、 数据库及其连接方法简介:

示例采用Sybase数据库系统,数据库存放在数据库服务器中。路径为:D:/WORKER,数据库名为:workerdbf。具有以下字段:

字段名

类型

Wno(职工号)

VARCHAR

Wname(职工名)

VARCHAR

Sex(性别)

VARCHAR

Birthday(出生日期)

DATE

Wage(工资)

FLOAT

要连接此数据库,需使用javasql包中的类DriverManager。此类是用于管理JDBC驱动程序的实用程序类。它提供了通过驱动程序取得连接、注册,撤消驱动程序, 设置登记和数据库访问登录超时等方法。具体连接方法如下:

第一步:定位、装入和链接SybDriver类;

driver="comsybasejdbcSybDriver";

SybDriver sybdriver=(SybDriver)ClassforName(driver)newInstance();

第二步:注册SybDriver类;

DriverManagerregisterDriver(sybdriver);

第三步:取得连接(SybConnection)对象引用。

user="sa";

password="";

url="jdbc:sybase:Tds:202117203114:5000/WORKER";

SybConnection connection=(SybConnection)DriverManagergetConnection

(url,user,password);

建立完连接后,即可通过Statement接口进行数据库的查询与更改。

· 三、 实现方法:

限于篇幅,在此只给出核心代码,包引入、界面处理、变量定义等部分不再介绍。

第一步:对象声明。

AbstractTableModel tm;//声明一个类AbstractTableModel对象

JTable jg_table;//声明一个类JTable对象

Vector vect;//声明一个向量对象

JScrollPane jsp;//声明一个滚动杠对象

String title[]={"职工号","职工名","性别","出生日期","工资"};

//二维表列名

第二步:定制表格。

1、实现抽象类AbstractTableModel对象tm中的方法:

vect=new Vector();//实例化向量

tm=new AbstractTableModel(){

public int getColumnCount(){

return titlelength;}//取得表格列数

public int getRowCount(){

return vectsize();}//取得表格行数

public Object getValueAt(int row,int column){

if(!vectisEmpty())

return

((Vector)vectelementAt(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;}//设置单元格不可编辑,为缺省实现

};

2、定制表格:

jg_table=new JTable(tm);//生成自己的数据模型

jg_tablesetToolTipText("显示全部查询结果");//设置帮助提示

jg_tablesetAutoResizeMode(JTableAUTO_RESIZE_OFF);

//设置表格调整尺寸模式

jg_tablesetCellSelectionEnabled(false);//设置单元格选择方式

jg_tablesetShowVerticalLines(true);//设置是否显示单元格间的分割线

jg_tablesetShowHorizontalLines(true);

jsp=new JScrollPane(jg_table);//给表格加上滚动杠

第三步:显示查询结果。

1、 连接数据库:第二部分已给出。

2、 数据库查询:

Statement stmt=connectioncreateStatement();

ResultSet rs=stmtexecuteQuery("select from worker");

3、 显示查询结果:

vectremoveAllElements();//初始化向量对象

tmfireTableStructureChanged();//更新表格内容

while(rsnext()){

Vector rec_vector=new Vector();

//从结果集中取数据放入向量rec_vector中

rec_vectoraddElement(rsgetString(1));

rec_vectoraddElement(rsgetString(2));

rec_vectoraddElement(rsgetString(3));

rec_vectoraddElement(rsgetDate(4));

rec_vectoraddElement(new Float(rsgetFloat(5)));

vectaddElement(rec_vector);//向量rec_vector加入向量vect中

}

tmfireTableStructureChanged();//更新表格,显示向量vect的内容。

以上就是关于JAVA 怎么把数据库里的数据显示在JTable表格里全部的内容,包括:JAVA 怎么把数据库里的数据显示在JTable表格里、java中从数据库中得到多行数据并向JTable中加入时,最后显示的只有一行、Java数据库编程中查询结果的输出等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9682458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存