我制作了一个组件,其中包含一个文本字段和一个列表,其中的文本字段中的键名被监听并相应地生成结果集并添加到列表中。 当我删除键入的键并输入新的键时,它不起作用。结果集不会相应地再次获取。该怎么办?结果集(java.sql)对象在生成结果集后不会获取数据
代码:
@Override
public void keyTyped(KeyEvent ke) {
searchstring = searchstring + ke.getKeyChar();
System.out.println(searchstring);
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException ex) {
System.out.println(ex.toString());
}
try {
Connection con = DriverManager.getConnection(url+databasename,username,password);
Statement st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String s = "select "+columnname+" from "+tablename+" where "+columnname+" like "+"'"+searchstring+"%"+"'";
System.out.println(s);
ResultSet rs = st.executeQuery(s);
list.removeAll();
while(rs.next()){
System.out.println(rs.getString(1));
list.add(rs.getString(1));
}
}catch(Exception ex){
System.out.println(ex.toString());
}
}
你“清”你搜索字符串后,您删除输入密钥? – JohnnyAW
你真的*调试过*你的代码吗? :) –
正确关闭资源。使用准备好的语句。处理BackSpace char,不要只添加到searchString ..如果可能的话根据您的需要使用Stringbuffer/StringBuilder – Mani