아래 개선형 DB 긁기 (Java)
역시 동일하게 처리속도도 빠르고 모든 SELECT SQL형태에 대응 한다.
-------------------DAO설정

 private Connection conn=null;
 PreparedStatement pstmt = null;

public Connection connection()
  {
   try
   {
    // 드라이버 적재
    Class.forName(_driver);
   
    // DB 연결
    conn = DriverManager.getConnection(_url, _id, _passwd);
   }
   catch(Exception e)
   {
    System.out.println("DB연결 실패");
    System.out.println(e.getMessage());
   }
   return conn;
  }
-------------------- 읽을부분설정
        DAO dao = new DAO();
        Connection conn = dao.connection();
        PreparedStatement psmt = null;
        PreparedStatement psmt2 = null;

try
  {
         Find= null;
 
         String[] value = new String[2];
         value[0] = start;
         value[1] = end;
           
         Find = GetFastDatas(psmt,value);

---------------- 호출
static public String [][] GetFastDatas(PreparedStatement pstmt,String[] values)
 {
   String[][] datas = null;
  
  ResultSet rs = null;
  boolean state = true;
 
  try
  {
   for(int i=0;i<values.length;i++)
   {
    //System.out.println(values.length + "");
    pstmt.setString(i+1, values[i]);
   }
   
   rs = pstmt.executeQuery();
   
   state = true;
   
   ResultSetMetaData rsmd = rs.getMetaData();
   int numberOfColumns = rsmd.getColumnCount();
   
   ArrayList al = new ArrayList();
   while(rs.next())
   {
    for(int i=1;i<numberOfColumns+1;i++)
    {
     al.add(rs.getString(i));
    }
   
   }
   int rows = al.size()/numberOfColumns;
   
   datas = new String[rows][numberOfColumns];
   for(int i=0;i<rows;i++)
   {
    for(int j=0;j<numberOfColumns;j++)
    {
     datas[i][j] = String.valueOf(al.get(i * numberOfColumns + j));
    }
   }
   
   
  }
  catch(SQLException e)
  {
   e.printStackTrace();
   state = false;
  }
  catch(Exception e)
  {
   e.printStackTrace();
   state = false;
  }
  finally
  {
   
  }
  
   if(!state)
   {
    return null;
   }
  
   return datas;
 }
by Tomoya 2009.04.13 18:03
| 1 2 3 4 5 6 7 ··· 9 |