본문 바로가기

옛날

2.[JDBC] Eclipse를 DB와 연결하기!

개발환경 :

Windows 7 Ultimate K 64bit

MySQL Community Server 5.7.17 <GPL>

MySQL Workbench 6.3 CE

Eclipse Kepler Service Release 2

mysql-connector-java-5.1.40-bin //커넥터 버전



참고 사이트 :

http://javacan.tistory.com/entry/8 //올바른 JDBC프로그래밍 (이 글을 보고 느낀건 2001년이나 지금이나 JDBC는 똑같..)

http://archmond.net/?p=7469 //JDBC 사용(MySQL): Eclipse와 연결하기


여러분은 일단 이 챕터를 시작하기 전에 MySQL로 임의의 데이터베이스를 하나 만들어 놓으면 좋습니다!

테이블과 데이터까지 포함되있는 녀석이여야 합니다!! 그래야 확인하기 좋거든요~


DB 구축이 끝나셧으면 일단 이클립스 기본 프로젝트 셋팅을 해봅시다..

임의의 이름으로 시작해보죠

프로젝트 이름 : JDBC

패키지 이름 : jdbc

클래스 이름 : JDBC


(귀차니즘이 느껴지는 이름들)


먼저 SQL에 관련된 패키지들을 import해옵시다..

(귀찮으니까 뭐 다가져옵시다.)


제일 처음으로 해야 할 일은 JDBC의 드라이버를 로드해야합니다. (왜 로드하는지도 모릅니다 그냥 외웁니다..)

JDBC 할려면 막 뭐를 많이 외워야합니다.. 근데 한번 외워두면 딱히 수학처럼

공식 외운거 활용하거나 그런 수준은 아니라 잘 써먹을 수 있을겁니다.. (maybe)


딱 여기까지가 드라이버를 로드하는 과정입니다.

뭔가를 외울때 통으로 외우기보단 이부분 저부분으로 나눠서 외우면 더 잘외워진다기에..


이제 Connection 이라는 녀석을 생성할 것입니다.

초기화를 위해서 처음에 Connection conn = null;이라고 선언해줍니다. (그냥 깔끔하게 비워놓고 시작한다고 생각하세요)


코드가 양옆으로 늘어날까봐 따로 String자료형의 url변수를 선언해서 값을 넣어줬습니다.

DriverManager.getConnection()에는

"jdbc:mysql://localhost:3306/사용할데이터베이스명?user=root&password=패스워드"


요렇게 넣어주셔야합니다. 굉장히 복잡해보이지만 한번 외우면 안잊어먹는답니다.

굻게 표시한 부분 말고는 변경될 일이 거의 없으니 걱정말아요..

*localhost:3306는 127.0.0.1과 동일한 뜻입니다.

"jdbc:mysql://127.0.0.1/사용할데이터베이스명?user=root&password=패스워드" 이라고 쓰셔도 똑같습니다.


자 여기서 저희는 처음에 데이터베이스를 임의로 한개 만들었죠? (저는 jdbc라는 데이터베이스를 생성하였습니다.)

그 데이터베이스의 이름을 사용할데이터베이스명 에 넣어주시면 되는겁니다.


사실 드라이버 로드하는 코드와 커넥션을 생성하는 코드를 합칠 수 있습니다. 만약 내가 강박증이 있어서

코드를 줄이고싶다면 따라하시면됩니다. (jdbc 도전하는분중에 이정도 못하는분은 없겟지만..)

(제법 많이 줄어듬 그리고, 빨간줄 친 부분은 커넥션에 성공하면 확인할 수 있게 저렇게 출력하는겁니다. 해두면 뿌듯함)


이제 실행을 하셔서 콘솔창에 Connection OK!가 뜨시면 성공하신겁니다!! (위의 오류코드는 밑에 설명)


여기까지 오셨으면 JDBC를 하기위한 가장 기초적인 밑밥작업을 끝냈다고 할 수 있습니다!

이제 어떻게 SQL 쿼리를 이클립스에서 실행시키지?? 하는 의문이 들 것입니다.

그건 다음에..




오류 해결하는 방법 :

오류 코드 : Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.


오류 원인 : 모릅니다. 인터넷에 찿으면 나옵니다. 사실 이 오류있어도 잘 실행됩니다.


해결 방법 : "jdbc:mysql://localhost:3306/사용할데이터베이스명?user=root&password=패스워드"

요로코롬 url 지정해 주신 이 곳에서 문제가 생긴겁니다. 그럼 이걸 어떻게 고치냐?

일단 여러분은 이렇게 적으셧을겁니다.

String url = "jdbc:mysql://localhost:3306/jdbc?user=root&password=1234";

요놈을

String url = "jdbc:mysql://localhost:3306/jdbc?useSSL=false&user=root&password=1234";

요로코롬 useSSL=false를 추가해주시면 오류가 말끔히 해결됩니다!