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
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
드라이버 로딩
oracle.jdbc.driver : 패키지
OracleDriver : class
DriverManager : jdbc 에 있음
DriverManager.getConnection(url,Id,password)
NVARCHAR/NCHAR : NSTRING
.setNString(물음표 인덱스(1부터 시작),query)
JDBC가 COMMIT을 잡고있음. COMMIT -> 수동으로
댓글