- Java code
public String getCarType(String carNbr,String gyosyaCode) throws Exception{ // Hibernateのキャッシュ対象 Session session = null; String carType ; try{ // キャッシュ対象の初期化 session = this.getSession(); // SQL文を作成 StringBuffer selSql = new StringBuffer(); selSql.append(" SELECT \n"); selSql.append(" CAR_TYPE \n"); selSql.append(" FROM \n"); selSql.append(" ADDN_CAR \n"); selSql.append(" WHERE \n"); selSql.append(" DELETE_FLG <> '1' \n"); // 検索条件(車番)が空でない場合 if(carNbr != null && !"".equals(carNbr.trim())){ selSql.append(" and CAR_NBR = '" + carNbr + "' \n"); } // 検索条件(運送業者コード)が空でない場合 if(gyosyaCode != null && !"".equals(gyosyaCode.trim())){ selSql.append(" and GYOSYA_CODE = '" + gyosyaCode + "' \n"); } // データベースからデータを取得 SQLQuery query = session.createSQLQuery(selSql.toString()); // 幹線配送料金一覧検索の合計カウントを取得 carType = (query.list().get(0)).toString(); }catch(HibernateException e){ e.printStackTrace(); throw e; }finally{ // 釈放キャッシュ this.releaseSession(session); } // 結果を返す return carType; }
在执行到carType = (query.list().get(0)).toString();时候如果没有数据就会报错
------解决方案--------------------
如果list为空,你再get(0)肯定会出错啊。这样改一下:
List list = query.list();
if(list ==null || list.size == 0){
你的逻辑;
}else{
carType = list.get(0).toString();
}
------解决方案--------------------
List list = query.list();
if(list.size()>0) {
carType = (query.list().get(0)).toString();
}else {
//....
}