net.ucanaccess.jdbc.ucanaccesssqlexception:ucaexc:::4.0.2用户缺少权限或找不到对象:where

7hiiyaii  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(587)
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();
    }
}

这个编码部分有什么问题?只有update命令不能成功运行,insert、delete、select(sql命令)等其他命令可以成功运行。有人能帮我解决这个问题吗?谢谢

nxagd54h

nxagd54h1#

我通过修改代码解决了这个问题。我使用preparedstatement从输入中获取数据,然后更新到数据库(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();
        }
    }

相关问题