gpt4 book ai didi

java - java中的mysql查询不适用于数据库

转载 作者:行者123 更新时间:2023-11-29 11:46:59 27 4
gpt4 key购买 nike

我这里有一个方法,应该从我预设的数据库中获取数据。该表已在其中设置了信息。但我无法从我的java程序中的表中检索数据。代码的其余部分像所有 setter 和 getter 一样工作正常。我有另一种方法可以写入数据库中的特定行。这工作正常,所以我知道 eclipse 和我的数据库之间存在连接。

我有什么:

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

我把 String gget= "从 adreskaart WHERE (id =\""+ 中选择 DISTINCT * this.id +"\");";
在mysql中为: SELECT DISTINCT * FROM adreskaart WHERE id =2;

与 id 2 对应的行被选中。所以我的数据库工作正常。我的猜测是我在eclipse中的sql代码是错误的。谁能明白为什么我无法从数据库中读取数据。

非常感谢

编辑在我的changeCard()中,我应该能够调整测试类中的数据,例如: Connectie con= new 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错误,但似乎无法弄清楚。提前致谢。

最佳答案

首先,请确保您的表名称。是addresscard还是adreskaart?

正如您所写,您的查询应该是

SELECT DISTINCT * FROM addresscard WHERE id = 2

但是,现在是(额外的引号)

SELECT DISTINCT * FROM addresscard WHERE id = "2"

如果将 id 存储为整数,则不应添加这些引号。如果 id 存储为 varchar 那么你应该这样做。而且,不需要在查询末尾添加分号。尝试以下操作。

gget= "SELECT DISTINCT * FROM addresscard WHERE id = " + this.id;

关于java - java中的mysql查询不适用于数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34757574/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com