net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc::4.0.2 用户缺少权限或找不到对象:WHERE

问题描述

public void update(String tempid,String name,String sid,int age,String course,String department) throws sqlException {
    try {
        int result = 0;
        s = con.createStatement();
        result = s.executeUpdate("Update db set Name="+name+",Age="+age+ 
                ",Course=" +course+ ",Department="+department+",where StudentID="+tempid);
        if(result > 0) {
            System.out.println("更新成功");
        }
    }catch(Exception e) {
        e.printstacktrace();
    }finally {
        con.close();
    }
}

这个编码部分有什么问题?只有更新命令不能成功运行,其他如插入、删除、选择(sql 命令)可以成功运行。任何人都可以帮我解决这个问题吗?谢谢

解决方法

我通过更改代码解决了这个问题。 我使用 PreparedStatement 从 input 获取数据,然后更新到 database(db) ,错误得到解决。

public void update(String tempid,String name,String sid,int age,String course,String department) throws SQLException {
        try {
            int result = 0;
            PreparedStatement pst = con.prepareStatement("Update db set Name=?,StudentID=?,Age=?,Course=?,Department=? where StudentID=?");
            pst.setString(1,name);
            pst.setString(2,sid);
            pst.setInt(3,age);
            pst.setString(4,course);
            pst.setString(5,department);
            pst.setString(6,tempid);
            result = pst.executeUpdate();
            pst.close();
            if(result > 0) {
                System.out.println("更新成功");
            }
        }catch(Exception e) {
            e.printStackTrace();
        }finally {
            con.close();
        }
    }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...