챕터5에서는 데이터베이스 프로그래밍 언어를 사용해서 데이터베이스에 접근하는 방법이 필요한지에 대해 알아봤고 JDBC 프로그래밍에 대해 배워봤다
먼저 첫 강의에서는 프로그래밍 언어로 데이터베이스에 접근하는 방법에 대해 공부했는데
범용 프로그래밍 언어로 데이터베이스에 접근하는 이유는 SQL은 데이터를 어떻게 가져오는 지에 대한 기술이 없기 때문이다.
SQL로 다 표현할 수 없는 질의를 작성하기 위해 더 강력한 프로그래밍 언어에 SQL을 내장시켜야 한다
데이터베이스 서버에 접근하는 방법은 2가지로
1. Dynamic SQL - 프로그래밍 언어를 직접 사용하기 때문에 직접 JAVA API를 호출할 수 있고 따로 컴파일러가 필요하지 않다
2. Embedded SQL - 데이터베이스 서버와 소통할 수 있는 수단을 제공하고 데이터베이스 내의 데이터를 정의하거나 접근하는 SQL문을 응용프로그램 내에 포함시켜 응용 프로그램이 실행될 때 함께 실행되도록 호스트 프로그램에 삽입된 SQL이다
그리고 JDBC와 ODBC를 배웠는데 이 둘은 인터페이스로 응용 프로그램과 데이터베이스를 연결시켜주는 역할을 한다
JDBC는 java API이고 ODBC는 C, C++, C#, Visual Basic과 같은 언어를 사용할 때 사용되는 API이다
마지막 강의에서는 JDBC에 대해서 배웠는데 이 부분은 학교에서 수업 시간에 앞 부분 배워놔서 사실 이미 많이 알고 있는 내용이었다
간단하게 요약해보면
JDBC 사용은
1. JDBC 드라이버 로드
2. connection 객체를 생성
3. SQL문장 실행하기 위해 connection 객체의 createStatement 메소드 사용하여 statement 객체 생성
4. 데이터를 다루는 작업 ( insert, delete, update, query 등)
5. 작업을 마친 후 자원 시스템에 돌려주기(stmt.close();, con.close();)
이고 여기서 예외 처리를 하기 위한 try-catch문을 수행해주면 된다
데이터베이스 업데이트 하거나 쿼리를 수행할 때는 statement 객체의 executeUpdate, executeQuery 메소드 사용하는데
executeUpdate – result set을 돌려받지 않고 insert, delete, update 문 등을 실행하는데 사용
executeQuery – result set을 돌려받는 SQL문을 실행시킨다
PreparedStatement 객체는 한 번 컴파일되고 다른 매개변수 값으로 여러 번 실행되는 반복적인 일을 할 경우 더 효과적으로 실행된다
JDBC에서 트랜잭션 컨트롤은 각각의 SQL문을 개별적인 트랜잭션으로 취급해서 각 SQL문을 자동적으로 commit하는데 여러 개의 업데이트로 이루어진 트랜잭션에서는 별로 좋지 않다
-> 이 경우 connection에 있는 auto commit을 꺼주고(con.setAutocommit(false)) 이걸 해주면 트랜잭션은 반드시 명시적으로 commit 또는 rollback 작업을 해줘야 한다(con.commit(),con.rollback())
트랜잭션은 try문에 있어야 하고 catch절에 rollback 메소드의 호출이 들어가야 한다
그 밖의 JDBC의 기능으로는
데이터베이스 시스템에 저장된 프로시저나 함수를 호출하는 것을 지원해주고(CallableStatement 인터페이스를 사용해서 저장된 프로시저나 함수를 호출할 수 있다)
대형 객체를 다룰 수 있다
이렇게 프로그래밍 언어를 사용해서 데이터베이스에 접근하는 방법에 대해 공부해봤는데 확실히 이 부분은 이미 이클립스로 해봤던 부분이라 공부하는데 큰 어려움은 없었다. 친숙해서 좋았던 것 같다
'CS > 데이터베이스' 카테고리의 다른 글
Ch7. Normalization (0) | 2020.02.02 |
---|---|
Ch6. Entity-Relationship Model (0) | 2020.01.29 |
Ch4. Intermediate SQL (0) | 2020.01.22 |
Ch3. SQL (0) | 2020.01.19 |
Ch2. Relational Model (0) | 2020.01.09 |