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

📄 queryexecutor.java

📁 疯狂Java讲义_源码(含Java设计模式CHM
💻 JAVA
字号:
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.sql.*;
import java.io.*;
import javax.sql.rowset.*;
import com.sun.rowset.*;


/**
 * Description:
 * <br/>Copyright (C), 2005-2008, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */
public class QueryExecutor
{
	JFrame jf = new JFrame("查询执行器");
	private JScrollPane scrollPane;
	private DefaultTableModel model;
	private JButton execBn = new JButton("查询");
	//用于装载数据表的JComboBox
	private JTextField sqlField = new JTextField(45);
	private static Connection conn;
	private static Statement stmt;
	private ResultSet rs;

	static
	{
		try
		{
			Properties props = new Properties();
			FileInputStream in = new FileInputStream("mysql.ini");
			props.load(in);
			in.close();
			String drivers = props.getProperty("driver");
			String url = props.getProperty("url");
			String username = props.getProperty("user");
			String password = props.getProperty("pass");
			//加载数据库驱动
			Class.forName(drivers);
			//取得数据库连接
			conn = DriverManager.getConnection(url, username, password);
			stmt = conn.createStatement();
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}

	public void init()
	{
		JPanel top = new JPanel();
		top.add(sqlField);
		top.add(execBn);
		execBn.addActionListener(new ExceListener());
		jf.add(top , BorderLayout.NORTH);
		jf.setSize(640, 480);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.setVisible(true);
	}
	
	class ExceListener implements ActionListener
	{
		public void actionPerformed(ActionEvent evt)
		{
			try
			{
				if (scrollPane != null)
				{
					//从主窗口中删除表格
					jf.remove(scrollPane);
				}
				rs = stmt.executeQuery(sqlField.getText());
				ResultSetMetaData rsmd = rs.getMetaData();
				Vector<String> columnNames =  new Vector<String>();
				Vector data = new Vector();
				for (int i = 0 ; i < rsmd.getColumnCount(); i++ )
				{
					columnNames.add(rsmd.getColumnName(i + 1));
				}
				while (rs.next())
				{
					Vector v = new Vector();
					for (int i = 0 ; i < rsmd.getColumnCount(); i++ )
					{
						v.add(rs.getString(i + 1));
					}
					data.add(v);
				}
				System.out.println("---------" + columnNames);
				model = new DefaultTableModel(data , columnNames);
				JTable table = new JTable(model);
				scrollPane = new JScrollPane(table);
				jf.add(scrollPane, BorderLayout.CENTER);
				jf.validate();
			}
			catch (Exception e)
			{
				e.printStackTrace();
			}
		}
	}
	public static void main(String[] args) 
	{
		new QueryExecutor().init();
	}
}

⌨️ 快捷键说明

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