我想使用多个Java Swing组件实现搜索功能,用户可以按照(姓名/国籍/专业/经验)进行搜索,并在Jtable中显示结果。
我只有在SQL查询方面遇到了困难,因为如果用户只输入了“姓名”,则不会检索到任何数据,因为它会像这样进入数据库(name,null,null,null),而我的数据库中没有任何空值。
因此,我希望检索所有具有该名称的数据,而不考虑其他列,但同时,如果他们选择了特定的专业,例如,我希望检索所有具有所选名称和专业的数据,以此类推。
我希望您理解我的问题。
我目前的SQL语句:
public ArrayList<Applications> getData(String name, String nationality, String specialty, String experience) {
ArrayList<Applications> list = new ArrayList<Applications>();
Connection con = getConnection();
Statement st;
ResultSet rows;
try {
st = con.createStatement();
rows = st.executeQuery("SELECT * FROM applications WHERE name LIKE '%" + name+"%'"
+ " AND (nationality LIKE '" + nationality+"')"
+ " AND (specialty LIKE '" + specialty+"')"
+ " AND (experience LIKE '" + experience+"')");
Applications applications;
while(rows.next()) {
applications = new Applications(
rows.getInt("id"),
rows.getString("name"),
rows.getString("nationality"),
rows.getString("Specialty"),
rows.getString("experience")
);
list.add(applications);
}
} catch (SQLException ex) {
Logger.getLogger(MyQuery.class.getName()).log(Level.SEVERE, null, ex);
}
return list;
}
null
或空值,你也没有适应你的请求。此外,按照你的写法,所有条件都必须有效才能检索数据。 - DamCx