package jp.co.mti.lego.fmexample.dao;import jp.co.mti.common.dao.BaseDAO;
import jp.co.mti.common.exception.DAOException;
import jp.co.mti.lego.fmexample.vo.*;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;public class prefDispListDAO extends BaseDAO {
   public prefDispListDAO(Connection con) {
       super( con);
   }   public int getKisyuTotalCount(String sql) throws DAOException {       int totalCount = 0;
      try {
             pstm = con.prepareStatement(sql);
            rs = pstm.executeQuery();            if (rs.next()) {
              totalCount = rs.getInt(1);
            }
            //System.out.println("Total : "+totalCount);
        } catch (SQLException e) {
            e.printStackTrace();
            throw new DAOException(this.getClass().getName(), "getKisyuTotalCount() Error!");
        } finally {
            releaseResultSet();
            releasePreparedStatement();
        }        return totalCount;      }
      
      
      public prefDispVO[] getPrefList(String regionCode)throws DAOException {
    
         prefDispVO vo ;
         prefDispVO[] array = null;
        ArrayList list = new ArrayList();
      /*
        String sqlStr = "SELECT pm.PrefCode, pm.PrefName, am.AreaName " +
                  "FROM RadarAreaCode_Master pm WITH(NOLOCK) " +
                  "LEFT OUTER JOIN AreaJapan_Master am WITH(NOLOCK) ON pm.AreaCode=am.AreaCode " +
                  "WHERE pm.AreaCode = ? ";
        
        */
        
        String sqlStr = "SELECT PrefCode, PrefName FROM PrefCode_Master WITH(NOLOCK) "+
                           " WHERE AreaCode = ? "+
                           " ORDER BY PrefOrder ";
           
        try{
            pstm = con.prepareStatement(sqlStr);
            pstm.setString(1, regionCode);
            rs = pstm.executeQuery();            while (rs.next())
            {
               vo= new prefDispVO();
                vo.setprefName(rs.getString("prefName"));
              vo.setprefCode(rs.getString("prefCode"));
                      if(rs.isLast()){//我想把从数据库里的错后一个记录判断出来然后进行设置但是在调用时候就出错
              vo.setsign("├");
                      }else{vo.setsign("L");}//
              list.add(vo);
              
            }
                  /*
            if(list.size()>0){
               vo=(prefDispVO)list.get(list.size()-1);//这是第二种方法俺就在这里实现了但是第一种不知道哪错了!
               vo.setsign("└");
            }
                  */
        }catch (SQLException e) {
          e.printStackTrace();
          throw new DAOException(this.getClass().getName(), "getKisyuTotalCount() Error!");
        } finally {
          releaseResultSet();
          releasePreparedStatement();
        }        
        
        // System.out.println(list.size());
        //advCateListVO.setdata_line(i,data_lineVO);
        if (list.size() != 0)
        {
           array = new prefDispVO[list.size()];
  
          for (int i = 0; i < list.size(); i++)
          {
            array = (prefDispVO)list.get(i);
          }
        }        return array;
    }
      
}