本教程介绍如何在Java应用程序中高效地执行数据库查询,并将查询结果显示给用户。通过实例讲解,帮助开发者掌握连接数据库、编写SQL语句及处理结果集的方法。
在利用Java开发数据库应用的过程中,常常需要将查询结果展示给用户。为实现这一目标,可以采用Vector、JTable及AbstractTableModel这三个类。
首先解释一下这些类的功能:
1. **Vector 类**:
这是一个存储数据的容器类型,在这里定义如下:`public class Vector extends AbstractList implements List, Cloneable, Serializable{...}`
2. **JTable 类**
JTable 是 Swing 包中的一个组件,用于在用户界面中以二维表格的形式展示数据。它的定义为:`public class JTable extends JComponentimplements TableModelListener, Scrollable, TableColumnModelListener, ListSelectionListener, CellEditorListener, Accessible{...}`
3. **AbstractTableModel 类**
这个类是所有表模型的基类,它需要实现以下三个方法:
- `public int getRowCount();`
- `public int getColumnCount();`
- `public Object getValueAt(int row, int column);`
为了展示一个简单的5x5表格实例:
```java
TableModel dataModel = new AbstractTableModel() {
public int getColumnCount() { return 5; }
public int getRowCount() { return 5;}
public Object getValueAt(int row, int col) { return new Integer(row*col); }
};
JTable table = new JTable(dataModel);
JScrollPane scrollpane = new JScrollPane(table);
```
对于数据库操作,我们使用 Sybase 数据库。这个数据库位于 D:WORKER 文件夹中,并且名为 worker.dbf。此表包含以下字段:
- Wno(职工号):VARCHAR
- Wname(职工名):VARCHAR
- Sex(性别):VARCHAR
- Birthday(出生日期):DATE
- Wage(工资):FLOAT
为了连接数据库,我们使用了 `java.sql` 包中的 `DriverManager` 类。以下为连接步骤:
1. 加载 Sybase JDBC 驱动程序。
2. 使用驱动管理器注册该驱动。
3. 通过 URL、用户名和密码获取到数据库的连接。
完成这些后就可以利用 Statement 接口进行数据查询或更新操作了。
在实际应用中,我们定义如下对象:
- `AbstractTableModel tm;`
- `JTable jg_table;`
- `Vector vect;`
- `JScrollPane jsp;`
并根据需要定制表格。例如设置列名、行数和单元格值等方法,并将数据模型绑定到 JTable 上。
最后,连接数据库后执行 SQL 查询以获取查询结果:
```java
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(select * from worker);
// 将查询的数据放入向量中然后更新表格显示。
```
为了实现记录的前后翻页功能,可以使用 `rs.previous()` 和 `rs.next()` 方法(如果支持 JDBC2.0),或者通过 Vector 按行读取 JTable 数据并改变指针位置来完成。