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

📄 querydb3.java

📁 JAVA查询数据库源代码
💻 JAVA
字号:
/*
 *@author余芳,创建日期2008-4-24
*/
package text;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;



public class QueryDB3 extends JFrame implements ActionListener {
	
	private Connection connection1;
	private Connection connection2;
	private Connection connection3;
	private Statement statement;
	private ResultSet resultSet;
	private JTable table;
	
	JTextField start; 
	JTextField destination; 
	
	JTextArea Result;
	JPanel jPanel1 = new JPanel(); 
	JPanel jPanel2 = new JPanel(); 
	JPanel jPanel3 = new JPanel(); 
	JButton Query1;
	JButton Query2;
	JButton Query3;


	
	public QueryDB3() {
	super("信息查询");
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	String url1="jdbc:odbc:RoadInfo";
	String url2="jdbc:odbc:Roadguide";
	String username="";
	String password="";
	try{
		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		connection1=DriverManager.getConnection(url1, username, password);
		connection2=DriverManager.getConnection(url2, username, password);
		connection3=DriverManager.getConnection(url2, username, password);
	}
	catch(ClassNotFoundException e){
		System.err.println("装载JDBC/ODBC驱动程序失败。");
		e.printStackTrace();
		System.exit(1);
	}
	catch(SQLException e){
		System.err.println(" 无法连接数据库");
		e.printStackTrace();
		System.exit(1);
}
	Container container=this.getContentPane();  //得到容器
	JPanel p1=new JPanel();  //初始化一个面板
	
	
	Query1=new JButton();   //初始化按钮
	Query1.setText("                       查 询 数 据 库 中 的 所 有 路 况 信 息                    ");  //设置按钮文本	
	Query1.addActionListener(this);	
	
	
	
	p1.add(Query1);		
    container.add(p1,BorderLayout.NORTH);  //在容器上增加面板 
	
    JPanel p2=new JPanel(); 
    start=new JTextField(6);  //初始化出发地输入域
	destination=new JTextField(6);
   
    Query2=new JButton();   //初始化按钮
	Query2.setText("查询路径信息");  //设置按钮文本	
	Query2.addActionListener(this);
	Query3=new JButton();   //初始化按钮
	Query3.setText(" 计算最优路径 ");  //设置按钮文本	
	Query3.addActionListener(this);
	p2.add(new JLabel("出发地:"));  //增加聊天题标签
	p2.add(start);  //增加名字输入域
	p2.add(new JLabel("目的地:")); 
	p2.add(destination);	
	p2.add(Query2);	
	p2.add(Query3);	
	
	
	container.add(p2,BorderLayout.SOUTH);
	
	
	
	
   	
 	setSize(520,300);//设置窗口尺寸
    setVisible(true);  //设置窗口可视
	}
	 public void actionPerformed(ActionEvent actionevent)
	 {
	     Object obj = actionevent.getSource();
	     if(obj==Query1){ 
	         String q1="SELECT * FROM RoadInfo";
	        
	        
	         try{
	 			
	 			statement=connection1.createStatement();
	 			resultSet=statement.executeQuery(q1);
	 			displayResultSet(resultSet);
	 		}
	 		catch(SQLException sqlex){
	 			sqlex.printStackTrace();
	 		}
	 		}else if(obj == Query2)
	     {   
	    	
	         
	         String q2="SELECT Start,Destination,Road,Status FROM Roadguide WHERE Start='"+start.getText()
	         + "' AND Destination='"+destination.getText()+"'";
	        
	        
	         try{
	 			
	 			statement=connection2.createStatement();
	 			resultSet=statement.executeQuery(q2);
	 			displayResultSet(resultSet);
	 			
	 		}
	 		catch(SQLException sqlex){
	 			sqlex.printStackTrace();
	 		}
	         
	     } else if(obj==Query3){
	    	 String q3="SELECT * FROM Roadguide WHERE Start='"+start.getText()
	         + "' AND Destination='"+destination.getText()+"'ORDER BY Distance";
	    	 try{
		 			
		 			statement=connection3.createStatement();
		 			resultSet=statement.executeQuery(q3);
		 			displayResultSet(resultSet);
		 			start.setText("");
		 			destination.setText("");
		 		}
		 		catch(SQLException sqlex){
		 			sqlex.printStackTrace();
		 		}
	    	 
	     }
	 }	 
	  
	
		private void displayResultSet(ResultSet rs) throws SQLException{
			boolean moreRecords=rs.next();
			if(!moreRecords){
				JOptionPane.showMessageDialog(this,"结果集中无记录");
				setTitle("无记录显示");
				return;
			}
			Vector columnHeads=new Vector();
			Vector rows=new Vector();
			try{
				ResultSetMetaData rsmd=rs.getMetaData();
				for(int i=1;i<=rsmd.getColumnCount();++i)
					columnHeads.addElement(rsmd.getColumnName(i));
				
				
				do{
					rows.addElement(getNextRow(rs,rsmd));
				}while(rs.next());
			
				table=new JTable(rows,columnHeads);
				
				JScrollPane scroller=new JScrollPane(table);
				
				Container c=getContentPane();
			  	c.add(scroller,BorderLayout.CENTER);
			  
				c.validate();
			}catch(SQLException e){
				e.printStackTrace();
			}
		}
		private Vector getNextRow(ResultSet rs,ResultSetMetaData rsmd)throws SQLException{
			Vector currentRow=new Vector();
			for(int i=1;i<=rsmd.getColumnCount();++i)
				currentRow.addElement(rs.getString(i));
			return currentRow;
		}
		public void shutDown(){
			try{
				connection1.close();
			}catch(SQLException e){
				System.err.println("无法断开连接");
				e.printStackTrace();
			}
			}
		 	
				
	 
	 
	public static 	void main(String[] args) {
		 new QueryDB3();
		 
	}
	}

⌨️ 快捷键说明

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