java - 我在以下 SQL 子句中收到错误

标签 java jdbc

Exception in thread "main" java.lang.ClassCastException: org.apache.derby.client.am.Statement cannot be cast to java.beans.Statement
        at CollegeLibrary.NotRegistered.DBStatement(NotRegistered.java:114)
        at CollegeLibrary.NotRegistered.<init>(NotRegistered.java:85)
        at CollegeLibrary.NotRegistered.main(NotRegistered.java:91)
Java Result: 1

在这些部分中有错误

 ResultSet SelectQuery(Statement st) {
        ResultSet rs = null;
        try {
            rs = st.executeQuery("select * from APP.STUDENT");
        } catch (SQLException ex) {
            Logger.getLogger(NotRegistered.class.getName()).log(Level.SEVERE, null, ex);
        }
        return rs;
    }


    void InsertQuery(Statement st) {

        try {
            if(_txtFname.getText().length()>0 & _txtLname.getText().length()>0& _txtAddress.getText().length()>0&_txtPhone.getText().length()>0&_txtDob.getText().length()>0&_txtSTcode.getText().length()>0){

    st.executeQuery("insert into APP.STUDENT values ('"+_txtFname.getText()+"','"+_txtLname.getText()+"','"+_txtAddress.getText()+"','"+_txtPhone.getText()+"','"+_txtDob.getText()+"','"+_txtSTcode.getText()+"')");
            }else{
                System.out.println("please fill up the form");
            }
              } catch (SQLException ex) {
            Logger.getLogger(NotRegistered.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
void  UpdateQuery(Statement st) {

        try {
            if(_txtFname.getText().length()>0 & _txtLname.getText().length()>0){
            st.executeUpdate("update APP.STUDENT SET USERNAME='"+_txtFname.getText()+
                    "', PASSWORD='"+_txtLname.getText()
                    +"' where USERNAME='"+_oldData+"'");
            }else{
                System.out.println("please fill up the form");
            }
              } catch (SQLException ex) {
            Logger.getLogger(NotRegistered.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
void  DeleteQuery(Statement st) {

        try {
            if(_txtFname.getText().length()>0 & _txtLname.getText().length()>0& _txtAddress.getText().length()>0&_txtPhone.getText().length()>0&_txtDob.getText().length()>0&_txtSTcode.getText().length()>0){
                System.out.println(" ");
            st.executeUpdate("delete from APP.STUDENT where USERNAME='"+_oldData+"'");
            }else{
                System.out.println("please fill up the form");
            }
              } catch (SQLException ex) {
            Logger.getLogger(NotRegistered.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

最佳答案

java.lang.ClassCastException: org.apache.derby.client.am.Statement cannot be cast to java.beans.Statement

我认为您的代码中有错误的 import 语句。

java.sql.Statement (你在这里想要的)和java.beans.Statement (这是完全不同的东西)。

在大多数情况下,您要使用 java.sql.PreparedStatement相反,无论如何,这也是绕过名称冲突的步骤。不要将文字值直接放在 SQL 中,使用绑定(bind)变量。

关于java - 我在以下 SQL 子句中收到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4466924/

相关文章:

Java:为什么在使用 Stream+Iterator 时不会发生 ConcurrentModificationException?

java - 从另一个类调用方法的最有效方法

java - 在java中从mysql获取表元数据

java - Statement.execute(sql) 与 executeUpdate(sql) 和 executeQuery(sql)

java - 如何使 jdbc mysql 数据库连接生效

java - 在 module-info.java 中找不到所需的模块

Java,找不到符号并且无法从数组列表中提取数据类型

java - 内部类中基于类型参数的类型声明

java - 如何使用 JDBC 通过 DB link 连接到远程数据库?

java - 在 EJB-Hibernate 环境中使用 JDBC