2011-06-17 890 views

回答

1

您需要使用JDBC将您的java程序连接到您的数据库。 之后,您需要使用ResultSet类提取数据。 您需要了解JDBC的基础知识并清楚了解数据库的命令。你还需要知道如何通过java处理数据库。所以请阅读oracle的在线教程(官方教程),它不会超过一个小时。 寿命会更容易

0

使用此代码:

import java.awt.*; 
import java.awt.event.*; 
import java.sql.*; 
import java.util.Vector; 
import javax.swing.*; 
import javax.swing.table.DefaultTableModel; 

public class DisplayEmpData extends JFrame implements ActionListener { 

    JFrame frame1; 
    JLabel l0, l1, l2; 
    JComboBox c1; 
    JButton b1; 
    Connection con; 
    ResultSet rs, rs1; 
    Statement st, st1; 
    PreparedStatement pst; 
    String ids; 
    static JTable table; 
    String[] columnNames = {"User name", "Email", "Password", "Country"}; 
    String from; 

    DisplayEmpData() { 

     l0 = new JLabel("Fatching Employee Information"); 
     l0.setForeground(Color.red); 
     l0.setFont(new Font("Serif", Font.BOLD, 20)); 
     l1 = new JLabel("Select name"); 
     b1 = new JButton("submit"); 

     l0.setBounds(100, 50, 350, 40); 
     l1.setBounds(75, 110, 75, 20); 
     b1.setBounds(150, 150, 150, 20); 
     b1.addActionListener(this); 

     setTitle("Fetching Student Info From DataBase"); 
     setLayout(null); 
     setVisible(true); 
     setSize(500, 500); 
     setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 

     add(l0); 
     add(l1);; 
     add(b1); 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); // (1) 
      con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", "username", "password"); // (2) 
      st = con.createStatement(); 
      rs = st.executeQuery("select uname from emp"); 
      Vector v = new Vector(); 
      while (rs.next()) { 
       ids = rs.getString(1); 
       v.add(ids); 
      } 
      c1 = new JComboBox(v); 
      c1.setBounds(150, 110, 150, 20); 

      add(c1); 
      st.close(); 
      rs.close(); 
     } catch (Exception e) { 
     } 
    } 

    public void actionPerformed(ActionEvent ae) { 
     if (ae.getSource() == b1) { 
      showTableData(); 
     } 

    } 

    public void showTableData() { 

     frame1 = new JFrame("Database Search Result"); 
     frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame1.setLayout(new BorderLayout()); 
//TableModel tm = new TableModel(); 
     DefaultTableModel model = new DefaultTableModel(); 
     model.setColumnIdentifiers(columnNames); 
//DefaultTableModel model = new DefaultTableModel(tm.getData1(), tm.getColumnNames()); 
//table = new JTable(model); 
     table = new JTable(); 
     table.setModel(model); 
     table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); 
     table.setFillsViewportHeight(true); 
     JScrollPane scroll = new JScrollPane(table); 
     scroll.setHorizontalScrollBarPolicy(
       JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
     scroll.setVerticalScrollBarPolicy(
       JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); 
     from = (String) c1.getSelectedItem(); 
//String textvalue = textbox.getText(); 
     String uname = ""; 
     String email = ""; 
     String pass = ""; 
     String cou = ""; 

     try { 
      pst = con.prepareStatement("select * from emp where UNAME='" + from + "'"); 
      ResultSet rs = pst.executeQuery(); 
      int i = 0; 
      if (rs.next()) { 
       uname = rs.getString("uname"); 
       email = rs.getString("umail"); 
       pass = rs.getString("upass"); 
       cou = rs.getString("ucountry"); 
       model.addRow(new Object[]{uname, email, pass, cou}); 
       i++; 
      } 
      if (i < 1) { 
       JOptionPane.showMessageDialog(null, "No Record Found", "Error", JOptionPane.ERROR_MESSAGE); 
      } 
      if (i == 1) { 
       System.out.println(i + " Record Found"); 
      } else { 
       System.out.println(i + " Records Found"); 
      } 
     } catch (Exception ex) { 
      JOptionPane.showMessageDialog(null, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); 
     } 
     frame1.add(scroll); 
     frame1.setVisible(true); 
     frame1.setSize(400, 300); 
    } 

    public static void main(String args[]) { 
     new DisplayEmpData(); 
    } 
} 

编辑:上述代码使用MySQL作为一个例子。如果您不使用mysql,请更改标记为(1)和(2)的行。

相关问题