我正在研究我需要从数据库获取数据然后填充jtable的问题。我正在使用Query with like语句。问题是当查询与一条记录匹配时,我无法在表中看到任何记录。这是我的代码。
ResultSet rs=null;
String customer_name = null;
System.out.println("In the verfiy login");
try {
Connect_MYSQL object = new Connect_MYSQL();
conn = object.getConnection();
} catch (Exception e) {
System.out.println("Error while getting connection");
}
try {
Statement statement = (Statement) conn.createStatement();
String Query = "Select * from login where username like'%"+ name+"%' or usertype like'%"+name+"%'";
System.out.println(Query);
rs = statement.executeQuery(Query);
if (rs.next()) {
System.out.println("INsie Rs");
return rs;
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
return rs;
以及我如何在JTABLE中使用
DataBase_Work object=new DataBase_Work();
ResultSet rs2=object.Search_User(name);
String namee=rs2.getString("username");
System.out.println(namee+"User name");
if(rs2==null)
{
JOptionPane.showMessageDialog(null, "No Record Found Against the value", " Not Record Found", JOptionPane.ERROR_MESSAGE);
}
else
{
Show_all_User.setModel(DbUtils.resultSetToTableModel(rs2));
}
答案 0 :(得分:0)
问题是你在next()
上调用ResultSet
来检查它是否为空(在返回之前),因此光标已经超过了第一条记录。如果集合只包含一个条目,则当前行将无效,getString
将返回null。
使用rs.first()
代替rs.next()
来检查ResultSet
是否为空。