List getAll()-Spring JDBCTemplate

问题描述 投票:0回答:1

我想更改实际上显示所有药物的代码。我想将其设置为仅显示用户添加的那些药物,但看不到其他用户添加的药物。现在每个人都看到每个人的药。

有人可以给我一些建议吗?

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谁添加了药物

spring-boot spring-mvc spring-jdbc jdbctemplate rowmapper
1个回答
0
投票

尝试使用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;
        }
© www.soinside.com 2019 - 2024. All rights reserved.