개발 일기
DAO 클래스를 더욱 간단하게! DataSource 클래스를 따로 만들어보기 본문
안녕하세요.
JDBC의 DAO 클래스를 VO 클래스를 활용하여 만드는 작업까지 진행을 해보았는데요.
DAO 클래스의 CRUD 메소드(insert, delete 등등)에 DB접근 단계를 위한 클래스를 따로 만들어 활용해보겠씁니다.
1. DataSource 클래스 만들기
- Driver 클래스 객체 생성
- Connection 객체 생성(DBServer에 연결)
public class DataSource {
public Connection getConnection() throws Exception{
String driverClass= "oracle.jdbc.OracleDriver";
String url = "jdbc:oracle:thin:@182.237.126.19:1521:xe";
String user = "DB접속정보";
String password = "DB접속정보";
Class.forName(driverClass);
Connection con = DriverManager.getConnection(url,user,password);
return con;
}
public void releaseConnection(Connection con) throws Exception{
con.close();
}
}
=> DB Connection 단계를 클래스화 함
2. DAO 클래스에 DataSource 클래스 활용
public class AddressDao {
private DataSource dataSource;
public AddressDao() {
this.dataSource = new DataSource();
}
public Address selectByNo(int no) throws Exception {
Address findAddress = null;
String selectSql = "select no,id,name,phone,address from address where no = ?";
Connection con = dataSource.getConnection();
PreparedStatement pstmt = con.prepareStatement(selectSql);
pstmt.setInt(1, no);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
int n = rs.getInt("no");
String id = rs.getString("id");
String name = rs.getString("name");
String phone = rs.getString("phone");
String address = rs.getString("address");
findAddress = new Address(n, id, name, phone, address);
}
rs.close();
pstmt.close();
dataSource.releaseConnection(con);
return findAddress;
}
}
=> DataSource 테이블의 dataSource 객체 생성 후 insert 메소드 내 DB접근정보 기재하지 않고
getConnection 메소드 호출하여 DB접근정보 받아서 사용함
DB에 접근하기 위한 소스를 클래스 객체화하여 DAO클래스를 보다 간단하게 수정해보았습니다.
감사합니다!
'JAVA 연습장' 카테고리의 다른 글
VO(Value Object) 클래스를 활용해서 DAO 클래스 만들기 (0) | 2021.07.25 |
---|---|
DAO(Data Access Object) 사용해서 JDBC 코딩 해보기 1 (feat. 객체 없이 직접 데이터 값 DAO에 넣고 출력) (0) | 2021.07.23 |
JAVA 코딩 연습 (ArrayList 활용하여 코딩 연습하기!, Feat_Iterator) (0) | 2021.06.28 |
JAVA 코딩 연습(배열 객체의 조건 case 출력 연습_ feat. 주차프로그램) (0) | 2021.06.19 |
JAVA 코딩 연습(포함을 사용해서 코딩하기!) (0) | 2021.06.13 |
Comments