2011-07-22 101 views
0
import java.awt.Panel; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.Statement; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JTextField; 
import com.mysql.jdbc.Connection; 

public class one { 

    JFrame frame = new JFrame("ghar hisab"); 
    JButton b = new JButton("save"); 
    Panel p = new Panel(); 
    JTextField f = new JTextField(20); 
    JTextField f1 = new JTextField(20); 
    JLabel l = new JLabel("Enter the first name"); 
    JLabel l1 = new JLabel("Enter the first name"); 
    String s1,s2; 
    String ppl; 
    int people; 

    void display() throws Exception{ 
     p.add(l); 
     p.add(f); 
     p.add(l1); 
     p.add(f1); 
     p.add(b); 

     frame.setSize(400,400); 

     frame.setVisible(true); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.getContentPane().add(p); 
     s1=f.getText(); 
     s2=f1.getText(); 


     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/people","root","desire"); 

     Statement stat = con.createStatement(); 
     // String s3= "insert into name values s1 + s2"; 
     // stat.executeUpdate(s3); 

     stat.executeQuery("insert into name (first,last) values('"s1"','"s2"')"); 


     // ResultSet rs= stat.executeQuery("insert into name (first,last) values("arun","yadav")); 


     //while(rs.next()){ 
     //  System.out.println(rs.getString(1)+" "+rs.getString(2)); 
     // } 
    } 
} 

當我嘗試使用s1和s2更新數據庫時發生錯誤。如何將JTextField中的數據保存到mysql數據庫中?

+1

什麼 「錯誤」? ... – Moonbeam

+1

你會得到哪些例外? –

+1

這不是你的問題,但改變Panel p = new Panel();到JPanel p = new JPanel();請不要將AWT與Swing – mKorbel

回答

8

不知道這可能是問題,但你的stat.executeQuery(...)說法是錯誤的,應該是:

stat.executeQuery("insert into name (first,last) values('"+s1+"','"+s2+"')"); 

要與變量使用+操作Concat的字符串。

+0

混合起來..謝謝.. –

+3

考慮接受/ upvote有用的答案。閱讀此:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

+0

另請參見[SQL注入](http://xkcd.com/327/)和[magic鏈接](http://meta.stackexchange.com/questions/92060/add-data-se-style-magic-links-to-comments/94000#94000),如[faq]。 – trashgod

2

複製並粘貼此代碼到你的項目是100%的工作

數據插入方法:

public void insert() 
{ 
    try { 
    // connection string 
     Class.forName("com.mysql.jdbc.Driver").newInstance(); 
     Connection con = DriverManager 
       .getConnection("jdbc:mysql://localhost:3306/Project?user=root&password=root"); 
     Statement st = con.createStatement(); 

     st.executeUpdate("insert into Register VALUES('" 
       + tf1.getText() + "','" + tf2.getText() + "','" 
       + tf3.getText() + "','" + cb1.getSelectedItem() 
       + "','" + tf4.getText() + "','" + tf5.getText() 
       + "','" + tf6.getText() + "','" + tf7.getText() 
       + "','" + tf8.getText() + "','" + tf9.getText() 
       + "'," + "'" + tf10.getText() + "','" 
       + tf11.getText() + "','" + tf12.getText() + "','" 
       + tf13.getText() + "','" + tf14.getText() + "'," 
       + "'" + tf15.getText() + "','" +tf16.getText() 
       + "','" + tf17.getText() + "','" + tf18.getText() 
       + "'," + "'" + tf19.getText() + "','" 
       + p1.getText() + "','" + p2.getText() + "')"); 

     JOptionPane.showConfirmDialog(null, "Your Data Has been Inserted", 
       "Result", JOptionPane.DEFAULT_OPTION, 
       JOptionPane.PLAIN_MESSAGE); 

     st.close(); 
     con.close(); 

    } 

    catch (Exception e1) 

    { 
     System.out.println("Exception:" + e1); 
    } 

} 

然後調用該方法使用按鈕:

 b1.addActionListener(new ActionListener() { 

     public void actionPerformed(ActionEvent arg0) { 
      insert(); 
     } 

    });