我有一個方法,它應該從我的預設數據庫中獲取數據。該表已經在其中設置了信息。但我無法從我的Java程序中的表中檢索數據。剩下的代碼像setter和getters一樣正常工作。 我有一個寫入數據庫中的特定行的其他方法。這工作正常,所以我知道eclipse和我的數據庫之間有連接。在java中的mysql查詢不在數據庫中工作
我有什麼:
public void readCard(int id){
try{
java.sql.Statement statement=con.connection.createStatement();
this.id=id;
String gget;
gget= "SELECT DISTINCT * FROM addresscard WHERE (id = \""+
this.id +"\");";
ResultSet rs= statement.executeQuery(gget);
rs.next();
this.id= rs.getInt(1);
this.name= rs.getString(2);
this.adress= rs.getString(3);
this.postcode= rs.getString(4);
this.place= rs.getString(5);
this.telephone= rs.getString(6);
System.out.println(this.id);
}catch(Exception e){
System.out.println(" did not read anything");
}
我把 字符串研技總祕書處= 「SELECT DISTINCT * FROM adreskaart WHERE(ID = \」 「+ this.id +」 \ 「);」;
in mysql as: SELECT DISTINCT * FROM adreskaart WHERE id = 2;
與id 2對應的行被選中。所以我的數據庫工作正常。 我的猜測是我在eclipse中的sql代碼是錯誤的。 任何人都可以看到爲什麼我無法從數據庫中讀取數據。
非常感謝
編輯在我changeCard()我應該能夠在我的測試類像調整數據: Connectie CON =新Connectie(); AddressCard ac = new AddressCard();
ak.readCard(2);
ak.setName("prof dr ir P chimp");
ak.changeCard();
Vector tabel;
tabel=ak.readAllCards();
當然所有的gui好東西在這裏。
public void changeCard(){
try{
java.sql.Statement statement= con.connection.createStatement();
String sset;
sset= "UPDATE adresKaart " + " SET naam = '" + this.naam + "', " + "adres='" + this.adres + "'," +
" postcode='" + this.postcode + "'," + "plaats='" + this.plaats + "'," + "telefoon='" + this.telefoon
+ "' " + " WHERE adreskaart.id = " + this.id;
statement.executeUpdate(sset);
}catch(Exception e){
System.out.println(" did not change anything");
e.printStackTrace();
}
}
似乎我有SQL錯誤,但似乎無法弄清楚。 在此先感謝。
這似乎給出了和以前相同的結果。我認爲我改變數據的方法是錯誤的。 –
rs.next()將強制編譯器轉到下一個查詢來執行並檢索給定的rs.getInt(1),r.getString(2)等等。對?那麼爲什麼要添加while()? –