Cần giúp đỡ thuật toán tìm kiếm trường dữ liệu

Discussion in 'Xây dựng ứng dụng desktop standalone' started by Ngô Thành Trung, 1/6/17.

  1. Ngô Thành Trung

    Ngô Thành Trung New Member

    Mình có MySQL database như hình bên dưới:
    [​IMG]
    Và Frame như hình:
    [​IMG]

    Mình phải làm thế nào để có thể search ra các trường đáp ứng được nhiều điều kiện được nhập vào 3 textFeild kia và show ra bảng?
    Ví dụ như mình muốn tìm kiếm nhân viên ở class CA với mã số 001 chẳng hạn?
    Mình đã thử với lệnh AND trong MySQL nhưng cũng chỉ giải quyết được vấn đề tìm kiếm trên nhiều trường ở database. Còn về phần tìm kiếm với nhiều điều kiện thì không biết giải quyết thế nào?
    Đây là code:
    Code:
    public ArrayList<FilterArrayList> getFilterDatabase(String txtSearch){
            ArrayList<FilterArrayList> filterList = new ArrayList<FilterArrayList>();
            Connection connection = SQLConnection.ConnectDB();
            String sqlquery = "SELECT * FROM filter WHERE id LIKE '%"+txtSearch+"%' AND name LIKE '%"+txtSearch+"%' AND class LIKE '%"+txtSearch+"%'";
          
            Statement st;
            ResultSet rs;
          
            try{
                st = connection.createStatement();
                rs = st.executeQuery(sqlquery);
                FilterArrayList filter;
                while(rs.next()){
                    filter = new FilterArrayList(
                                                rs.getInt("stt"),
                                                rs.getString("id"),
                                                rs.getString("name"),
                                                rs.getString("class")
                                                );
                    filterList.add(filter);
                }
            }catch(SQLException e){
              
            }
            return filterList;
        }
     
        public void Show_Filter_List(){
          
            ArrayList<FilterArrayList> listFilter = getFilterDatabase(txtID.getText());
            DefaultTableModel model = new DefaultTableModel();
            model.setColumnIdentifiers(new Object[]{"STT","ID","Name","Class"});
           // DefaultTableModel model = (DefaultTableModel)Table_Show_Filter.getModel();
            Object[] row = new Object[4];
          
            for (int i = 0; i < listFilter.size(); i++) {
                row[0] = listFilter.get(i).getSTT();
                row[1] = listFilter.get(i).getID();
                row[2] = listFilter.get(i).getName();
                row[3] = listFilter.get(i).getClass();
              
                model.addRow(row);
            }
            Table_Show_Filter.setModel(model);
        }

    Attached Files:

  2. JackV

    JackV Administrator Staff Member

    Sau câu lệnh
    Code:
    String sqlquery = "SELECT * FROM filter WHERE id LIKE '%"+txtSearch+"%' AND name LIKE '%"+txtSearch+"%' AND class LIKE '%"+txtSearch+"%'";
    cho câu lệnh
    Code:
    System.out.println(sqlquery);
    để xác định câu lệnh sql nhé, hình như vấn đề ở đó :)
    Ngô Thành Trung likes this.
  3. Ngô Thành Trung

    Ngô Thành Trung New Member

    Thank bạn! Thời gian qua mình bận mấy việc không tiện vào forum được. Mong bạn thông cảm :D
  4. nhokkokhoc

    nhokkokhoc New Member

    Bạn nên cho 1 ô search theo 1 điều kiện thôi, không mấy khi người ta tìm điều kiện như này, thỏa mãn cả 3 cái.

Chia sẻ trang này