[JDBC] 클래스생성, 분리와 확장, 상속 적용예제(DAO, DTO)
Devel/JDBC2020. 8. 19. 21:33
반응형
클래스분리 예제
한 테이블에 적어서 사용했던 클래스를 분리해보자.
-Dept
Dept테이블의 하나의 레코드 저장용도로만 사용한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | package com.dto; // Dept테이블의 하나의 레코드 저장용도 public class Dept { private int deptno; private String dname; private String loc; public int getDeptno() { return deptno; } public void setDeptno(int deptno) { this.deptno = deptno; } public String getDname() { return dname; } public void setDname(String dname) { this.dname = dname; } public String getLoc() { return loc; } public void setLoc(String loc) { this.loc = loc; } public Dept(int deptno, String dname, String loc) { super(); this.deptno = deptno; this.dname = dname; this.loc = loc; } public Dept(){} @Override public String toString() { return "Dept [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc + "]"; } } |
-OracleDAO
driver, url, usrid, pswd를 기술해주고, driver 연결, connection과 resultset, preparedStatement를 기술해준다.
ArrayList로 select sql문을 수행한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | package com.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import com.dto.Dept; public class OracleDAO { String driver="oracle.jdbc.driver.OracleDriver"; String url="jdbc:oracle:thin:@localhost:1521:orcl"; String userid ="scott"; String passwd ="tiger"; Connection con = null; ResultSet rs = null; PreparedStatement pstmt = null; public OracleDAO() { try { Class.forName(driver); System.out.println("로딩 성공"); } catch (ClassNotFoundException e) { e.printStackTrace(); } }//end OracleDAO public ArrayList<Dept> select()throws SQLException { ArrayList<Dept> list = new ArrayList<Dept>(); try { con = DriverManager.getConnection(url,userid,passwd); String sql = "select * from dept"; pstmt = con.prepareStatement(sql); rs = pstmt.executeQuery(); while(rs.next()) { Dept dept = new Dept(); dept.setDeptno(rs.getInt(1)); dept.setDname(rs.getString(2)); dept.setLoc(rs.getString(3)); list.add(dept); } } catch (SQLException e) { e.printStackTrace(); }finally { try { if( rs != null) rs.close(); if( pstmt != null) pstmt.close(); if( con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); } } return list; }//end select public void insert() {} public void update() {} public void delete() {} } |
-OracleService
main에서 출력하기 전 연결다리
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package com.service; import java.sql.SQLException; import java.util.ArrayList; import com.dao.OracleDAO; import com.dto.Dept; public class OracleService { OracleDAO dao;//null값이 기본 public OracleService() { dao = new OracleDAO(); } public ArrayList<Dept> select()throws SQLException { ArrayList<Dept> list = dao.select(); return list; } public void insert(Dept dept){} } |
-Main
OracleService 객체 생성을 해주고 try, catch로 foreach문을 사용해 출력한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import java.sql.SQLException; import java.util.ArrayList; import com.dto.Dept; import com.service.OracleService; public class OracleMain { public static void main(String[] args) { OracleService service = new OracleService(); try { ArrayList<Dept> list=service.select(); for (Dept dept : list) { System.out.println(dept); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //전체데이터 출력 } } |
'Devel > JDBC' 카테고리의 다른 글
[JDBC] 2 table Join, group by 사용하는 방법 및 적용예제 (0) | 2020.08.19 |
---|---|
[JDBC] 클래스 생성부터 분리까지 모든 예제 (0) | 2020.08.19 |
[JDBC]SQL연동 클래스 분리 예제2(DAO, DTO, exception, service) (0) | 2020.08.19 |
[JDBC] 오라클 java와 sql 연동법과 예제(select, Update, Delete 등) (0) | 2020.08.19 |
[JAVA & JDBC] java 이클립스와 SQL연동하는 방법 (0) | 2020.08.16 |
댓글()