我有一个JFrame,其中包含一个包含3个字段的表单,一个是名称字段,另一个是房屋编号和邮政编码字段,用于查找客户详细信息。
当输入正确的信息时,这工作正常,并在 JTable 中显示我想要的内容。但是,如果其中一个字段输入不正确并且找不到信息,是否可以显示自定义错误消息?
目前出现的错误是:"结果集未正确定位,也许您需要调用下一步",是否可以在找不到信息时自定义此方案的消息,而不必在发生错误的其他方案中完全丢失 SQL 异常?
我猜你正在尝试这样的事情:
ResultSet rs = pstmt.executeQuery();
rs.first();
System.out.println(rs.getString("MY_COLUMN_NAME"));
您收到此错误是因为您按照评论中所说的调用rs.next()
或rs.first()
,即使resultset
中没有数据。
因此,不要尝试遵循代码以避免ResultSet not positioned properly, perhaps you need to call next.'
异常。
String myCustomMsg=""; //You can return this variable as custom message.
try
{
Connection con = GET_CONNECTION_HERE;
PreparedStatement pstmt = con.prepareStatement("QUERY HERE");
ResultSet rs = pstmt.executeQuery();
if(rs.next())// This will make sure that if there is no data, don't read the ResultSet
{
System.out.println(rs.getString("MY_COLUMN_NAME"));
myCustomMsg = "Ok";
}
else
myCustomMsg ="No Data found!";
}
catch(SQLException sqle)
{
sqle.printStackTrace();
myCustomMsg ="YOUR CUSTOM MESSAGE HERE....";
}
你可以像这样自定义SQLException
。import java.sql.SQLException;
public class SqlException extends SQLException{
public SqlException(String message){
super(message);
}
public static void main(String[] args) throws SqlException {
throw new SqlException("name not found .!?");
}
}