36일차

    jdbc

    ojdbc : 자바 -> 오라클에 접근하기 위해 사용하는 드라이버 ojdbc jdk에 맞춰서..lts버전 -> ojdbc 8이상(6으론 안됨)

    sql developer안에 ojdbc가있음. jdbc -> lib-> ojdbc8

    OJDBC를 이용해서 JDBC와 연결한다

     

    오라클에서 넘어온 데이터를 JAVA에 맞게끔 번역

    ORACLEDRIVER이라는 클래스를 로딩해라. 

    OJDBC안에있는 ORACLE.JDBC.DRIVER이라는 패키지

    IP PORT SID 

    USER NAME, USER ID, USER PASSWORD

    url : jdbc:oracle:thin:@db_Addr:db_port:db_serviceName

    @db_Addr :ip주소

    @ ~ 텍스트로 입력

     

    drivermanager를 통해 연결 작업

    getConnection : connection을 가져옴. 세가지 정보를 가지고 driverManager가 연결을 함

    connection : 하나의 객체

     

    statement 객체 : 오라클에서는 세 개(jdbc 11버전을 포함한 1.8이상에서는 두개에서 하나 더 추가)

    statement 

    preparedstatement : 우리가 다룰 것

    callable : 자바 1.8이상에서만 사용 가능, 지금은 사용 불가, 오라클의 프로시저를 사용할때사용

     

    오라클의 프로시저 : 오라클 내부에서 프로그래밍 , 프로시저를 이용하는 것이 가장 빠르고 안전한 방법이지만 잘 사용하지않음 -> 오라클 안에서 프로그래밍을 해야하기때문에.. plsql : 난해함

    주로 금융권 사용

     

    statement : 속도가 빠르다. 문자열 처리 "" '' 헷갈림,injection attack에취약함, 문자 처리에 시간이 소요됨

    -> preparedStatement : injection 공격을 막을 수 있음, 별도의 데이터 상자를 사용.. 데이터만 들어갈 수 있음

    CallableStatement : 속도가 가장 빠르고, 보안에도 용이하며 개발 소요 시간도 줄일 수 있음. 우리나라에서 많이 쓰고 있지는 않다. PLSQL... 공부해놓으면 도움이 된다. 각 DB마다 데이터 베이스 언어가 따로있음 ORACLE : PLSQL 

    RUBY언어

     

    DML또는 쿼리로 PREPAREDSTATEMENT에 장착을 함 ... 

    도로 설치 -> 도로위에 자동차-> 자동차에 짐을 실음

    JDBC,OJDBC -> PREPAREDSTATEMENT -> 쿼리

     

    DML을 날릴때는 executeUpdate() 사용 (jdbc 명령어)

    select 날릴때는 executeQuery () 사용 -> 데이터 베이스로 명령어 날림.

    데이터 베이스에서는 dml적용된 레코드 개수를 반환함

     

    result set : update할때와 query return값이 다르다.

    dml : int -> 몇개의 행에 적용이 되었는지

    query :  resultset 

    result set

    loop(next) : 다음 레코드.. next 데이터가 없으면 false 

    ≒ while(scan.hasNext()) 

    6개의 빈을 만들고 list에 담는다.

     

    next메서드 사용

    connection을 닫으면 완전히 닫히지 않음. 도로만 폐쇄하면 오라클 데이터 베이스에 dump가 쌓임. 할당받았지만 사용하지 않은 메모리들 ... preparedStatement도 close해야함. 영역에있는 데이터를 삭제.

    conn -> prepared -> resultset 순이라면 result -> prepared- > conn 순으로 닫아주면 됨 .

    5-1 dml 

    5-2 query 

     

     

     

    필드: private 으로 직접접근X

    ojdbc 장착

     

    jar : 자바로만든 파일을 묶어놓은것 (패키지와 비슷한 개념)

     

    외부 파일이므로 External JARs

     

     

    ROOT CLASS

    드라이버 로딩

    oracle.jdbc.driver : 패키지

    OracleDriver : class

     

    try-catch

    DriverManager : jdbc 에 있음

    DriverManager.getConnection(url,Id,password)

    Statement 방식
    PreparedStatement

    NVARCHAR/NCHAR : NSTRING 

    .setNString(물음표 인덱스(1부터 시작),query)

    JDBC가 COMMIT을 잡고있음. COMMIT -> 수동으로 

    autocommit해제

    반응형

    'MEMO' 카테고리의 다른 글

    38일차  (3) 2022.11.24
    37일차  (4) 2022.11.23
    35일차  (0) 2022.11.21
    34일차  (2) 2022.11.18
    33일차  (0) 2022.11.17

    댓글