我想更改实际上显示所有药物的代码。我想将其设置为仅显示用户添加的那些药物,但看不到其他用户添加的药物。现在每个人都看到每个人的药。
有人可以给我一些建议吗?
private class MedicinesRowMapper implements RowMapper<Medicines> {
@Override
public Medicines mapRow(ResultSet resultSet, int row) throws SQLException {
Medicines medicines = new Medicines();
medicines.setId(resultSet.getLong("id_medicines"));
medicines.setName(resultSet.getString("name"));
medicines.setDrugForm(resultSet.getString("drugform"));
medicines.setQuantity(resultSet.getInt("quantity"));
medicines.setExpirationDate(resultSet.getString("expiration_date"));
medicines.setDescription(resultSet.getString("description"));
User user = new User();
user.setId(resultSet.getLong("user_id"));
user.setUsername(resultSet.getString("username"));
user.setEmail(resultSet.getString("email"));
user.setPassword(resultSet.getString("password"));
medicines.setUser(user);
return medicines;
}
}
private static final String READ_ALL_MEDICINES =
"SELECT user.user_id, username, email, is_active, password, id_medicines, name, drugform, quantity, expiration_date, description "
+ "FROM medicines LEFT JOIN user ON medicines.user_id=user.user_id;";
@Override
public List<Medicines> getAll() {
List<Medicines> medicines = template.query(READ_ALL_MEDICINES, new MedicinesRowMapper());
return medicines;
}
在表medicines
的数据库中,我的列中有user_id
谁添加了药物
尝试使用SQL where子句:
private static final String READ_ALL_MEDICINES = "SELECT user.user_id, username, email, is_active, password, id_medicines, name, drugform, quantity, expiration_date, description FROM medicines LEFT JOIN user ON medicines.user_id=user.user_id " +
" WHERE medicines.user_id = ?";
@Override
public List<Medicines> getAll(Integer userId) {
List<Medicines> medicines = template.query(READ_ALL_MEDICINES, new Object[] { userId }, new MedicinesRowMapper());
return medicines;
}