2014-12-13 53 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,它可能是多余的,或者只是简单的错误。