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 đề ở đó :)

Chia sẻ trang này