Java 如何检查数据库中是否存在输入的数据
我想知道我这里缺少什么,我无法将文本字段中的“id”与数据库中的数据进行比较 例如: 如果TextField1==指向数据库中的数据 输出:GSW扫掠 请检查图像输出。 我附上下面的图像文件 如果对象不为null,则可以对Integer对象使用intValueJava 如何检查数据库中是否存在输入的数据,java,jdbc,Java,Jdbc,我想知道我这里缺少什么,我无法将文本字段中的“id”与数据库中的数据进行比较 例如: 如果TextField1==指向数据库中的数据 输出:GSW扫掠 请检查图像输出。 我附上下面的图像文件 如果对象不为null,则可以对Integer对象使用intValue while(rs.next()){ id = rs.getInt("id"); if(Integer.parseInt(TF[0].getText()).intValue() == id){
while(rs.next()){
id = rs.getInt("id");
if(Integer.parseInt(TF[0].getText()).intValue() == id){
System.out.println(id);
}
}
如果对象不为null,则可以对Integer对象使用intValue
while(rs.next()){
id = rs.getInt("id");
if(Integer.parseInt(TF[0].getText()).intValue() == id){
System.out.println(id);
}
}
您没有在语句中设置id参数的值。不熟悉Java,但在C语言中可能类似
语句.参数。AddWithValue@id,id您没有在语句中设置id参数的值。不熟悉Java,但在C语言中可能类似
语句.参数。AddWithValue@id,id我看到了一些错误 在查询中使用一个参数,从item_列表中选择*,其中id=?;因此,请使用预先准备好的声明 将参数设置为PreparedStatementPS=connection.preparedStatementquery;使用ps.setInt1,Integer.parseIntTF[0].getText; 不要在不记录异常的情况下捕获异常,这里您的查询是一个语法错误,但您不知道它。 注意数据库字段名称Id中的大写字母 这可能不是一切
当然,现在您只获得了具有该ID的行,您可以简单地检查是否至少有一行返回,以验证它是否存在。我看到了一些错误 在查询中使用一个参数,从item_列表中选择*,其中id=?;因此,请使用预先准备好的声明 将参数设置为PreparedStatementPS=connection.preparedStatementquery;使用ps.setInt1,Integer.parseIntTF[0].getText; 不要在不记录异常的情况下捕获异常,这里您的查询是一个语法错误,但您不知道它。 注意数据库字段名称Id中的大写字母 这可能不是一切 当然,现在您只获得了具有该ID的行,您可以简单地检查是否至少有一个行返回,以验证它是否存在 首先,您需要记录抛出的异常的堆栈跟踪。至少可以在catch部分使用exc.printStackTrace。 其次,您的问题是您为SQL查询声明了一个参数,但没有为其添加任何值。 您不需要迭代所有结果集来检查是否存在具有此类id的用户。您可以检查结果集是否为空。 首先,您需要记录抛出的异常的堆栈跟踪。至少可以在catch部分使用exc.printStackTrace。 其次,您的问题是您为SQL查询声明了一个参数,但没有为其添加任何值。 您不需要迭代所有结果集来检查是否存在具有此类id的用户。您可以检查结果集是否为空。
谢谢你们!我一直在尝试并阅读你的所有建议,我已经找到并调试了它。感谢那个说我需要检查我能在捕获中得到什么信息的人 谢谢你的帮助
Connection con = connect.getConnection();
String query = "SELECT * FROM item_list";
Statement st;
ResultSet rs;
int id;
try{
st = con.createStatement();
rs = st.executeQuery(query);
while(rs.next()){
id = rs.getInt("id");
if(Integer.parseInt(TF[0].getText()) == id){
System.out.println(id);
JOptionPane.showMessageDialog(null, "FOUND!");
}
else{
JOptionPane.showMessageDialog(null, "Not Found!");
}
}
}catch(SQLException exc){
JOptionPane.showMessageDialog(null, exc.getMessage());
}
谢谢你们!我一直在尝试并阅读你的所有建议,我已经找到并调试了它。感谢那个说我需要检查我能在捕获中得到什么信息的人 谢谢你的帮助
Connection con = connect.getConnection();
String query = "SELECT * FROM item_list";
Statement st;
ResultSet rs;
int id;
try{
st = con.createStatement();
rs = st.executeQuery(query);
while(rs.next()){
id = rs.getInt("id");
if(Integer.parseInt(TF[0].getText()) == id){
System.out.println(id);
JOptionPane.showMessageDialog(null, "FOUND!");
}
else{
JOptionPane.showMessageDialog(null, "Not Found!");
}
}
}catch(SQLException exc){
JOptionPane.showMessageDialog(null, exc.getMessage());
}
好的,您正在catch中这样做,打印异常以找出问题。我在PhpMyAdmin中看到该字段名为Id,您在查询中使用Id。我打赌是一个未知id的字段异常,除非您的id确实相等,否则您不应该使用PrePred语句吗?请尝试记录异常堆栈跟踪,它将帮助您正确理解问题。好的,您正在捕获中执行此操作,打印异常以找出问题。我在PhpMyAdmin中看到该字段名为Id,您在查询中使用Id。我打赌是一个未知id的字段异常,除非您的id确实相等,否则您不应该使用prepred语句吗?请尝试记录异常堆栈跟踪,这将帮助您正确理解问题