2016-05-26 69 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