본문 바로가기

Development/Java

[Java기초] 01.JDBC연결하기

이 글이 제 블로그의 첫 포스트인데 Java를 공부하는걸 정리하는 겸 포스팅을 해두려고 합니다.
그리고 저는 단지 제가 쉽게 이해하기 위해 정리할 생각입니다.
무단 도용을 금합니다. (꼭 출저를 써주시길 부탁드립니다.)


개발 환경

  • Java : jdk-1.7.0-xx
  • 툴 : Eclipse kepler EE
  • DBMS : MySQL Community Server 5.6


JDBC란?

  • Java Database Connectivity    (자바 데이터베이스 연결)
  • 데이터베이스와 자바코드간의 연결고리

JDBC로 연결하는 DBMS는 다양합니다.
가장 많이 쓰이는 MS-SQL, MySQL, Oracle은 물론이고 아주 많은 DBMS들과 연동시킬수 있습니다.


일단 이클립스에서 MySQL을 사용하기 위해서는 Java전용 커넥터가 필요합니다.
https://dev.mysql.com/downloads/connector/j/ 에서 다운받을 수 있습니다.

다른 버전으로 다운받으시려면 https://downloads.mysql.com/archives/c-j/ 에서 확인하세요.


1. Downloads > Community > MySQL Connectors > Connector/J 의 화면입니다.
플랫폼을 선택하는 부분에서 저희는 플랫폼 독립적인 프로그램을 개발하기 때문에 Platform Independent를 선택해 줍니다.

※ 참고로 이 글은 2014년에 쓴 글이니 그 당시 최신이었던 5.1.34 버전을 받겠습니다.

여기서 둘중 아무거나 받으셔도 됩니다.(리눅스라면 tar를 추천합니다.)
저는 알집을 사용하니깐 ZIP파일을 받습니다.


가입하면 이런거이런거 할수있다는데 저는 굳이 필요 없네요.

2. 다운로드가 완료되면 압축물 안에있는 jar파일만 추출합니다.(저는 D:\mysql이라는 폴더에 넣겠습니다.)
JSP에서는 apache-tomcat의 lib경로에 넣고 써도 됩니다.


MySQL을 받는 방법과 Eclipse를 설치하는것은 이미 되어있는 상태에서 연결하는 방법을 정리하겠습니다.

(추후 포스팅하겠습니다.)


3.Eclipse에 들어갑니다.
이제는 사용할 프로젝트 파일에서 커넥터 라이브러리를 추가할 차례입니다.
JSP에서는 프로젝트 파일의 WEB-INF\lib 경로에 복사하면 끝이지만,
일반 자바에서는 라이브러리(방금 그 jar파일)를 프로젝트에 임폴트 해줘야합니다.

4.이제 JDBC를 사용할 프로젝트를 선택하고 오른쪽 클릭을 누른후 Build Path의 Configure Build Path...를 클릭합니다(이클립스의 버전바다 틀립니다)
단축키는 Alt+Enter


5.Libraries탭에서 Add External JARs...를 클릭합니다.


6.jar야 들어가라.
여기서 주의할 점은 이클립스에서는 이 jar파일의 위치만 가져오기 때문에 나중에 이 경로에 없을시 에러의 원인이 될 수 있습니다.


이제 OK를 누르면 라이브러리를 로딩하고 세팅이 완료됩니다.

잘 되었는지 확인하기 위해서 데이터베이스와 연결 테스트를 해보겠습니다.


7.이클립스EE의 경우 이클립스 하단 창에 Perspective(개발배경)을 JavaEE로 바꿔주면 Data Source Explorer라는 탭이 있습니다.

여기에서 Database Connections라는 폴더를 오른쪽으로 클릭하면 New...라는 메뉴가 있는데 클릭합니다.


8.MySQL을 선택합니다.
 이 목록에 뜨는 것들은 제가 처음에 말한 연동할수 있는 DBMS의 목록입니다.



Driver가 안잡혀있다면 콤보박스옆의 드라이버추가 버튼을 누르고 jar를 임폴트해주면 됩니다.

Test Connection버튼을 누르면 성공과 실패가 나옵니다. 실패가 뜬다면 드라이버의 문제이거나
위 창에서 입력한 내용의 실수일것 같습니다.(MySQL이 실행중이 아니어도 에러가뜹니다.)
그 외에도 여러 문제가 있지만 가장 잦은 오류의 원인은 없는 데이터베이스를 쓰는 경우였던 것같습니다.


또한 EE버전이 아닌경우에도 간단하게 테스트할 수 있습니다.

7.1프로젝트를 생성하고 클래스를 하나 만듭니다.



import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Connection; public class ConnectionTest { public static void main(String[] args){ try{ Class.forName("com.mysql.jdbc.Driver"); //jar파일 안에있던 com.mysql.jdbc패키지의 Driver클래스를 로딩합니다. Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); //jdbc를 통해 MySQL과 연동합니다. /*DriverManager의 getConnection()메서드는 MySQL DB의 URL과 유저,패스워드를 파라메터로 받고 Connection의 인스턴스를 반환합니다.*/ System.out.println(conn); } catch(ClassNotFoundException|SQLException e) { System.err.println("Connection Failed."); } } }


7.2 실행하면 DB와 연결이 되는지 쉽게 확인할 수 있습니다.


첫 포스팅이라 조금 신경좀 썼는데 궁금하신점이나 보충이 필요한 부분은 댓글로 남겨주세요!