Java 中以DataGrid形式显示数据库查询结果和相关JTable操作程序
2005-09-28 00:07
846 查看
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import javax.swing.table.*;
class QuerySystem extends JFrame{
Vector vect=new Vector();
String title[]={"num","name","birth","school"};
// 继承AbstractTableModel
AbstractTableModel 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.get(row)).get(column);
else
return null;
}
public String getColumnName(int column){
return title[column];
}
public void setValueAt(Object value,int row,int column){}
public boolean isCellEditable(int row,int column){
return false;
}
};
JTable jt=new JTable(tm);
JScrollPane jsp=new JScrollPane(jt);
public QuerySystem()throws SQLException,ClassNotFoundException{
Connection c=connect();
Statement s=c.createStatement();
String sql="select * from student";
ResultSet r=s.executeQuery(sql);
showResult(r);
//设置table内的单行选定(JTable利用的是ListSelectionModel)
jt.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//添加表格(选定行)的双击左键事件
jt.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
if(e.getClickCount()==2){ //鼠标双击
//以下三句为:双击删除选定行
int row=jt.getSelectedRow();
vect.removeElementAt(row);
tm.fireTableStructureChanged();
}
}
});
this.getContentPane().add(jsp,BorderLayout.CENTER);
}
//连接数据库方法 返回类型为 Connection
public Connection connect()throws SQLException,ClassNotFoundException{
String dburl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=da/student.mdb"; //数据库字段为:文本,文本,日期,文本
String user="";
String password="";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c=DriverManager.getConnection(dburl,user,password);
return c;
}
//以DataGrid 样式显示数据库中的查询结果
public void showResult(ResultSet rs)throws SQLException{
vect.removeAllElements();
tm.fireTableStructureChanged();
while(rs.next()){
Vector rec_vector=new Vector();
rec_vector.addElement(rs.getString(1));
rec_vector.addElement(rs.getString(2));
rec_vector.addElement(rs.getDate(3));
rec_vector.addElement(rs.getString(4));
vect.addElement(rec_vector);
}
tm.fireTableStructureChanged();
}
public s
4000
tatic void main(String[]args)throws SQLException,ClassNotFoundException{
QuerySystem fm=new QuerySystem();
fm.setSize(600,400);
fm.setTitle("");
}
}
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import javax.swing.table.*;
class QuerySystem extends JFrame{
Vector vect=new Vector();
String title[]={"num","name","birth","school"};
// 继承AbstractTableModel
AbstractTableModel 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.get(row)).get(column);
else
return null;
}
public String getColumnName(int column){
return title[column];
}
public void setValueAt(Object value,int row,int column){}
public boolean isCellEditable(int row,int column){
return false;
}
};
JTable jt=new JTable(tm);
JScrollPane jsp=new JScrollPane(jt);
public QuerySystem()throws SQLException,ClassNotFoundException{
Connection c=connect();
Statement s=c.createStatement();
String sql="select * from student";
ResultSet r=s.executeQuery(sql);
showResult(r);
//设置table内的单行选定(JTable利用的是ListSelectionModel)
jt.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//添加表格(选定行)的双击左键事件
jt.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
if(e.getClickCount()==2){ //鼠标双击
//以下三句为:双击删除选定行
int row=jt.getSelectedRow();
vect.removeElementAt(row);
tm.fireTableStructureChanged();
}
}
});
this.getContentPane().add(jsp,BorderLayout.CENTER);
}
//连接数据库方法 返回类型为 Connection
public Connection connect()throws SQLException,ClassNotFoundException{
String dburl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=da/student.mdb"; //数据库字段为:文本,文本,日期,文本
String user="";
String password="";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c=DriverManager.getConnection(dburl,user,password);
return c;
}
//以DataGrid 样式显示数据库中的查询结果
public void showResult(ResultSet rs)throws SQLException{
vect.removeAllElements();
tm.fireTableStructureChanged();
while(rs.next()){
Vector rec_vector=new Vector();
rec_vector.addElement(rs.getString(1));
rec_vector.addElement(rs.getString(2));
rec_vector.addElement(rs.getDate(3));
rec_vector.addElement(rs.getString(4));
vect.addElement(rec_vector);
}
tm.fireTableStructureChanged();
}
public s
4000
tatic void main(String[]args)throws SQLException,ClassNotFoundException{
QuerySystem fm=new QuerySystem();
fm.setSize(600,400);
fm.setTitle("");
}
}
相关文章推荐
- java数据库查询显示结果显示在JTable
- JSP查询数据库并显示结果的程序
- 数据库的相关操作:如连接、查询、添加、删除、修改、分页显示
- java中查询数据库并以表格形式显示
- Easyui Datagrid +java 动态加载数据库查询结果集
- 查询数据库客户信息显示在页面并进行相关操作
- 使用Java对数据库进行基本的查询和更新操作
- oracle 数据库的管理工具 PL/SQL_Developer 的简易使用 与Java 连接并查询显示出数据
- Java实现Neo4j数据库的相关操作
- java程序连接各种数据库的driver和url形式
- 用DataGrid显示数据库数据---我的第一个.net程序
- java 中如何在JTABLE中显示连接数据库表
- [转]数据库操作-程序-java--oracle
- c#第四次作业:建立数据库和表,并用cmd显示查询结果
- 将不相关的多个表查询结果组合在一起显示
- 数据库查询结果分页显示思路
- Mongo DB java 起步操作,连接数据库,查询语句
- JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)
- Java基于JDBC连接数据库及显示数据操作示例
- JAVA高级【4.8】《Java核心技术2》数据库-JavaWeb分页显示内容——数据库分页查询