从MYSQL中的特定表中选择数据

时间:2013-10-26 12:06:09

标签: java mysql sql

我有一个项目架构,其中包含一个student_record表,其中包含firstname,middlename和lastname属性。 现在使用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);
    }
}

-----当我输入一个字母时,这是用于textField的

 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();
}           

1 个答案:

答案 0 :(得分:0)

如果'search'通常是姓氏的第一个字母,那么您的外卡(%)应该只在LIKE子句的末尾,而不是在开头。如果你把它留在开头,我为搜索词输入字母“M”,那么它将返回所有结果,其中M位于第一个字符位置或字符串中的任何其他位置。

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

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