0

我有一个项目模式,其中包含一个学生记录表,其中包含名字、中间名和姓氏属性。现在使用 java,我想在我的 jTable 中显示学生列表,例如姓氏以 A 开头的学生列表。结果将在我按下一个键后立即自动显示。但我认为我的代码并不完全正确。,


public void search()
{

    try{
        String sql = "Select * from project.student_record where lastname like '%search'";
        st = conn.prepareStatement(sql);
        rs = st.executeQuery();
        stud.setModel(DbUtils.resultSetToTableModel(rs));
    }catch(Exception e){
        System.out.println(e);
    }
}

-----这是我输入字母时的文本字段

 private void searchKeyReleased(java.awt.event.KeyEvent evt) {                                   
    // TODO add your handling code here:
            Thread e = new Thread() {
        public void run() {
            while (true) {
                try {
                    Thread.sleep(1000);
                    search();

                } catch (Exception e) {
                }
            }
        }
    };
    {
    }

    e.start();
}           
4

1 回答 1

0

如果“搜索”通常是姓氏的第一个字母,则您的通配符 (%) 应该只在 LIKE 子句的末尾,而不是在开头。如果您将它留在开头并且我为搜索词键入字母“M”,它将返回所有在第一个字符位置或字符串中任何其他位置具有 M 的结果。

SELECT * FROM student_record WHERE lastname LIKE 'search%'"

以上将要求用户的搜索词位于字符串的开头,并将匹配姓氏字段中的任何后续字符。

于 2013-10-26T12:38:12.433 回答