Java 使用Netbeans 7.01中的表单插入数据库

Java 使用Netbeans 7.01中的表单插入数据库,java,swing,Java,Swing,我正在用java做一个单独的项目。我想将数据插入我的数据库…但我的程序正在成功运行,没有任何错误,但当插入数据并提交我的数据时,它将出现如下错误:java.sql.SQLException:无法使用executeQuery()发出数据操作语句。这是我的代码:\ 你能为解决这个问题做些什么 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

我正在用java做一个单独的项目。我想将数据插入我的数据库…但我的程序正在成功运行,没有任何错误,但当插入数据并提交我的数据时,它将出现如下错误:java.sql.SQLException:无法使用executeQuery()发出数据操作语句。这是我的代码:\ 你能为解决这个问题做些什么

  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         


  if (evt.getSource() == jButton1)``
     {
        int x = 0;
        String s1 = jTextField1.getText().trim();
        String s2 = jTextField2.getText();
        char[] s3 = jPasswordField1.getPassword();
        char[] s4 = jPasswordField2.getPassword(); 
        String s8 = new String(s3);
        String s9 = new String(s4);

        String s5 = jTextField5.getText();
        String s6 = jTextField6.getText();
        String s7 = jTextField7.getText();

 if(s8.equals(s9))
        {
            try{



        File image = new File(filename);
        FileInputStream fis = new FileInputStream(image);
        ByteArrayOutputStream bos = new ByteArrayOutputStream();

        byte buf[] = new byte[1024];
        for (int readNum; (readNum = fis.read(buf)) != -1;) {

            bos.write(buf, 0, readNum);
        }
        cat_image = bos.toByteArray();

                PreparedStatement ps = conn.prepareStatement("insert into reg values(?,?,?,?,?,?,?)");
                 ps.setString(1,s1);
                 ps.setString(2,s2);
                 ps.setString(3,s8);
                 ps.setString(4,s5);
                 ps.setString(5,s6);
                 ps.setString(6,s7);
                 ps.setBytes(7,cat_image);

                 rs = ps.executeQuery();
                 if(rs.next())
                 {
                     JOptionPane.showMessageDialog(null,"Data insert Succesfully");
                 }else
                 {
                     JOptionPane.showMessageDialog(null,"Your Password Dosn't match" ,"Acces dinied",JOptionPane.ERROR_MESSAGE);
                 }


            }catch(Exception e)
            {
                System.out.println(e);
            }

        }
使用
ps.executeUpdate()
ps.execute()

执行此PreparedStatement对象中的SQL语句,该对象必须是SQL数据操作语言(DML)语句,例如 插入、更新或删除;或者一个不返回任何内容的SQL语句, 例如DDL语句

执行此PreparedStatement对象中的SQL语句 可以是任何类型的SQL语句。一些准备好的声明返回 多重结果;execute方法处理这些复杂语句 以及由方法处理的更简单的语句形式 executeQuery和executeUpdate。execute方法将返回一个布尔值 指出第一个结果的形式。您必须调用该方法中的任何一个 获取结果的getResultSet或getUpdateCount;你必须打电话 getMoreResults以移动到任何后续结果

然后正确地修改代码

int rowsAffected = ps.executeUpdate();
JOptionPane.showMessageDialog(null,"Data Rows Inserted "+ rowsAffected);

您还必须关闭finally块中的流和连接。

由于错误的sql语句而引发SQLException。插入字符串和整数值时可能出现语法错误。在值之后检查sql语句。整数元素周围应该有“1-0”,字符串元素周围应该有“some value”。

使用
ps.executeUpdate()
或者只使用
ps.execute()
。Kk我已经成功地完成了tnx ur应答。单击左侧帖子下的绿色复选标记。(我想它就在箭头的正下方)。这样,这篇文章就解决了。@nachokk tnx它为甲烷做了很多工作,我已经做了很多了……它正在成功地工作