Java 检查数据库中的空记录
此代码根据凭证编号搜索表。除此之外,我希望它检查特定凭证号是否存在,如果不存在,那么它应该告诉用户指定的凭证号不存在。目前,当我给出DB中不存在的凭证编号时,它没有任何作用。建议一些代码plzJava 检查数据库中的空记录,java,database,netbeans,Java,Database,Netbeans,此代码根据凭证编号搜索表。除此之外,我希望它检查特定凭证号是否存在,如果不存在,那么它应该告诉用户指定的凭证号不存在。目前,当我给出DB中不存在的凭证编号时,它没有任何作用。建议一些代码plz try { String sql = "select item_type as 'Item Type',md_by as 'Made By'," + "model as 'Model', selling_price as 'Selling Price'," + "selling
try {
String sql = "select item_type as 'Item Type',md_by as 'Made By',"
+ "model as 'Model', selling_price as 'Selling Price',"
+ "selling_date as 'Selling Date', vouch_no as 'Voucher No.',"
+ "vouch_date as 'Voucher Date', record_no as 'Record No.' "
+ "from selling where vouch_no = ?";
ps = con.prepareStatement(sql);
ps.setInt(1, Integer.parseInt(txt_vouchno_s.getText()));
rs = ps.executeQuery();
Table_s.setModel(DbUtils.resultSetToTableModel(rs));
}
catch(SQLException ex){
JOptionPane.showMessageDialog(null, "Error: " + ex);
}
catch(Exception ex){
JOptionPane.showMessageDialog(null, "Error: " + ex);
}
}
您可以创建一个自定义异常(比如NoRecordFoundException),并在结果集为空时抛出它。这需要添加到DbUtils.resultSetToTableModel()中。然后,您可以添加另一个catch块,查看数据库是否没有返回任何记录,并向用户发送相应的消息。为什么不测试为空 在execute语句之后,可以立即使用if语句。比如说
rs = ps.executeQuery();
if (!rs.next()){
JOptionPane.showMessageDialog(null, "Sorry your request with ID.1001 not found");
}
如果sql结果集为空,则无法跳转到非空结果集。您正在设置一个sql
生成一个ps.executeQuery
并查看结果。如果结果为空,则生成一个新的sql
,依此类推。或者你认为vouch_no=1001是什么意思
您需要两个ps=con.prepareStatement(sql)代码>
比如说
rs = ps.executeQuery();
if (!rs.next()){
JOptionPane.showMessageDialog(null, "Sorry your request with ID.1001 not found");
}
一个没有sql的,其中vouch_no=?
psAll = con.prepareStatement(sqlAll);
psSearch = con.prepareStatement(sqlSearch);
...
rsAll = psAll.executeQuery();
Table_s.setModel(DbUtils.resultSetToTableModel(rsAll));
如果搜索并查找凭证,请将表的当前数据记录设置为指向该凭证。如果未找到凭证,请将表设置为第一条数据记录 这是一个很好的选择,但我希望应用程序不仅要检查它们,还要传递它们并跳转到非空的。递归方法呢?我们不能在这里用吗?我试图通过声明一个全局静态变量来编写一个递归方法,该变量存储凭证编号,代码中的其他方法都使用该凭证编号变量,但它不起作用。@Rehan:您不能使用where vouch_no=?";代码>如果你想查看数据库记录,那么就让它离开。但是搜索的标准是什么?我不想显示所有DB记录bcz所有其他按钮都可以处理凭证,如“新建”按钮、“保存”按钮、“更新”按钮、“搜索”按钮和“删除”按钮。@Rehan:对于“更新”和“删除”按钮,您必须拥有凭证。但不是为了得到结果集。使用您的搜索按钮,您可以搜索,但如果此号码不存在,则没有此号码的记录!