每次输入新名称时,我想在jtextarea
中显示一行。假设用户基于SQLite在jtextfield
中写了“ Paul”,它应该显示它的相应响应,即“ Smith”。我有一个包含多个名称的数据库,无论我写什么,都说“ Peter”,它都显示“ Smith”,而本应显示“ Parker”。这是我的代码:
String sql = "select * from user where name LIKE '% %'";
//show answer from first row only
pst = con.createStatement();
rs = pst.executeQuery(sql);
if(rs.next()){
String ans = rs.getString("answer");
textarea.append(ans +"\n");
}
我想要的是每次用户输入名称时,都应该出现相应的姓氏。我不想替换较旧的文本,因此我将坚持使用append()
。我试图搜索类似的问题,但找不到任何问题。非常感谢你们的帮助。非常感谢!
答案 0 :(得分:0)
您在SQL语句中没有使用任何条件,因此每次的结果都是相同的。
根据准备好的语句设置要查找的名称:
String sql = "select * from user where name LIKE :name";
//show answer from first row only
pst = con.createStatement();
pst.setParameter("name", "%"+yourNameVariable+"%");
还值得注意的是,一旦准备好的语句创建后就应该对其进行缓存,而不是为每个查询创建一个新的语句。准备易于避免的语句会产生开销。