관리 메뉴

nalaolla

JDBC MemberDAO 본문

ORACLE

JDBC MemberDAO

날아올라↗↗ 2015. 12. 7. 15:17
728x90
반응형
  1. // MemberDAO 클래스
  2.  
  3. // JDBC 사용 방법
  4. // 1. JDBC 드라이버 로드 : Class.forName(oracle.jdbc.driver.OracleDriver);
  5. // 2. DB Server 연결 : DriverManager.getConnection(jdbc:oracle:thin:@localhost:XE, scott, tiger)
  6. // 3. SQL 쿼리문 명령 : Statement 또는 PreparedStatement
  7. // 4. 결과 처리 : executeQuery(SELECT 일 때), executeUpdate(UPDATE, INSERT, DELETE)
  8. // 5. 연결 종료 :
  9.  
  10. // 연결 순서 : Connection > Statement 또는 PreparedStatement > ResultSet [ 단, ResultSet 은 SELECT 일때만 사용한다 ]
  11. // 연결 종료 순서 : ResultSet > Statement 또는 PreparedStatement > Connection [ 단, ResultSet 은 SELECT 일때만 사용한다 ]
  12.  
  13. import java.sql.Connection;
  14. import java.sql.DriverManager;
  15. import java.sql.PreparedStatement;
  16. import java.sql.ResultSet;
  17. import java.sql.SQLException;
  18.  
  19. public class MemberDAO {
  20.     private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
  21.     private static final String URL = "jdbc:oracle:thin:@localhost:XE";
  22.     private static final String USER = "scott";
  23.     private static final String PASS = "tiger";
  24.  
  25.     public Connection getConn() {
  26.         Connection con = null;
  27.         try {
  28.             Class.forName(DRIVER);
  29.             con = DriverManager.getConnection(URL, USER, PASS);
  30.         } catch (Exception e) {
  31.             e.printStackTrace();
  32.         } // try - catch
  33.         return con;
  34.     } // getConn : 연결 메소드 작성
  35.  
  36.     public boolean deleteMember(String id, String pwd) {
  37.         boolean ok = false;
  38.         Connection con = null;
  39.         PreparedStatement ps = null;
  40.         try {
  41.             con = getConn();
  42.             String sql = "delete member2 where id=? and pwd=?";
  43.             ps = con.prepareStatement(sql);
  44.             ps.setString(1, id);
  45.             ps.setString(2, pwd);
  46.             int cnt = ps.executeUpdate();
  47.             if (cnt == 1)
  48.                 ok = true;
  49.         } catch (Exception e) {
  50.             e.printStackTrace();
  51.         } finally {
  52.             if (ps != null) {
  53.                 try {
  54.                     ps.close();
  55.                 } catch (SQLException e2) {
  56.                     e2.printStackTrace();
  57.                 } // ps try - catch
  58.             } // ps if
  59.  
  60.             if (con != null) {
  61.                 try {
  62.                     con.close();
  63.                 } catch (SQLException e2) {
  64.                     e2.printStackTrace();
  65.                 } // con try - catch
  66.             } // con if
  67.         } // try - catch - finally
  68.         return ok;
  69.     } // deleteMember : 회원 탈퇴 메서드
  70.  
  71.     public boolean updateMember(MemberDTO dto) {
  72.         boolean ok = false;
  73.         Connection con = null;
  74.         PreparedStatement ps = null;
  75.         try {
  76.             con = getConn();
  77.             String sql = "Update member2 set name=?,tel=?,addr=?,birth=?,"
  78.                     + "job=?,gender=?,email=?,intro=? where id=? and pwd=?";
  79.             ps = con.prepareStatement(sql);
  80.             ps.setString(1, dto.getName());
  81.             ps.setString(2, dto.getTel());
  82.             ps.setString(3, dto.getAddr());
  83.             ps.setString(4, dto.getBirth());
  84.             ps.setString(5, dto.getJob());
  85.             ps.setString(6, dto.getGender());
  86.             ps.setString(7, dto.getEmail());
  87.             ps.setString(8, dto.getIntro());
  88.             ps.setString(9, dto.getId());
  89.             ps.setString(10, dto.getPwd());
  90.             int cnt = ps.executeUpdate();
  91.             if (cnt == 1)
  92.                 ok = true;
  93.         } catch (Exception e) {
  94.             e.printStackTrace();
  95.         } finally {
  96.             if (ps != null) {
  97.                 try {
  98.                     ps.close();
  99.                 } catch (SQLException e2) {
  100.                     e2.printStackTrace();
  101.                 } // ps try - catch
  102.             } // ps if
  103.  
  104.             if (con != null) {
  105.                 try {
  106.                     con.close();
  107.                 } catch (SQLException e2) {
  108.                     e2.printStackTrace();
  109.                 } // con try - catch
  110.             } // con if
  111.         } // try - catch - finally
  112.         return ok;
  113.     } // updateMember : 회원정보를 수정하는 메소드
  114.  
  115.     public MemberDTO getMember(String id) {
  116.         MemberDTO dto = new MemberDTO();
  117.         Connection con = null;
  118.         PreparedStatement ps = null;
  119.         ResultSet rs = null;
  120.         try {
  121.             con = getConn()// 연결 메소드를 불러온다
  122.             String sql = "select * from member2 where id=?";
  123.             ps = con.prepareStatement(sql);
  124.             ps.setString(1, id)// 첫 번째 물음표에 id
  125.             rs = ps.executeQuery();
  126.             if (rs.next()) {
  127.                 dto.setId(rs.getString("id"));
  128.                 dto.setPwd(rs.getString("pwd"));
  129.                 dto.setName(rs.getString("name"));
  130.                 dto.setTel(rs.getString("tel"));
  131.                 dto.setAddr(rs.getString("addr"));
  132.                 dto.setBirth(rs.getString("birth"));
  133.                 dto.setJob(rs.getString("job"));
  134.                 dto.setGender(rs.getString("gender"));
  135.                 dto.setEmail(rs.getString("email"));
  136.                 dto.setIntro(rs.getString("intro"));
  137.             } // if
  138.         } catch (Exception e) {
  139.             e.printStackTrace();
  140.         } finally {
  141.             if (rs != null) {
  142.                 try {
  143.                     rs.close();
  144.                 } catch (SQLException e2) {
  145.                     e2.printStackTrace();
  146.                 } // rs try - catch
  147.             } // rs if
  148.              
  149.             if (ps != null) {
  150.                 try {
  151.                     ps.close();
  152.                 } catch (SQLException e2) {
  153.                     e2.printStackTrace();
  154.                 } // ps try - catch
  155.             } // ps if
  156.  
  157.             if (con != null) {
  158.                 try {
  159.                     con.close();
  160.                 } catch (SQLException e2) {
  161.                     e2.printStackTrace();
  162.                 } // con try - catch
  163.             } // con if
  164.         } // try - catch - finally
  165.         return dto;
  166.     } // getMember : 한 사람의 회원 정보를 얻는 메소드
  167.  
  168.     public void insertMember(MemberDTO dto) {
  169.         Connection con = null;
  170.         PreparedStatement ps = null;
  171.         try {
  172.             con = getConn();
  173.             String sql = "insert into member2"
  174.                     + "(id,pwd,name,tel,addr,birth,job,gender,email,intro) "
  175.                     + "values(?,?,?,?,?,?,?,?,?,?)";
  176.             ps = con.prepareStatement(sql);
  177.             ps.setString(1, dto.getId());
  178.             ps.setString(2, dto.getPwd());
  179.             ps.setString(3, dto.getName());
  180.             ps.setString(4, dto.getTel());
  181.             ps.setString(5, dto.getAddr());
  182.             ps.setString(6, dto.getBirth());
  183.             ps.setString(7, dto.getJob());
  184.             ps.setString(8, dto.getGender());
  185.             ps.setString(9, dto.getEmail());
  186.             ps.setString(10, dto.getIntro());
  187.             ps.executeUpdate()// 실행
  188.         } catch (Exception e) {
  189.             e.printStackTrace();
  190.         } finally {
  191.             if (ps != null) {
  192.                 try {
  193.                     ps.close();
  194.                 } catch (SQLException e2) {
  195.                     e2.printStackTrace();
  196.                 } // ps try - catch
  197.             } // ps if
  198.  
  199.             if (con != null) {
  200.                 try {
  201.                     con.close();
  202.                 } catch (SQLException e2) {
  203.                     e2.printStackTrace();
  204.                 } // con try - catch
  205.             } // con if
  206.         } // try - catch - finally
  207.     } // insertMember : 회원 정보를 저장하는 메소드
  208.  
  209. } // MemberDAO : 데이터베이스 처리


728x90
반응형