본문 바로가기

개발/DB&SQL

DAO와 VO

반응형

DAO(Data Access Object)의 정의


  • 자바 프로그램에서 데이터베이스 작업만 수행하는 클래스
  • 자바 프로그램의 다른 기능을 하는 클래스와 구분하여 작업
  • 화면 기능, 데이터베이스 연동 기능 등을 각각 담당하는 클래스로 나누어 프로그램을 구현
  • 유지 관리가 편리하며, 재사용성이 높음

▣ DAO 클래스 예제 코드

import java util.*;

public class MemberDAO {
	private static final String driver = "oracle.jdbc.driver.OracleDriver";
    private static final String url = "jdbc:oracle:this:@127.0.0.1:1521:XE";
    private static final String user = "scott";
    private static final String pwd = "tiger";
    private Connection con;
    private Statement stmt;
    private ResultSet rs;
    
    public ArrayList<MemberVO> list() {
    	ArrayList<MemberVO> list = new ArrayList<MemberVo>();
        
        try {
        	conDB();
            String query = "select * from Member";
            System.out.println(query);
            ResultSet rs = stmt.executeQuery(query);
            
            while(rs.next()) {
      			String id = rs.getString("id");
                String name = rs.getString("name");
                int height = rs.getString("height");
                int weight = rs.getString("weight");
                int age = rs.getInt("age");
                
              	MemberVO data = new MemberVO();
                data.setId(id);
                data.setName(name);
                data.setHeight(height);
                data.setWeight(weight);
                data.setAge(age);
                list.add(data);
            } //end while
            
            stmt.close();
            con.close();
        }catch(Exception e) {
        	e.printStackTrace();
        }
        
        return list;
     } //end list()
      
     public void connDB() {
      	try {
        	Class.forName(driver);
            System.out.println("Oracle 드라이버 로딩 성공");
            con = DriverManager.getConnection(url,user,pwd);
            System.out.println("Connection 생성 성공");
            stmt = con.createStatement();
            System.out.println("Statement 생성 성공");
        } catch(Exception e) {
        	e.printStackTrace();
        }
     }
 }
                
      

 

 

VO(Value Object)의 정의


  • 여러 다른 타입의 데이터를 다른 클래스로 전달할 때 사용
  • 'TO(Transfer Object)'라고도 한다.

 

VO 만드는 방법

  1. 테이블의 필드명을 속성으로 선언
  2. 생성자를 구현
  3. 각 속성에대한 getter/setter 메서드를 구현1

 

반응형