Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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
Tags
more
Archives
Today
Total
관리 메뉴

게으른 완벽주의자의 개발자 도전기

DB와 연결하여 자료 입력, 수정, 삭제 조회하기(기본 패턴) 본문

servlet jsp

DB와 연결하여 자료 입력, 수정, 삭제 조회하기(기본 패턴)

머리방울 2022. 7. 31. 20:34

오라클 화면을 위와 같이 세팅한다.

context에 내가 사용하는 오라DB의 아이디와 비밀번호가 들어가기 때문에

정확하게 작성하지 않으면 오류가 나니 정확하게 적을 것!

 

1. 기본패턴 (insert, update, delete 사용할 때)

<예시 학생의 학번, 이름, 나이, 주소를 insert하고자 할 때>

input 태그와 form태그로 아래 데이터를 받았다.

int stuNum= Integer.parseInt(request.getParameter("stuNum"));
String stuName = request.getParameter("stuName");
int stuAge= Integer.parseInt(request.getParameter("stuAge"));
String stuAddr = request.getParameter("stuAddr");

<------------DB작업 시작-------------------->
1. 자바와 DB 연결할 객체(필수) 접속정보  선언만
Connection conn = null; 

2. 쿼리를 실행할 객체(필수) 선언만
PreparedStatement stmt = null;

 

3. 쿼리문 저장할 변수(필수) 선언

String sql = " ";

 

4.쿼리문 작성

sql = "INSERT INTO TEST_STUDENT 

 (STU_NUM

, STU_NAME

, STU_AGE

, STU_ADDR)"
+ " VALUES (?

, ?

, ?

, ?)";

5. try cathch finally문 작성

(try 오류발생할 수도 있는 내역 catch try 내 오류발생 시 실행내역(오류없이는 실행x)

finally 오류 유무 관계없이 무조건 실행할 내역)

 

try {
1) DB 연결 정보 받아옴
Context init= new InitialContext();  

2) 접속정보 ( 오라클로 연결할거야!)
DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB"); 

3) DB와 자바를 연결
conn = ds.getConnection();

4)쿼리 실행 준비( 변수로 sql 쿼리정보 받았다)
stmt = conn.prepareStatement(sql);

5) Values의 ? 값을 세팅 (물음표의 순서대로 정보 넣어주어야 한다)  
stmt.setInt(1, stuNum);
stmt.setString(2, stuName);
stmt.setInt(3, stuAge);
stmt.setString(4, stuAddr);

6) 삽입, 삭제, 수정할 때 사용하는 쿼리 실행

(리턴값 int로 받음 why? 1행 삭제, 수정, 추가 변화를 정수로 받기 때문에)
stmt.executeUpdate();


}catch(Exception e){

e.printStackTrace();  (오류 난 위치 간략한 이유 console에 표시해 줌)

}finally {
(DB연결 해제하겠다 연결 순서의 역순으로 해제시켜줘야 한다.)

try {
if(rs != null) {

rs.close();
}

if(stmt != null) {
stmt.close();

}

if(conn != null) {

conn.close();
}
}catch(Exception e) {
e.printStackTrace();
}

}

 

2. 기본패턴 (Select문 사용 시)

1. 자바와 DB 연결할 객체(필수) 접속정보  선언만
Connection conn = null; 

2. 쿼리를 실행할 객체(필수) 선언만
PreparedStatement stmt = null;

 

3. SELECT 조회 결과 데이터 저장할 객체 생성

ResultSet rs = null;  

(executeQuery 리턴값이 resultSet 그래서 rs로 함)

 

4. 쿼리문 저장할 변수(필수) 선언

String sql = " ";

 

5.쿼리문 작성

sql = "SELECT

  STU_NUM

, STU_NAME

 FROM TEST_STUDENT

 WHERE STU_NUM = ?";

6. try cathch finally문 작성

(try 오류발생할 수도 있는 내역 catch try 내 오류발생 시 실행내역(오류없이는 실행x)

finally 오류 유무 관계없이 무조건 실행할 내역)

 

try {
1) DB 연결 정보 받아옴
Context init= new InitialContext();  

2) 접속정보 ( 오라클로 연결할거야!)
DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB"); 

3) DB와 자바를 연결
conn = ds.getConnection();

4)쿼리 실행 준비( 변수로 sql 쿼리정보 받았다)
stmt = conn.prepareStatement(sql);

5) Values의 ? 값을 세팅 (물음표의 순서대로 정보 넣어주어야 한다)  
stmt.setInt(1, stuNum);

6) 조회할 때 사용하는 쿼리 실행

rs = stmt.executeQuery();
(select로 조회한 데이터는 rs가 가지고 있다)

 

}catch(Exception e){

e.printStackTrace();  (오류 난 위치 간략한 이유 console에 표시해 줌)

}finally {
(DB연결 해제하겠다 연결 순서의 역순으로 해제시켜줘야 한다.)

try {
if(rs != null) {

rs.close();
}

if(stmt != null) {
stmt.close();

}

if(conn != null) {

conn.close();
}
}catch(Exception e) {
e.printStackTrace();
}

}