2016-05-26 63 views
1

我试图从数据库检索idPatient,但我不断收到错误,idPatient是自动增量。但我不知道这是什么原因造成的问题。在Java中检索MySQL自动增量

这是我想要

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); 
    } 
} 

代码中的DB:

enter image description here

错误:

enter image description here

编辑 - 患者:

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; 
    } 
} 
+0

你们有耐心类物业idPatient? – Unknown

回答

1

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

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

试图改变你的SQL:

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

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

+0

谢谢,我一直在寻找几个小时... – Skupaj

+0

不客气。 – Unknown

2

看来Patient没有财产idPatient。检查它

+0

我在上面添加了患者,我认为没关系 – Skupaj