⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tableframe.java

📁 java连接数据库的简单应用
💻 JAVA
字号:
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();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -