gpt4 book ai didi

java - 如何制作方法 getUserById

转载 作者:行者123 更新时间:2023-11-29 08:31:25 25 4
gpt4 key购买 nike

我需要制作一个方法 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com