Java 获取特定列JPA、Spring boot
我正在提取特定列,然后将它们的值存储在Stringvar中。 如果我使用的是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 {
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编写的语句教程”,并阅读如何传递参数。忽略异常和不关闭连接也是糟糕的想法。