java - 如何制作方法 getUserById

标签 java methods hashmap

我需要制作一个方法 getUserById 女巫将通过其 ID 返回 1 个用户。我认为我需要使用 HashMap,所以这是我的方法:

 public class UserDao {
    private static final String SELECT_USERS = "select * from users_Alana";
    public static List<User> getUsers(JdbcTemplate jdbcTemplate){
        return jdbcTemplate.query(SELECT_USERS,new UserMapper());
    }

    private static class UserMapper implements RowMapper<User> {
        @Nullable
        public User mapRow(ResultSet resultSet, int i) throws SQLException {
            User user = new User();
            user.setId(resultSet.getInt("id"));
            user.setName(resultSet.getString("name"));
            user.setGender(resultSet.getString("gender"));
            user.setAge(resultSet.getInt("age"));
            return user;
        }
    }
    public static void getUserById(int number) throws SQLException {
        HashMap<Integer,User> getUser = new HashMap<Integer, User>();
        if (getUser.containsKey(number)) {
            System.out.println(getUser);
        }
    }
}

我在主类中通过 UserDao.getUserById(2); 调用此方法 我还有一个类 User(具有 int id、age;String name、gender;)构造函数、getter 和 setter在里面。
结果什么都没有。如何解决?

最佳答案

要通过 id 获取用户,我认为您不需要 HashMap,您可以使用:

public static void getUserById(int id) throws SQLException {
    UserDao dao = new UserDao();
    List<User> users = dao.getUsers(jdbcTemplate);//This return a List or users
    User user = user.stream()
            .filter(u -> u.getId() == id)// filter the user by id
            .findFirst()// if find then return the first
            .orElseGet(User::new);// else return new User()
}

但是创建第二个查询以通过 id 获取用户会更好:

private static final String SELECT_USERS_BY_ID = "select * from users_Alana WHERE id = ?1";

关于java - 如何制作方法 getUserById,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47856279/

相关文章:

创建小于 100 个线程时的 Java `OutOfMemoryError`

java数组名称长度问题

C++虚拟克隆方法,异常继承

java - 使用java集合存储一个键但多个值?

java - 错误 : Special characters are not uploaded from csv to database in Liferay 6. 1

java - addActionListener 不起作用

java - 在用于 java - web 应用程序的 Google 应用程序引擎中解析 xml 数据所需的合适解析器

java - 运行自定义平方根函数时出错 (Java)

java - 并发 HashMap - 故障安全问题

java - HashTable的get方法打印所有元素