김갱환
맨땅에 코딩
김갱환
전체 방문자
오늘
어제
  • 분류 전체보기 (239)
    • ⁂ 맨땅에 코딩 (11)
      • : Story (3)
      • : MiniProject 'MyWeb' (1)
      • : Final Project (5)
      • : Josa-Moa 한국어 조사 처리 프로젝트 (1)
    • —————Frontend——————————————.. (0)
    • ⁂ HTML (10)
      • : 기본 익히기 (10)
    • ⁂ CSS (15)
      • : 기본 익히기 (15)
    • ⁂ Java Script (32)
      • : 기본 익히기 (28)
      • : 자바스크립트 라이브러리 (1)
      • : 연습 문제 (3)
    • ⁂ jQuery (11)
      • : 기본 익히기 (11)
    • ⁂ Bootstrap (3)
      • : 기본 익히기 (3)
    • ⁂ TailWind CSS (1)
    • ⁂ AJAX (5)
      • : 기본 익히기 (5)
    • ⁂ Vue.js (3)
      • : 기본 익히기 (3)
    • —————DB : Data Base————————.. (0)
    • ⁂ Oracle DB (27)
      • : 기본 익히기 (24)
      • : 연습 문제 (3)
    • ⁂ MyBatis Framework (15)
      • : 기본 익히기 (15)
    • —————Backend———————————————.. (0)
    • ⁂ Java (62)
      • : 기본 익히기 (42)
      • : JDBC - Java DataBase Conn.. (4)
      • : Crawling (2)
      • : 독학으로 공부하기(과거) (11)
      • : 연습문제 (3)
    • ——————Web————————————————— (0)
    • ⁂ JSP (28)
      • : 기본 익히기 (28)
    • ⁂ Spring FrameWork (15)
      • : Legacy Project (1)
      • : 기본 익히기(Boot 기반) (14)
    • ——————————————————————— (0)
    • ⁂ Error Note (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • web.xml수정
  • 자바
  • 코딩
  • HTML공부
  • httperror
  • 코딩공부 #자바공부
  • ErrorPage
  • 코딩공부 #코딩 #자바 #자바독학 #자바공부 #개발자 #프론트앤드 #백앤드 #풀스택
  • 자바공부
  • 연산자 #기본연산자 #코딩 #자바 #독학 #자바공부 #자바연산자
  • 코딩 #코딩공부 #상수 #리터럴 #형변환 #개발자 #자바 #자바공부 #자바독학
  • 객체지향프로그래밍
  • http에러메세지
  • 풀스택
  • 코딩공부
  • 개발자
  • 코딩 #코딩공부 #프론트앤드 #백앤드 #풀스택개발자
  • 프론트앤드
  • 백앤드
  • 비트연산자 #코딩공부 #자바공부 #코딩 #자바 #프로그래밍 #개발자

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
김갱환

맨땅에 코딩

⁂ JSP/: 기본 익히기

[JSP] #5-2 DBOpen, DBClose, SungjukDTO, SungjukDAO

2022. 10. 7. 14:38

1. 데이터베이스 연결

----------------------------- DBOpen.java

 

package net.utility;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBOpen {
	public Connection getConnection() {
		Connection con = null;
		try {
			String url		= "jdbc:oracle:thin:@localhost:1521:xe"; // == "127.0.0.1"
			String user		= "system";
			String password	= "1234";
			String driver	= "oracle.jdbc.driver.OracleDriver"; // ojdbc6.jar
			Class.forName(driver);
			con = DriverManager.getConnection(url, user, password);
		} catch (Exception e) {
			System.out.println("오라클DB연결실패 :" + e);
		} // end
		return con;
	} // getConnection() end
} // class end

 

 

2. 데이터베이스 연결 해제

----------------------------- DBClose.java

 

package net.utility;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class DBClose {

	public static void close(Connection con) {
		try{
			if(con!=null){con.close();}
		} catch(Exception e){}
	}// end
	
	public static void close(Connection con, PreparedStatement pstmt) {
		try{
			if(pstmt!=null){pstmt.close();}
		} catch(Exception e){}
		try{
			if(con!=null){con.close();}
		} catch(Exception e){}
	}// end
	
	public static void close(Connection con, PreparedStatement pstmt, ResultSet rs) {
		try{
			if(rs!=null){rs.close();}
		} catch(Exception e){}
		try{
			if(pstmt!=null){pstmt.close();}
		} catch(Exception e){}
		try{
			if(con!=null){con.close();}
		} catch(Exception e){}
	}// end
	
} // class end

 

3. DAO

----------------------------- SugnjukDAO.java

package net.sungjuk;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import net.utility.DBClose;
import net.utility.DBOpen;

public class SungjukDAO { // Data Access Object
						  // 데이터베이스 관련 비지니스 로직 구현

	private DBOpen dbopen = null;
	private Connection con = null;
	private PreparedStatement pstmt = null;
	private ResultSet rs = null;
	private StringBuilder sql = null;
	
	public SungjukDAO() {
		dbopen = new DBOpen();
	} // end
		
	public int insert(String uname, int kor, int eng, int mat, int aver, String addr) {
		int cnt = 0; // 성공 또는 실패 여부 반환
		try {
			con=dbopen.getConnection();
			
			sql = new StringBuilder();
			sql.append(" INSERT INTO sungjuk(sno, uname, kor, eng, mat, aver, addr, wdate)");
			sql.append(" VALUES (sungjuk_seq.nextval, ?, ?, ?, ?, ?, ?, sysdate)");
			
			pstmt = con.prepareStatement(sql.toString());
			pstmt.setString(1, uname);
			pstmt.setInt(2, kor);
			pstmt.setInt(3, eng);
			pstmt.setInt(4, mat);
			pstmt.setInt(5, aver);
			pstmt.setString(6, addr);
			
			cnt = pstmt.executeUpdate();
			
		} catch (Exception e) {
			// TODO: handle exception
		} finally {
			DBClose.close(con, pstmt);
		}
		return cnt;
	} // insert() end
	
	public int create(SungjukDTO dto) {
		int cnt = 0; // 성공 또는 실패 여부 반환
		try {
			con=dbopen.getConnection();
			
			sql = new StringBuilder();
			sql.append(" INSERT INTO sungjuk(sno, uname, kor, eng, mat, aver, addr, wdate)");
			sql.append(" VALUES (sungjuk_seq.nextval, ?, ?, ?, ?, ?, ?, sysdate)");
			
			pstmt = con.prepareStatement(sql.toString());
			pstmt.setString(1, dto.getUname());
			pstmt.setInt(2, dto.getKor());
			pstmt.setInt(3, dto.getEng());
			pstmt.setInt(4, dto.getMat());
			pstmt.setInt(5, dto.getAver());
			pstmt.setString(6, dto.getAddr());
			
			cnt = pstmt.executeUpdate();
			
		} catch (Exception e) {
			// TODO: handle exception
		} finally {
			DBClose.close(con, pstmt);
		}
		return cnt;
	} // create() end
	
} // class end

 

 

4. DTO [매우 중요; Value Object라고도 표현]

----------------------------- SungjukDTO.java

 

 DB의 테이블에 생성한 칼럼명을 그대로 변수로 저장

package net.sungjuk;

public class SungjukDTO { // Data Transfer Object 전송객체
						  // Value Object
	
	// sungjuk 테이블의 칼럼명을 기준으로 field 멤버변수 선언
	private int sno;
	private String uname;
	private int kor;
	private int eng;
	private int mat;
	private int aver;
	private String addr;
	private String wdate;
	
	public SungjukDTO() {} // 기본생성자 default constructor
	 
	// getter, setter 함수
	public int getSno() {
		return sno;
	}
	
	public void setSno(int sno) {
		this.sno = sno;
	}
	
	public String getUname() {
		return uname;
	}
	
	public void setUname(String uname) {
		this.uname = uname;
	}
	
	public int getKor() {
		return kor;
	}
	
	public void setKor(int kor) {
		this.kor = kor;
	}
	
	public int getEng() {
		return eng;
	}
	
	public void setEng(int eng) {
		this.eng = eng;
	}
	
	public int getMat() {
		return mat;
	}
	
	public void setMat(int mat) {
		this.mat = mat;
	}
	
	public int getAver() {
		return aver;
	}
	
	public void setAver(int aver) {
		this.aver = aver;
	}
	
	public String getAddr() {
		return addr;
	}
	
	public void setAddr(String addr) {
		this.addr = addr;
	}
	
	public String getWdate() {
		return wdate;
	}
	
	public void setWdate(String wdate) {
		this.wdate = wdate;
	}

	@Override
	public String toString() {
		return "SungjukDTO [sno=" + sno + ", uname=" + uname + ", kor=" + kor + ", eng=" + eng + ", mat=" + mat
				+ ", aver=" + aver + ", addr=" + addr + ", wdate=" + wdate + "]";
	}	

}//class end

 

 

저작자표시 비영리 동일조건 (새창열림)

'⁂ JSP > : 기본 익히기' 카테고리의 다른 글

[JSP] #6 웹어플리케이션의 구조  (0) 2022.10.11
[JSP] #5-3 ssi, sungjukForm, sungjukIns, sungjukList, sungjukRead, sungjukDel, sungjukUpdate, sungjukUpdateProc  (0) 2022.10.07
[JSP] #5-1 Javabeans  (0) 2022.10.07
[JSP] #4-2 jsp로 CRUD 작업하기(SQL 문법) - 공사중  (0) 2022.10.06
[JSP] #4-1 jsp로 CRUD 작업하기(SQL 문법)  (0) 2022.10.06
    '⁂ JSP/: 기본 익히기' 카테고리의 다른 글
    • [JSP] #6 웹어플리케이션의 구조
    • [JSP] #5-3 ssi, sungjukForm, sungjukIns, sungjukList, sungjukRead, sungjukDel, sungjukUpdate, sungjukUpdateProc
    • [JSP] #5-1 Javabeans
    • [JSP] #4-2 jsp로 CRUD 작업하기(SQL 문법) - 공사중
    김갱환
    김갱환
    코딩의 코자도 모르는 이의 공부 기록장

    티스토리툴바