<!-- 액션태그 -->
<!-- 공통된 페이지를 추가하는 방식. -->
공통페이지: <jsp:include page="common.jsp"></jsp:include>
페이지이동: <jsp:forward page="list.jsp"></jsp:forward>
객체생성: <jsp:useBean id=''></jsp:useBean>
Java Beans 예제 : 계산기
Java Beans는 일종의 특정한 일을 독립적으로 수행하는 컴포넌트이다.
Java Beans로 성적프로그램
DBOpen과 DBClose 클래스를 생성하여 이용하기.
디렉토리
총 6개의 java,jsp파일
DB 연결 | DBOpen.java |
DBClose.java | |
DAO, DTO (객체) |
SungjukDAO.java |
SungjukDTO.java | |
jsp | sungjukForm.jsp (폼 작성) |
sungjukinst2.jsp (insert하는 jsp) |
DB연결 - DBOpen.java
package net.utility;
import java.sql.*;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
public class DBOpen {
public static Connection getConnetion() throws Exception{
//static -> 클래스명으로 직접 접근 가능하다.
Class.forName("oracle.jdbc.OracleDriver");
Connection con = DriverManager.getConnection ("jdbc:oracle:thin:@//localhost:1521/xe","java0514","1234");
return con;
}
}//getConnetion end
DAO
package net.sungjuk;
import java.sql.Connection;
import java.sql.PreparedStatement;
import net.utility.DBOpen;
import net.sungjuk.SungjukDTO;
public class SungjukDAO {
//DAO Data Access Object라는 뜻이다.
public int insert(String uname, int kor, int eng, int mat, int aver, String addr){
int cnt = 0; //초기값 0
try {
//DB연결
Connection con=DBOpen.getConnetion();
StringBuilder sql = new StringBuilder();
//SQL문 작성
sql.append(" INSERT INTO SUNGJUK(SNO,UNAME,KOR,ENG,MAT,AVER,ADDR,WDATE) "); //칼럼의 순서는 이곳에서.
sql.append(" VALUES((SELECT NVL(MAX(SNO),0)+1 FROM SUNGJUK) ");
sql.append(",?,?,?,?,?,?,SYSDATE) "); //직접 쓰는 것은 절대상수 값이다.
// 4) SQL문 변환
PreparedStatement 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){
System.out.println("행추가일때: "+e);
}
return cnt;
}//insert end
public int insert(SungjukDTO dto){
int cnt=0;
try{
Connection con=DBOpen.getConnetion();
StringBuilder sql = new StringBuilder();
//SQL문 작성
sql.append(" INSERT INTO SUNGJUK(SNO,UNAME,KOR,ENG,MAT,AVER,ADDR,WDATE) "); //칼럼의 순서는 이곳에서.
sql.append(" VALUES((SELECT NVL(MAX(SNO),0)+1 FROM SUNGJUK) ");
sql.append(",?,?,?,?,?,?,SYSDATE) "); //직접 쓰는 것은 절대상수 값이다.
// 4) SQL문 변환
PreparedStatement 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){
System.out.println("행추가일때: "+e);
}
return cnt;
}
}
DTO
package net.sungjuk;
import java.sql.Connection;
import java.sql.PreparedStatement;
import net.utility.DBOpen;
public class SungjukDTO {
//DAO Data Transfer Object라는 뜻이다. 데이터 전송 객체이다.
//Value Object
//SungjukVO, SungjukDataBean
//1) 테이블의 칼럼과 1:1 매칭되는 필드를 Private 속성으로 접근제어 선언하고
//2) getter, setter함수를 작성한다.
//3) Source -> Generate Getters and Setters로 자동추가 alt+shift+s+r
//1) sungjuk 테이블의 칼럼을 기준으로 field를 선언한다.
private int sno; //Primary key인 sno
//함수를 이용해 private 접근.
private String uname;
private int kor;
private int eng;
private int mat;
private int aver;
private String addr;
private String wdate;
public SungjukDTO(){} //생성자함수
//2) 각 field에 접근할 수 있는 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;
}
//개발자들이 에러 확인용으로 주로 사용
//Source -> Generate toString()...
@Override
public String toString() {
return "SungjukDTO [sno="+ sno +", uname="+ uname +" ,kor=" + kor +
",eng="+ eng +", mat"+ mat +", addr="+ addr +", wdate="+ wdate +"]";
}
}
form양식은 전에 만든것과 같다.
'Backend' 카테고리의 다른 글
09월 03일 화 | JSP 08 - JSP 미니 프로젝트 Ⅰ- 환경설정 (0) | 2019.09.03 |
---|---|
08월 29일 목 | JSP 07 - JSP Java beans을 이용한 성적프로그램 (0) | 2019.08.29 |
08월 27일 화 | JSP 05 - JSP CRUD 게시판 삭제, 수정 (0) | 2019.08.27 |
08월 26일 월 | JSP 04 - JSP CRUD 게시판 생성, 목록, 상세페이지 (1) | 2019.08.26 |
08월 23일 금 | JSP 03 - JSP 내장객체 (0) | 2019.08.23 |
댓글