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 |