搜索需要整个字段内容,但我想只搜索几个字母

时间:2014-11-25 11:29:54

标签: java database sqlite search netbeans

我正在使用Sqlite,这是我为我的数据库编写的代码,以及我的程序运行图片显示了这个困境。

我必须输入表字段的全文才能获得搜索结果。但我只想输入几个字母来显示结果。

private void txt_SearchKeyReleased(java.awt.event.KeyEvent evt) {                                       
    // TODO add your handling code here:


    try {

        String sql ="select * from GameList1 where Name =?";
        pst=conn.prepareStatement(sql);
        pst.setString(1, txt_Search.getText());

        rs=pst.executeQuery();
        if(rs.next()) {

            String add1=rs.getString("GameID");
            txt_GameID.setText(add1);
            String add2=rs.getString("Name");
            txt_Name.setText(add2);
            String add3=rs.getString("Company");
            txt_Company.setText(add3);
            String add4=rs.getString("Format");
            txt_Format.setText(add4);
            String add5=rs.getString("YearMade");
            txt_Year.setText(add5);
            String add6=rs.getString("YearReleased");
            txt_Release.setText(add6);


        }
    }
}

1 个答案:

答案 0 :(得分:0)

我假设你想通过只输入几个字母而不是按整行值搜索来从数据库中检索数据。如果这是问题,那么解决方案将是LIKE运算符。

示例:

try {
    String sql ="select * from GameList1 where Name LIKE ?";
    String PERCENTAGE_SIGN="%";
    pst=conn.prepareStatement(sql);
    pst.setString(1, PERCENTAGE_SIGN+txt_Search.getText()+PERCENTAGE_SIGN);

    rs=pst.executeQuery();
    if(rs.next()) {

        String add1=rs.getString("GameID");
        txt_GameID.setText(add1);
        String add2=rs.getString("Name");
        txt_Name.setText(add2);
        String add3=rs.getString("Company");
        txt_Company.setText(add3);
        String add4=rs.getString("Format");
        txt_Format.setText(add4);
        String add5=rs.getString("YearMade");
        txt_Year.setText(add5);
        String add6=rs.getString("YearReleased");
        txt_Release.setText(add6);


                     }
    }