[Web] 데이터베이스 연동
2024. 8. 19. 23:56ㆍ자바 웹 개발/웹 데이터베이스
오라클 데이터베이스 연동
오라클 데이터베이스와 연동하기 위해서는 드라이버가 필요하다. 다음 경로에 설치한다.
클래스 생성
VO는 데이터를 담은 객체이다. 데이터베이스와 직접 상호작용을 합니다.
DAO는 데이터베이스와 직접 상호작용하는 객체이다. 아래는 DAO의 특성이다.
- 데이터베이스 연결 및 해제
- 데이터 CRUD(Create, Read, Update, Delete) 작업 수행
- SQL 쿼리 실행 및 결과 반환
VO 예시)
데이터에서 조회한 레코드의 컬럼 값을 속성에 저장해야하니 컬럼 이름과 동일한 자료형과 이름으로 소성을 선언하고 겟터, 셋터를 생성한다.
public class MemberVO {
private String id;
private String pwd;
private String name;
private String email;
private Date joinDate;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getJoinDate() {
return joinDate;
}
public void setJoinDate(Date joinDate) {
this.joinDate = joinDate;
}
}
DAO 예시)
public class MemberDAO {
private PreparedStatement pstmt;
private Connection con;
private DataSource dataFactory;
public MemberDAO() {
try {
Context ctx = new InitialContext();
Context envContext = (Context) ctx.lookup("java:/comp/env");
dataFactory = (DataSource) envContext.lookup("jdbc/oracle");
} catch (Exception e) {
e.printStackTrace();
}
}
public boolean isExisted(MemberVO memberVO) {
boolean result = false;
String id = memberVO.getId();
String pwd = memberVO.getPwd();
try {
con = dataFactory.getConnection(); //DECODE(A, B, X, Y) A = B 이면 X를 출력, A ≠ B 이면 Y를 출력
String query = "SELECT DECODE(COUNT(*),1,'true','false') AS RESULT FROM T_MEMBER"; //오라클 decode()함수를 이용하여 ID와 비밀번호가 테이블에 존재하는지에 따라 true/false 조회
query += " where id=? and pwd=?";
pstmt = con.prepareStatement(query); //SQL문을 작성한 후 데이타베이스에 조회
pstmt.setString(1, id);
pstmt.setString(2, pwd);
System.out.print("pstmt : " + query + id + pwd);
ResultSet rs = pstmt.executeQuery();
rs.next(); //커서를 첫 번째 레코드로 위치
result = Boolean.parseBoolean(rs.getString("result")); //해당 순서 열에 있는 데이터를 String으로 받아옴
} catch(Exception e) {
e.printStackTrace();
}
return result;
}
}
'자바 웹 개발 > 웹 데이터베이스' 카테고리의 다른 글
[Web] 인텔리제이 DB 연결 (0) | 2024.08.24 |
---|---|
[Web] DataSource를 이용해 데이터베이스 연동하기 (0) | 2024.08.20 |