package classwork;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.SQLException;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
//简易的数据库查询程序
public class DisplaQueryResults extends JFrame {
private static final long serialVersionUID = 1L;
static final String JDBC_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";// 声明驱动程序类名
static final String DATABASE_URL = "jdbc:odbc:books";// 声明数据库
static final String DEFAULT_QUERY = "SELECT * FROM authors";
private ResultSetTableModel tableModel;
private JTextArea queryArea;
public DisplaQueryResults() {
super("Displaying Query Results");
try {
System.setProperty("odbc.system.home", "E:/Access2003");
tableModel = new ResultSetTableModel(JDBC_DRIVER, DATABASE_URL,
DEFAULT_QUERY);
queryArea = new JTextArea(DEFAULT_QUERY, 3, 100);
queryArea.setWrapStyleWord(true);
queryArea.setLineWrap(true);
JScrollPane scrollPane = new JScrollPane(queryArea,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
JButton submitButton = new JButton("Submit Query");
Box box = Box.createHorizontalBox();
box.add(scrollPane);
box.add(submitButton);
JTable resultTable = new JTable(tableModel);
Container container = getContentPane();
container.add(box,BorderLayout.NORTH);
container.add(new JScrollPane(resultTable), BorderLayout.CENTER);
submitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
try {
tableModel.setQuery(queryArea.getText());//提交查询请求
} catch (SQLException sqlException) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, sqlException
.getMessage(), "Database Error",
JOptionPane.ERROR_MESSAGE);
try {
tableModel.setQuery(DEFAULT_QUERY);//如果查询语句有错,则执行默认查询
queryArea.setText(DEFAULT_QUERY);
} catch (SQLException sqlException2) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, sqlException2
.getMessage(), "Database Error",
JOptionPane.ERROR_MESSAGE);
tableModel.disconnectFormDatabase();
System.exit(1);
}
}
}
});
setSize(500, 250);
setVisible(true);
} catch (ClassNotFoundException classNotFoundException) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, classNotFoundException
.getMessage(), "Driver not Found",
JOptionPane.ERROR_MESSAGE);
System.exit(1);
} catch (SQLException sqlException) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, sqlException.getMessage(),
"Database error", JOptionPane.ERROR_MESSAGE);
tableModel.disconnectFormDatabase();
System.exit(1);
}
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent event) {
tableModel.disconnectFormDatabase();
System.exit(0);
}
});
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new DisplaQueryResults();
}
}
- 1
- 2
前往页