import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
import java.io.*;
public class TableFrame extends JFrame {
private JPanel contentPane, p1;
private JComboBox cbSQL;
private JButton queb = new JButton("显示结果");
Vector vector;
String title[] = {" "};
Connection connection = null;
ResultSet rs = null;
Statement statement = null;
AbstractTableModel tm;
public TableFrame() {
cbSQL = new JComboBox();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:/java/work/sql.mdb";
connection = DriverManager.getConnection(url);
statement = connection.createStatement();
String sql = "select * from sql";
rs = statement.executeQuery(sql);
while (rs.next()) {
cbSQL.addItem(rs.getString(1));
}
}
catch (SQLException ioe) {
System.out.println (ioe);
}
catch (Exception e) {
System.out.println (e);
}
enableEvents (AWTEvent.WINDOW_FOCUS_EVENT_MASK);
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}
private void jbInit() {
contentPane = (JPanel) this.getContentPane();
queb.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent e) {
queb_actionPerformed(e);
}
});
this.setSize(600,400);
this.setTitle("SQL语句查询");
p1 = new JPanel();
p1.add(queb);
this.add(cbSQL, BorderLayout.NORTH);
this.add(p1, BorderLayout.SOUTH);
this.setVisible(true);
this.addWindowListener(new WindowAdapter(){public void windowClosing (WindowEvent e) {
System.exit(0);
}});
createtable();
}
void createtable() {
JTable table;
JScrollPane scroll;
vector = new Vector();
tm = new AbstractTableModel() {
public int getColumnCount() {
return title.length;
}
public int getRowCount() {
return vector.size();
}
public Object getValueAt (int row, int column) {
if (!vector.isEmpty()) {
return ((Vector) vector.elementAt(row)).elementAt(column);
}
else
return null;
}
public void setValueAt (Object value, int row, int column) {
}
public String getColumnName (int column) {
return title[column];
}
public Class getColumnClass (int c) {
return getValueAt(0, c).getClass();
}
public boolean isCellEditable (int row, int column) {
return false;
}
};
table = new JTable(tm);
table.setToolTipText("Display Query Result");
table.setAutoResizeMode(table.AUTO_RESIZE_OFF);
table.setCellSelectionEnabled(false);
table.setShowHorizontalLines(true);
table.setShowVerticalLines(true);
scroll = new JScrollPane (table);
scroll.setBounds(6, 20, 540, 250);
contentPane.add(scroll);
}
void queb_actionPerformed (ActionEvent e) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:/java/work/Stu.mdb";
connection = DriverManager.getConnection(url);
statement = connection.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
String sql = (String) cbSQL.getSelectedItem();
rs = statement.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int count = rsmd.getColumnCount();
title = new String[count];
for (int i=1; i<=count; i++)
title[i-1] = rsmd.getColumnName(i);
vector.removeAllElements();
tm.fireTableStructureChanged();
while (rs.next()) {
Vector rec_vector = new Vector();
for (int i=1; i<=count; i++) {
rec_vector.addElement(rs.getString(i));
}
vector.addElement(rec_vector);
}
tm.fireTableDataChanged();
rs.close();
}
catch (SQLException ex) {
System.out.println(ex);
}
catch (Exception ex) {
ex.printStackTrace();
}
finally {
try {
if (statement != null)
statement.close();
if (connection != null)
connection.close();
}
catch (SQLException ex) {
System.out.println(ex);
}
}
}
public static void main(String[] args) {
new TableFrame();
}
}
sql.zip_SQL java_java sql_sql 查询_数据库 java_结果 查询
版权申诉
52 浏览量
2022-09-24
13:51:19
上传
评论
收藏 28KB ZIP 举报
御道御小黑
- 粉丝: 58
- 资源: 1万+