gpt4 book ai didi

java - JDBC 插入查询不在数据库中插入记录

转载 作者:搜寻专家 更新时间:2023-10-30 22:06:04 25 4
gpt4 key购买 nike

我有个小问题。我的数据库不工作,我不知道为什么..没有错误。一切看起来都很好,我正在输入值,我的网络应用程序说“已保存到数据库中”,但事实并非如此。数据库为空。这是我的代码:

public class ConnectionManager {

private static String dbURL = "jdbc:derby://localhost:1527/CarRental";
private static Connection conn = null;
private static Statement stmt = null;

public void createConnection() {
try {
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
conn = DriverManager.getConnection(dbURL,"GioRgio","12345");
} catch (Exception ex) {
ex.printStackTrace();
}
}

public void addClient(Klienci klienci) {

String query = "INSERT INTO KLIENCI"
+ "(ID, IMIE, NAZWISKO, ADRES, TELEFON, MAIL)"
+ " VALUES (" + klienci.getId_klienta() + ",'" + klienci.getImie() + "','"
+ klienci.getNazwisko() + "'," + klienci.getAdres()+"',"+klienci.getTelefon()+"',"+klienci.getMail() + ")";

try {
stmt = conn.createStatement();
stmt.executeUpdate(query);
stmt.close();
} catch (SQLException sqlExcept) {
sqlExcept.printStackTrace();
}
}
public void closeConnection() {
try {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
DriverManager.getConnection(dbURL + ";shutdown=true");
conn.close();
}
} catch (SQLException sqlExcept) {
}

}
}

最佳答案

问题的直接原因似乎是 INSERT 语句(地址)中的文字转义不正确。我们可以尝试解决这个问题,但使用准备好的语句会更好,它会自行处理转义。

String sql = "INSERT INTO KLIENCI (ID, IMIE, NAZWISKO, ADRES, TELEFON, MAIL) ";
sql += "VALUES (?, ?, ?, ?, ?, ?,)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, klienci.getId_klienta());
ps.setString(2, klienci.getImie());
ps.setString(3, klienci.getNazwisko());
ps.setString(4, klienci.getAdres());
ps.setString(5, klienci.getTelefon());
ps.setString(6, klienci.getEmail());

ps.executeUpdate();

关于java - JDBC 插入查询不在数据库中插入记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53753104/

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