当用户通过输入名称(一个人可以有名字和姓氏)搜索某些相关详细信息时,我想将数据加载到jTable中。我使用了以下查询,它没有给我结果。请告诉我这里有什么问题。
查询 - " SELECT id
,personal_id
,first_name
,last_name
FROM person_profile
WHERE first_name
喜欢? '%'或者last_name
喜欢?'%&#39 ;;"
public static Profile searchProfileByName(String name) {
Profile profile = new Profile();
try {
Connection conn = DbConnect.getDBConnection();
PreparedStatement pst = conn.prepareStatement("SELECT `id`, `personal_id` , `first_name` , `last_name` FROM `person_profile` WHERE `first_name` LIKE ?'%' OR `last_name` LIKE ?'%';");
pst.setString(1, name);
pst.setString(2, name);
ResultSet rs = pst.executeQuery();
while (rs.next()) {
profile.setId(rs.getString(1));
profile.setPersonalId(rs.getString(2));
profile.setFirstName(rs.getString(3));
profile.setLastName(rs.getString(4));
}
conn.close();
return profile;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
答案 0 :(得分:1)
我习惯于连接'%'在这样的参数:
PreparedStatement pst = conn.prepareStatement("SELECT first_name FROM person_profile WHERE first_name LIKE ?");
...
pst.setString(1, StringUtils.defaultIfBlank(name, "") + "%");