Java 获取特定列JPA、Spring boot

Java 获取特定列JPA、Spring boot,java,mysql,spring-data-jpa,Java,Mysql,Spring Data Jpa,我正在提取特定列,然后将它们的值存储在Stringvar中。 如果我使用的是List var=new ArrayList()然后它工作得很好。但实际上我不需要列表我只需要一个字符串var来存储值。我当前使用的代码 List<String> name = new ArrayList<>(); List<String> address = new ArrayList<>(); try {

我正在提取特定列,然后将它们的值存储在Stringvar中。 如果我使用的是
List var=new ArrayList()然后它工作得很好。但实际上我不需要
列表
我只需要一个
字符串var
来存储值。我当前使用的代码

        List<String> name = new ArrayList<>();
        List<String> address = new ArrayList<>();

        try {
            Connection connection = connectionService.createConnection();
            PreparedStatement statement = connection.prepareStatement("select name,address from students where students_id=" + students_id + "");
            ResultSet rs = statement.executeQuery();

            while (rs.next()) {
                name.add(rs.getString("name"));
                address.add(rs.getString("address"));
            }
        } catch (Exception e){
            log.error(e.toString());

        }
List name=new ArrayList();
列表地址=新的ArrayList();
试一试{
Connection=connectionService.createConnection();
PreparedStatement=connection.prepareStatement(“选择学生的姓名、地址,其中学生id=“+students\u id+”);
ResultSet rs=语句。executeQuery();
while(rs.next()){
name.add(rs.getString(“name”));
add(rs.getString(“address”);
}
}捕获(例外e){
log.error(例如toString());
}
如果我将
列表名
替换为
字符串名
,则在结果集开始之前,它会给出错误结果集异常。 我怎样才能达到预期的效果


使用这样的存储库

@Query("SELECT new map ( s.name as name, s.address as address) FROM Students s where s.studentsId = ?1")
List<Students> getAllStudents(long id);
@Query(“从学生s中选择新地图(s.name作为名称,s.address作为地址),其中s.studentsId=?1”)
列出getAllStudents(长id);

错误和帖子中的代码不匹配不,这是导致错误的原因。该错误是由于在调用rs.next()之前尝试调用rs.getString()引起的。仅供参考,您使用的是JDBC,而不是JPA。您完全没有注意到准备好的语句的要点,即安全地传递参数。谷歌为“JDBC编写的语句教程”,并阅读如何传递参数。忽略异常和不关闭连接也是糟糕的想法。