Mary's log 2021. 8. 2. 09:26

※ 개인적인 개발 수업 정리글입니다. 꾸준히 정리할 예정이고 틀린 부분이 있다면 언제든지 댓글 환영입니다.


1. JDBC_VER_0 프로젝트의  JDBCTest1 클래스

따로 클래스 추가로 생성하지 않고

pstmt 사용해서 DB 연결, Select 전체 썼던거

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

public class JDBCTest {

	public static void main(String[] args) {
		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		String userid = "scott";
		String passwd = "tiger";
		
		Connection con=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		
		try {//2.드라이브 연결
			Class.forName(driver);
			//3.커넥션연결
			con=DriverManager.getConnection(url,userid,passwd);
			
			String sql="select deptno x, dname,loc from dept where dname=? and deptno=?";
			
			pstmt=con.prepareStatement(sql);
			
			pstmt.setString(1, "SALES");//첫번째 ?에 맞는 조건
			pstmt.setInt(2, 30);//두번째?에 맞는 조건
			rs=pstmt.executeQuery();
			
			while (rs.next()) {
				int deptno=rs.getInt("deptno");
				String dname=rs.getString("dname");
				String loc=rs.getString("loc");
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} 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();
			}
		}
		

	}
}

2. DTO 클래스 만들기


3. 메인으로 만들었던걸, 모델과 서비스로 나눴던거? ( JDBC_VER_2프로젝트 )

main으로 만들었던걸, service로 구분해서 4가지 클래스로

기본 쿼리 날렸던거.

select로하지만

insert,update도 할 줄 알아야함


1. Dept {
int deptno;
String dname;
String loc;

//멤버변수,기본생성자,전체생성자, 겟셋함수, toString함수

 

2. RecordNotFoundException extends Exception{
public RecordNotFoundException(String message) {
super(message);//사용자 정의 메세지
// TODO Auto-generated constructor stub
}}

 

//[결론] main이 service로 객체생성시: dao객체생성+드라이버 연결까지 끝냄.
//service함수: 커넥션연결&main에 보낼list객체생성+dao함수호출+커넥션 자원반납
//dao함수  : sql작성,sql실행,결과값받기+자원반납

 

 

3. main <main에서 service함수 호출>

OracleTXService service = new OracleTXService();

 

4. Service   1. DB연동을 위한 4가지 정보

String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:XE";// orcl->SID일치 확인
String userid = "scott";
String passwd = "tiger";

OracleTxDAO dao; //dao 함수 끌어올때 쓰기 위한 멤버변수

 

<기본생성자{ dao 새 객체생성, 드라이버연결}> //main함수에서 객체생성을 위해 쓸거

<ArrayList select()함수 { 커넥션 연결, ArrayList제네릭 list로 dao.select(con)함수 호출, 커넥션 자원 반납 } >

<delete,insert,update함수{ 커넥션 연결, dao.함수(con, i ) 호출, 커넥션 자원 반납 } >

 

5. DAO

<ArrayList제네릭 select(Connection con) 함수 >

<delete함수 ( con, i ) {pstmt로 sql작성, pstmt로 sql실행, 결과값 받기, pstmt자원반납 } >

<insert함수 ( con, xx ) {pstmt로 sql작성, pstmt로 sql실행, 결과값 받기, pstmt자원반납 } >

<update함수( con, xx ) {pstmt로 sql작성, pstmt로 sql실행, 결과값 받기, if(뭐가0?레코드가 없어?) pstmt자원반납 } >