【问题标题】:retrieve MySQL auto increment in Java在 Java 中检索 MySQL 自动增量
【发布时间】:2016-05-26 11:45:49
【问题描述】:

我正在尝试从数据库中检索 idPatient,但我不断收到错误,idPatient 是自动递增的。但我不知道这是否是导致问题的原因。

这是我正在尝试的代码

public List<Patient> getPatientsFromDatabase() {
    String sql = "SELECT naam, voornaam, gebit, idPatient from patienten";
    try (Connection con = sql2o.open()) {
        return con.createQuery(sql)
                .throwOnMappingFailure(false)
                .executeAndFetch(Patient.class);
    }
}

数据库:

错误:

编辑 - 患者:

public Patient(String voornaam, String naam, String gebit, int id) {
    this.voornaam = voornaam;
    this.naam = naam;
    this.id = id;
    if (null != gebit)switch (gebit) {
        case "melkgebit":
            g = new Melkgebit();
            this.gebit = "melkgebit";
            break;
        case "volwassengebit":
            g = new Volwassengebit();
            this.gebit = "volwassengebit";
            break;
        case "wisselgebit":
            this.gebit = "wisselgebit";
            break;
        default:
            break;
    }
}

【问题讨论】:

  • Patient 类中是否有属性 idPatient?

标签: java mysql jdbc sql2o


【解决方案1】:

似乎Patient 没有idPatient 属性。检查一下

【讨论】:

  • 我在上面加了病人,我觉得还可以
【解决方案2】:

列和属性之间的映射是按名称自动完成的。当然这并不总是可行的

在您的情况下,您已将 id(java 属性)定义为 idPatient(数据库表中的相应列)。 最简单的解决方案是在 sql 查询中使用别名。

尝试改变你的sql:

SELECT naam, voornaam, gebit, idPatient id from patienten;

欲了解更多信息,请访问http://www.sql2o.org/docs/column-mappings/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2016-11-06
    • 2011-07-03
    • 2011-01-14
    • 2019-03-04
    相关资源
    最近更新 更多