Practice makes perfect

[JAVA] JAVA&DATABASE - (DAO, DTO) 본문

빅데이터/JAVA

[JAVA] JAVA&DATABASE - (DAO, DTO)

kerpect 2020. 6. 6. 17:41

 

DAO (Data Access Object) :  데이터 접근 객체 

- sql문을 사용하여 DataBase와 연동 할 때 마다 갹체를 지정해줘야하는 것은 불편한 과정입니다. 이러한 불편하고 비효율적인 과정을 줄이기 위해서 고안한 방법이 DAO 입니다. DAO는 DB의 데이터를 다루기 위해 만들어진 객체입니다.

 

장점

- DataBase에서 효율적으로 쿼리를 받아드릴 수 있습니다.

- DBMS를 변동하거나 수정사항이 있을 때, 소스를 통째로 고쳐야 한다면 번거로울 수 있습니다. 따라서 유지보수를 편하게 하기 위해 사용하도록 해줍니다.

- DataSoure에 정보의 저장, 변경, 삭제, 검색 기능을 제공하기 위한 메소드가 선언이 가능합니다.

public class DAO {
	//BasicDataSource ds;
	
    private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
    private static final String URL= "jdbc:oracle:thin:@localhost:1521:xe";
    private static final String USER = "scott"; //DB ID  
    private static final String PASS = "tiger"; //DB 패스워드
    
    public  DAO() {

    	try {
			Class.forName(DRIVER);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
      public void insert(DTO_Member dto) {
	
		Connection conn = null;
		PreparedStatement pstmt = null;
		
		try {
			//conn = ds.getConnection();
			conn = DriverManager.getConnection(URL,USER, PASS);
			String sql = "insert into member values(?, ?, ?, ?)";
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, dto.getName());
			pstmt.setString(2,dto.getTel());
			pstmt.setString(3,dto.getId());
			pstmt.setString(4,dto.getPw());
			
			int result = pstmt.executeUpdate();
			
			if(result == 1) {
				System.out.println("회원가입 되었습니다.");
			}else {
				System.out.println("회원가입 실패하였습니다. \n 다시 입력해주세요.");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				if(pstmt != null) { pstmt.close(); }
				if(conn != null) { conn.close(); }
			} catch (SQLException e) {
				System.out.println(e.getMessage());
			}
		}
	}

1) DataBase와 연결을 해줍니다.

2) sql문을 이용하여 정의를 한 다음 값을 불러올 때 DTO의 정의 되어있는 getter, setter method를 활용하여 결과를 가져 옵니다.

 

 

DTO (Data Transfer Object) : 데치터 전송 객체 

- DAO를 통해서 DataBase에 접근할 때 데이터가 오고가고 할 때 DTO가 매개체 역할을 합니다. DTO는 getter 와 setter method를 통해서 접근할 수 있도록 합니다.

- DTO는 set method를 통해서 값을 값을 전달 받고 get method를 통해서 값을 가져오도록 합니다.

 

class DTO_Member {
	
	private String name;
	private String tel;
	private String id;
	private String pw;

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPw() {
		return pw;
	}
	public void setPw(String pw) {
		this.pw = pw;
	}
	
	//DTO 객체 확인
	@Override
	public String toString() {
		 return "InFoDTO [name=" + name + ", tel=" + tel + ", id=" + id
	                + ", pw="  + pw + "]";
	}
}

getter, setter 메소드만 가진 클래스로 되어있습니다.

 

 

 

 

 

'빅데이터 > JAVA' 카테고리의 다른 글

[JAVA] JAVA&DATABASE 연결  (0) 2020.05.27
[JAVA] 이클립스, DB 연동 환경설정  (0) 2020.05.26
[JAVA] SWING (2)  (0) 2020.05.25
[JAVA] SWING(1)  (0) 2020.05.23
[JAVA] 네트워크(NETWORK)  (0) 2020.05.23