日期:2014-05-16 浏览次数:20450 次
package com.enhance.jdbc; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.FileInputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import java.util.Properties; import java.util.Vector; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.table.DefaultTableModel; public class QueryExecutor { JFrame jf = new JFrame("查询执行器"); private JScrollPane scrollPane; private DefaultTableModel model; private JButton execBn=new JButton("查询"); private JTextField sqlField=new JTextField(40); private static Connection conn; private static Statement stmt; private static ResultSet rs; static { try { Properties prop=new Properties(); FileInputStream in=new FileInputStream("src/mysql.ini"); prop.load(in); in.close(); String driver =prop.getProperty("driver"); String url=prop.getProperty("url"); String user=prop.getProperty("user"); String pass=prop.getProperty("pass"); Class.forName(driver); conn=DriverManager.getConnection(url,user,pass); stmt=conn.createStatement(); } catch (Exception e) { e.printStackTrace(); } } class ExecListener implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(scrollPane!=null){ jf.remove(scrollPane); } try { rs=stmt.executeQuery(sqlField.getText()); System.out.println(); ResultSetMetaData rsmd=rs.getMetaData(); Vector<String> columnNames=new Vector<String>(); System.out.println("cn"+rsmd.getColumnCount()); 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); } model = new DefaultTableModel(data,columnNames); JTable table=new JTable(model); scrollPane=new JScrollPane(table); jf.add(scrollPane); jf.validate(); } catch (Exception e2) { e2.printStackTrace(); } } } public void init(){ JPanel top=new JPanel(); top.add(new JLabel("输入查询语句:")); top.add(sqlField); top.add(execBn); execBn.addActionListener(new ExecListener()); sqlField.addActionListener(new ExecListener()); jf.add(top,BorderLayout.NORTH); jf.setSize(640,480); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setVisible(true); } public static void main(String[] args) { new QueryExecutor().init(); } }
package com.enhance.jdbc; import java.io.FileInputStream; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.Properties; public class DataBaseMetaDataTest { private String driver; private String url; private String user; private String pass; private Connection conn; private ResultSet rs; public void initParam(String paramFile) throws Exception{ Properties prop=new Properties(); prop.load(new FileInputStream(paramFile)); driver=prop.getProperty("driver"); url=prop.getProperty("url"); user=prop.getProperty("user"); pass=prop.getProperty("pass"); } public void info() throws Exception{ try { Clas