public interface UserDao {
User getUserById(int id);
}
public class UserMapperImpl implements UserDao {
private final SqlSessionFactory sqlSessionFactory;
public UserMapperImpl(SqlSessionFactory sqlSessionFactory) {
this.sqlSessionFactory = sqlSessionFactory;
}
public User getUserById(int id) {
try (SqlSession session = sqlSessionFactory.openSession()) {
return session.selectOne("getUserById", id);
}
}
}
public interface UserDao {
User getUserById(int id);
}
public class UserDaoImpl implements UserDao {
private final JdbcTemplate jdbcTemplate;
public UserDaoImpl(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
public User getUserById(int id) {
return jdbcTemplate.queryForObject(
"SELECT * FROM users WHERE id = ?",
new Object[]{id},
(rs, rowNum) -> {
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
return user;
});
}
}
public interface UserRepository extends JpaRepository<User, Integer> {
User findByUsername(String username);
}
@Service
public class UserService {
private final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public User findUserByUsername(String username) {
return userRepository.findByUsername(username);
}
}