2014-12-13 58 views
1

每次我嘗試保存或執行查詢時,都會收到此錯誤。 我無法解決,也許小小的建議會有所幫助。使用java1001在數據庫中插入

值java.sql.SQLException:無法與 的executeQuery()

這裏是我的插入我的數據庫代碼發出的數據操作語句。

Connection conn=null; ResultSet rs = null,rs1=null; PreparedStatement 
pst = null,pst1=null; 

DefaultTableModel model= (DefaultTableModel)tbl_stud.getModel(); 



    try{ 
     String sql="INSERT INTO students (id_num,fname,mname,lname,course,gender,year,username,password) VALUES(?,?,?,?,?,?,?,?,?);"; 
     model.setNumRows(0); 
     pst=conn.prepareStatement(sql); 
     String id=txt_idnum.getText(); 
     pst.setString(1,id); 
     String f=txt_fname.getText(); 
     pst.setString(2, f); 
     String m=txt_mname.getText(); 
     pst.setString(3, m); 
     String l=txt_lname.getText(); 
     pst.setString(4, l); 
     String crs=cmb_course.getSelectedItem().toString(); 
     pst.setString(5, crs); 
     String gen=cmb_gender.getSelectedItem().toString(); 
     pst.setString(6, gen); 
     String year = cmb_year.getSelectedItem().toString(); 
     pst.setString(7, year); 
     String uname=txt_username.getText(); 
     pst.setString(8, uname); 
     String pass=txt_password.getText(); 
     pst.setString(9, pass); 

     pst.executeQuery(sql); 


    JOptionPane.showMessageDialog(null, "Saved!","",JOptionPane.INFORMATION_MESSAGE); 


    } 
    catch(Exception e){ 
     JOptionPane.showMessageDialog(null, e,"",JOptionPane.ERROR_MESSAGE); 
    } 

回答

0

你需要使用pst.executeUpdate而不是pst.executeQuery

+0

謝謝。但我在修改後出現了這個錯誤 「你的SQL語法有錯誤;檢查與你的MySQL服務器版本相對應的手冊,以便在'?,?,?,?,?,? ?,?,? – 2014-12-13 11:41:24

+0

嘗試省略分號 – 2014-12-13 12:13:29

+0

String sql =「INSERT INTO students(id_num,fname,mname,lname,course,gender,year,username,password)VALUES(?,?,?,?,?,?,? ,?,?)「; alreaady嘗試該代碼 – 2014-12-13 12:14:54

0

異常消息說,這一切:

不能發出帶有的executeQuery()數據操作語句

而應該使用executeUpdate()。此外,如果您已經準備好了該語句,則應該使用不會收到String參數的執行變體。那些從Statement繼承,不應該與PreparedStatement s一起使用(是的,這對於證明JDBC是一個糟糕的API還有很長的路要走)。

pst.executeUpdate(); 

作爲一個附加的阿里納斯,你應該放棄分號(;)和insert語句的結束。根據你使用的確切的驅動程序和RDBMS,它可能是多餘的,或者只是簡單的錯誤。