繁体   English   中英

休眠 - 线程“main”中的异常 java.lang.IndexOutOfBoundsException:索引:0,大小:0

[英]hibernate - Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

执行此代码时,我正在获取索引超出绑定异常。 谁能帮我解决这个问题。

Session session = new Configuration().configure().buildSessionFactory().openSession();
String sql = "select name from chapter_product where name = 'sample'";
SQLQuery query = session.createSQLQuery(sql);
List results = query.list();
if(results .get(0)!=null) {
System.out.println("value:"+results.get(0));
}else {
System.out.println("no values");
}

错误可能在这里抛出:

List results = query.list();

这意味着,你的数据库中没有这样的数据,结果列表是空的,所以你不能得到它的第一个元素。

您正在尝试访问此行中的空列表第一个元素。

您需要检查空然后您需要访问对象

示例代码

       if(!results.isEmpty()){

System.out.println("value:"+results.get(0));
}
else{
System.out.println("no values");

}

您遇到的问题是您试图从空列表中访问第 0 个元素。

你的支票应该是:

if (results == null || results.isEmpty()) {
    System.out.println("no values");
} else {
    // Do your stuff
}
  if(results .get(0)!=null && !results.isEmpty()) {
  System.out.println("value:"+results.get(0));
 }else {
 System.out.println("no values");
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM