我製作了一個組件,其中包含一個文本字段和一個列表,其中的文本字段中的鍵名被監聽並相應地生成結果集並添加到列表中。 當我刪除鍵入的鍵並輸入新的鍵時,它不起作用。結果集不會相應地再次獲取。該怎麼辦?結果集(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