1. 윈도우 검색 창에서 sql입력 후 Run SQL Command Line을 실행한다.
2. SQL> conn system/oracle을 입력하여 관리자 모드로 접속한다.
3. 아이디 : java 비번 : 1234로 새로운 사용자를 만든다.
4. 다음과 같은 명령어를 입력하여 새로 만든 계정 'java'에게 데이터베이스에 대한 모든 권한을 준다
5. java 계정으로 sql접속 가능한지 확인
6. sqldeveloper를 실행한 후 '새로만들기'를 선택하여 새로 만든 'java'계정의 접속이름(별칭), 이름, 비번을 입력 후
테스트 -> 저장을 누른다.
7. 접속이 성공되면 다음과 같이 오른쪽에 새로운 워크시트 창이 생성된다.
8. 테이블 생성 쿼리문을 작성하여 테이블을 생성한다.
9. 테이블로 들어가 데이터 탭으로 들어가면 현재 내가 만든 테이블에 저장되어 있는 데이터들을 확인할 수 있다.
10. insert 쿼리문으로 임의의 데이터 3개를 넣어본다.
11. 이클립스와 연동하기 위해 새로운 프로젝트를 생성한다.
자바가 외부 프로그램(DB)에 접근하려면 그 프로그램에 대한 기능을 알고 있어야 한다.
Class.forName()을 호출하면 Driver 가 자기자신을 초기화하여 DriverManager에 등록을 한다. 즉 개발자가 따로 관리하지 않는 static 객체들이 알아서 DriverManager에 등록이 되는 것이다.
하지만 이대로 실행을 하면 다음과 같은 오류가 뜬다.
그 이유는 바로 작업 프로젝트에 odbc 설정을 해주지 않아서 인데
프로젝트에서 우클릭 -> properties -> Java Build Path -> Libraries -> Add External jar를 눌러서 해당 jdk버전에 맞는 ojdbc를 불러온다.
설정 후 Main클래스를 실행해보면 오류가 뜨지 않은 것을 확인할 수 있다.(Database기능을 이제 활용할 수 있다.)
12. 자바 프로그램과 DB연결하기.
연결이 이루어졌다면 연결객체가 생성되었으니 전송 객체를 생성해서 CRUD 쿼리문을 보낼 수 있어야 한다.
결과 값이 자바 프로그램으로 날아오면 그 결과값을 받아줄 자바 객체가 필요하다. 결과값의 자료형은 무엇일까??
리턴 값이 ResultSet임을 알 수 있다. 따라서 자료형이 ResultSet인 참조변수 rs를 선언한다.
ResultSet 객체의 구조는 bof와 eof를 가지고 있는 Iterator 구조와 흡사하다. 그래서 ResultSet은 Iterator와 같이 데이터를 꺼내는 메소드를 가지고 있다.
ResultSet 클래스의 next() 메소드 이용해 데이터를 하나씩 꺼낸다.
next() : ResultSet 데이터 구조에서 다음 칸으로 이동하여 값이 존재한다면 true를 반환하고 없다면 false를 반환하는 메소드
getXXX : 해당 항목 내 XXX 자료형에 맞는 데이터를 반환하는 메소드
13. main 클래스에 해당 메소드를 실행시키는 코드를 작성한 뒤 실행 후 결과 확인
결과
14. 자바에서 DB로 데이터를 삽입하는 메소드를 만들기
15. Main 클래스에서 insertUser() 메소드 실행 코드 작성
결과 확인
sqldeveloper에서도 확인
통상 executeQuery()는 데이터를 얻어오는데 사용하는 메소드이다. 그런데 insertQuery()는 DB에 데이터만 넣어주고 굳이 값을 가져올 필요가 없기 때문에 executeQuery()보다는 executeUpdate() 메소드를 사용한다.
executeUpdate()의 리턴값은 int형으로써 성공적으로 DB에 입력됐다면 1을 반환한다. 실패하면 에러가 발생하므로 그에 대한 예외처리를 해주어야 한다.
이 값을 토대로 데이터 입력의 정상여부를 확인한다. 쿼리문을 잘못 작성하는 등 셋팅하는 과정에서 실수를 했을 때 오류를 보고 파악하려면?
예시로 DBConnect.java 파일의 60번째 코드 id의 d를 빼고 실행해보았다.
오류 메세지의 아래부분에 해당 java 파일 어느 위치에서 실수가 있었는지 확인 할 수 있다.
16. updateUser(), deleteUser() 작성
updateUser()는 기능을 insert와 같기 때문에 insert메소드의 내용을 가져온다.
17. 메인 클래스에 updateUser(), deleteUser() 코드를 추가한 후 수정 삭제를 해보기
결과
'IT > 국비과정' 카테고리의 다른 글
JavaFX 실습 : 이미지 처리 (0) | 2020.10.08 |
---|---|
Java 국비과정 : 소켓 통신 (0) | 2020.10.06 |
JAVA 연습문제(국비) : 사원관리 프로그램 (0) | 2020.10.02 |
JAVA 연습문제 (국비) : 학생 출석 프로그램 만들기 (0) | 2020.10.01 |
JAVA 연습문제(국비) : Time, ProcessBuilder (0) | 2020.09.30 |