首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sqlException时使用ActiveJDBC

使用sqlException时使用ActiveJDBC
EN

Stack Overflow用户
提问于 2015-05-13 18:18:24
回答 1查看 646关注 0票数 1

我使用ActiveJDBC和Oracle11gDB。当我使用saveIt时,我得到了java.sql.Exception。当我得到它的实例或列表时,一切都好。我做错了什么?

代码语言:javascript
复制
Exception in thread "main" org.javalite.activejdbc.DBException: java.sql.SQLException: Invalid argument
зове, query: INSERT INTO dept (DEPTNO, DNAME, LOC) VALUES (?, ?, ?), params: 45, sdfa, fdg
        at oracle.jdbc.driver.AutoKeyInfo.getNewSql(AutoKeyInfo.java:187)
        at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:5704)
        at org.javalite.activejdbc.DB.execInsert(DB.java:598)
        at org.javalite.activejdbc.Model.insert(Model.java:2698)
        at org.javalite.activejdbc.Model.save(Model.java:2597)
        at org.javalite.activejdbc.Model.saveIt(Model.java:2524)
        at JavaHomeTask.Dept.addPersistence(Dept.java:72)
        at JavaHomeTask.App.addRow(App.java:103)
        at JavaHomeTask.App.main(App.java:50)
Caused by: java.sql.SQLException: Invalid argument
        ... 9 more

这是我的密码:

代码语言:javascript
复制
public void addPersistence() throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        Dept d = new Dept();
        String value;
        for (String s : getAttributesNames()) {
            System.out.println("Enter " + s + " and press Enter button:");
            value = reader.readLine();
            d.set(s, value);
        }
        d.saveIt();

    }

public List<String> getAttributesNames() {
        return Arrays.asList("DEPTNO", "DNAME", "LOC");
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-15 20:58:25

出现问题的原因是ActiveJDBC使用id列作为表中的Primari键来识别应该使用的操作-插入或更新。如果表没有这样的列,程序员应该使用@IdName("nameOfColumn")注释手动指定PK。更多信息,您可以找到这里

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30222442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档