如何使用Java搜索表单中的多个字段?

如何使用Java搜索表单中的多个字段?,java,sql,eclipse,jdbc,Java,Sql,Eclipse,Jdbc,我对我的应用程序的搜索查询有问题。我希望能够使用表单搜索多个字段,并在表中显示它们。表单基本上在文本字段和组合框中。请帮忙。这是我的密码: 当我单击搜索按钮时,错误是: com.microsoft.sqlserver.jdbc.SQLServerException:未为参数1设置该值 btnSearch = new JButton("SEARCH"); btnSearch.setFont(new Font("Verdana", Font.PLAIN, 13));

我对我的应用程序的搜索查询有问题。我希望能够使用表单搜索多个字段,并在表中显示它们。表单基本上在文本字段和组合框中。请帮忙。这是我的密码:

当我单击搜索按钮时,错误是:

com.microsoft.sqlserver.jdbc.SQLServerException:未为参数1设置该值

btnSearch = new JButton("SEARCH");
        btnSearch.setFont(new Font("Verdana", Font.PLAIN, 13));
        btnSearch.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {

                ArrayList<Transmittal> getTransmittal;

                try{
                    Connection connection = ConnectDB.getConnection();
                    StringJoiner sj = new StringJoiner (" AND ");
                    String query = "SELECT TRANSMITTAL_ID AS \"TRANSMITTAL ID\", TRANSMITTAL_TYPE AS \"TRANSMITTAL TYPE\", TITLE, PURPOSE, ORIGINAL_TRANSMITTAL_ID AS \"TRANSMITTAL REFERENCE\","
                            + "COUNTRY, AREA, DATA_TYPE AS \"DOCUMENT TYPE\", PAC, TAPE_3590 AS \"3590\", TAPE_3592 AS \"3592\", HDD, CD, HARDCOPY, OTHERS, "
                            + "SENDER, SENDER_COMP AS \"SENDER'S COMPANY\", DATE_SEND AS \"DATE SEND\", RECEIVER, RECEIVER_COMP AS \"RECEIVER'S COMPANY\", DATE_RECEIVED AS \"DATE RECEIVED\", REMARKS, TRANSMITTAL_FILE_LINK AS \"TRANSMITTAL LINK\" "
                            + "FROM TRANSMITTAL_TABLE WHERE ";

                    List values = new ArrayList();
                    if((textFieldTransmittalID != null) && (!textFieldTransmittalID.getText().isEmpty())){
                        sj.add("TRANSMITTAL_ID LIKE ?");
                        values.add(textFieldTransmittalID);
                    }
                    if((comboBoxTType != null)  || (comboBoxTType.getItemCount() != -1)) {
                        sj.add("TRANSMITTAL_TYPE LIKE ?");
                        values.add(comboBoxTType);
                    }
                    if((textFieldTitle != null) || (!textFieldTitle.getText().isEmpty())){
                        sj.add("TITLE LIKE ?");
                        values.add(textFieldTitle);
                    }
                    if((comboBoxPurpose != null) && (comboBoxPurpose.getItemCount() != 0)){
                        sj.add("PURPOSE LIKE ?");
                        values.add(comboBoxPurpose);
                    }
                    if((textFieldTRef != null) && (!textFieldTRef.getText().isEmpty())){
                        sj.add("ORIGINAL_TRANSMITTAL_ID LIKE ?");
                        values.add(textFieldTRef);
                    }
                    if((comboBoxSender != null) && (comboBoxSender.getItemCount() != 0)){
                        sj.add("SENDER LIKE ?");
                        values.add(comboBoxSender);
                    }
                    if((textFieldSComp != null) && (!textFieldSComp.getText().isEmpty())){
                        sj.add("SENDER_COMP LIKE ?");
                        values.add(textFieldSComp);
                    }
                    if((comboBoxReceiver != null) && (comboBoxReceiver.getItemCount() != 0)){
                        sj.add("RECEIVER LIKE ?");
                        values.add(comboBoxReceiver);
                    }
                    if((textFieldRComp != null) && (!textFieldRComp.getText().isEmpty())){
                        sj.add("RECEIVER_COMP LIKE ?");
                        values.add(textFieldRComp);
                    }
                    if((textFieldRemarks != null) && (!textFieldRemarks.getText().isEmpty())){
                        sj.add("REMARKS LIKE ?");
                        values.add(textFieldRemarks);
                    }
                    if((textField3590 != null) && (!textField3590.getText().isEmpty())){
                        sj.add("TAPE_3590 LIKE ?");
                        values.add(textField3590);
                    }
                    if((textField3592 != null) && (!textField3592.getText().isEmpty())){
                        sj.add("TAPE_3592 LIKE ?");
                        values.add(textField3592);
                    }
                    if((textFieldHdd != null) && (!textFieldHdd.getText().isEmpty())){
                        sj.add("HDD LIKE ?");
                        values.add(textFieldHdd);
                    }
                    if((textFieldCd != null) && (!textFieldCd.getText().isEmpty())){
                        sj.add("CD LIKE ?");
                        values.add(textFieldCd);
                    }
                    if((textFieldOthers != null) && (!textFieldOthers.getText().isEmpty())){
                        sj.add("OTHERS LIKE ?");
                        values.add(textFieldOthers);
                    }
                    if((textFieldHardcopy != null) && (!textFieldHardcopy.getText().isEmpty())){
                        sj.add("HARDCOPY LIKE ?");
                        values.add(textFieldHardcopy);
                    }
                    if((textFieldArea != null) && (!textFieldArea.getText().isEmpty())){
                        sj.add("AREA LIKE ?");
                        values.add(textFieldArea);
                    }
                    if((textFieldPac != null) && (!textFieldPac.getText().isEmpty())){
                        sj.add("PAC LIKE ?");
                        values.add(textFieldPac);
                    }
                    if((comboBoxCountry != null) && (comboBoxCountry.getItemCount() != 0)){
                        sj.add("COUNTRY LIKE ?");
                        values.add(comboBoxCountry);
                    }
                    if((textFieldDataType != null) && (!textFieldDataType.getText().isEmpty())){
                        sj.add("DATA_TYPE LIKE ?");
                        values.add(textFieldDataType);
                    }
                    if((textFieldTLink != null) && (!textFieldTLink.getText().isEmpty())){
                        sj.add("TRANSMITTAL_FILE_LINK LIKE ?");
                        values.add(textFieldTLink);
                    }

                query += sj.toString();

                    try(PreparedStatement pst = connection.prepareStatement(query)){

                        for (int index = 1; index > values.size(); index++){
                            pst.setObject(index + 1, values.get(index));

                        }
                        try (ResultSet rs = pst.executeQuery()){

                            if (rs.next()) {

                                tableAsset.setModel(DbUtils.resultSetToTableModel(rs));

                            }
                        }
                        pst.setString(1, textFieldTransmittalID.getText());
                        pst.setString(2, comboBoxTType.getSelectedItem().toString());
                        pst.setString(3, textFieldTitle.getText());
                        pst.setString(4, comboBoxPurpose.getSelectedItem().toString());
                        pst.setString(5, textFieldTRef.getText());
                        pst.setString(6, comboBoxSender.getSelectedItem().toString());
                        pst.setString(7, textFieldSComp.getText());
                        pst.setString(8, comboBoxReceiver.getSelectedItem().toString());
                        pst.setString(9, textFieldRComp.getText());
                        pst.setString(10, textFieldRemarks.getText());
                        pst.setInt(11, Integer.parseInt(textField3590.getText()));
                        pst.setInt(12, Integer.parseInt(textField3592.getText()));
                        pst.setInt(13, Integer.parseInt(textFieldHdd.getText()));
                        pst.setInt(14, Integer.parseInt(textFieldCd.getText()));
                        pst.setInt(15, Integer.parseInt(textFieldOthers.getText()));
                        pst.setInt(16, Integer.parseInt(textFieldHardcopy.getText()));
                        pst.setString(17, textFieldArea.getText());
                        pst.setString(18, textFieldPac.getText());
                        pst.setString(19, comboBoxCountry.getSelectedItem().toString());
                        pst.setString(20, textFieldDataType.getText());
                        pst.setString(21, textFieldTLink.getText()); 

                        try (ResultSet rs = pst.executeQuery()){
                            if(rs.next()){
                        ResultSet rst = pst.executeQuery();
                        tableAsset.setModel(DbUtils.resultSetToTableModel(rst));
                            }
                        }
                    } catch(SQLException exp){
                        exp.printStackTrace();
                        JOptionPane.showMessageDialog(null, exp);
                    }
                } catch(Exception e){
                    e.printStackTrace();
                    JOptionPane.showMessageDialog(null, e);
                }




        }

        });
btnSearch=newjbutton(“搜索”);
setFont(新字体(“Verdana”,Font.PLAIN,13));
addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件arg0){
ArrayList GetTransmital;
试一试{
Connection-Connection=ConnectDB.getConnection();
细木工sj=新细木工(“和”);
String query=“选择传递标识为\“传递标识\”,传递类型为\“传递类型\”,标题、目的、原始传递标识为\“传递参考\”
+国家、地区、数据类型为“文档类型”、PAC、磁带3590为“3590”、磁带3592为“3592”、硬盘、CD、硬拷贝、其他
+“发送方,发送方公司为“发送方公司”,日期发送为“日期发送”,接收方,接收方公司为“接收方公司”,日期接收为“接收日期”,备注,传输文件链接为“传输链接”
+“从传送表中,其中”;
列表值=新的ArrayList();
如果((textfieldtranmittalid!=null)&(!textfieldtranmittalid.getText().isEmpty()){
sj.添加(“传输ID样?”);
添加(textfieldtranmittalid);
}
if((comboBoxTType!=null)| |(ComboxTType.getItemCount()!=-1)){
sj.添加(“传输类型类似?”);
value.add(comboBoxTType);
}
如果((textFieldTitle!=null)| |(!textFieldTitle.getText().isEmpty())){
sj.添加(“类似标题?”);
value.add(textFieldTitle);
}
如果((comboBoxPurpose!=null)&&(comboBoxPurpose.getItemCount()!=0)){
sj.添加(“目的类似?”);
添加(comboBoxPurpose);
}
如果((textFieldTRef!=null)&(!textFieldTRef.getText().isEmpty()){
sj.添加(“原始传送单”类似于?);
添加(textFieldTRef);
}
如果((comboBoxSender!=null)&&(ComboxSender.getItemCount()!=0)){
sj.添加(“类似发送者?”);
添加(comboBoxSender);
}
如果((textfieldscop!=null)&(!textfieldscop.getText().isEmpty()){
sj.添加(“发送方公司样?”);
添加(textfieldscop);
}
if((comboBoxReceiver!=null)&&(comboBoxReceiver.getItemCount()!=0)){
sj.添加(“类似接收器?”);
添加(comboBoxReceiver);
}
如果((textFieldRComp!=null)&(!textFieldRComp.getText().isEmpty()){
sj.添加(“类似接收方的公司?”);
添加(textFieldRComp);
}
if((textfieldmarkents!=null)&&(!textfieldmarkents.getText().isEmpty()){
sj.添加(“类似于?”)的备注;
添加(文本字段备注);
}
如果((textField3590!=null)&(!textField3590.getText().isEmpty()){
sj.添加(“磁带3590类似?”);
添加(textField3590);
}
如果((textField3592!=null)&(!textField3592.getText().isEmpty()){
sj.添加(“磁带3592like?”);
添加(textField3592);
}
如果((textFieldHdd!=null)&(!textFieldHdd.getText().isEmpty()){
sj.添加(“类似硬盘驱动器?”);
添加(textFieldHdd);
}
如果((textFieldCd!=null)&(!textFieldCd.getText().isEmpty()){
sj.添加(“类CD?”);
添加(textFieldCd);
}
如果((textFieldOthers!=null)&&(!textFieldOthers.getText().isEmpty()){
sj.添加(“其他人喜欢?”);
添加(textFieldOthers);
}
如果((textFieldHardcopy!=null)&(!textFieldHardcopy.getText().isEmpty()){
sj.添加(“类似硬拷贝?”);
添加(文本字段硬拷贝);
}
如果((textFieldArea!=null)&&(!textFieldArea.getText().isEmpty()){
sj.添加(“类面积?”);
添加(textFieldArea);
}
如果((textFieldPac!=null)&(!textFieldPac.getText().isEmpty()){
sj.添加(“类似PAC?”);
添加(textFieldPac);
}
if((comboBoxCountry!=null)&&(comboBoxCountry.getItemCount()!=0)){
sj.添加(“类似国家的?”);
添加(ComboxCountry);
}
如果((textFieldDataType!=null)&(!textFieldDataType.getText().isEmpty()){
sj.添加(“数据类型类似?”);
添加(textFieldDataType);
}
如果((textFieldTLink!=null)&&(!text
for (int index = 1; index > values.size(); index++){
    pst.setObject(index + 1, values.get(index));
                  ^^^^^^^^^
}
List<Test> tests = some list;
Test test = tests.stream().filter(testTemp -> testTemp.getSomeVal().equals("some val")&&testTemp.getOtherVal().equals("other val")))
.findAny().
orElse(null);