이제 DB에 테이블까지 만들었다.
그럼 자바에서 DB를 연결하여 테이블에 정보를 핸들링해보자.
먼저 <이클립스(Eclipse) MySQL 연동 - (1)>에서 설치한 mysql-connector 파일을 프로젝트에 추가해줘야 한다.
1) 프로젝트 오른쪽 버튼 클릭 Build Path-Configue Build Path 클릭
2) Java Build Path 탭에서 Libraries의 Add External JARs 클릭
3) mysql_connector.jar가 있는 경로를 찾아 저장하고 Apply 한다.
4) 아래와 같이 Referenced Libraries 폴더가 생긴다.
5) 추가로 WEB-INF-lib 폴더에도 jar파일을 추가해주자.
6) 이제 설정은 끝났고 DB연결을 테스트할 java 파일을 만든다. 빨간 표시된 부분 체크
7) 아래 코드를 입력한다. 코드는 한줄씩 뜯어보며 알아보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | package common; import java.sql.Connection; import java.sql.DriverManager; public class TestConnection { public static void main(String[] args) { Connection con = null; String className = "org.gjt.mm.mysql.Driver"; String url = "jdbc:mysql://localhost:3306/shxdb?useSSL=false&useUnicode=true&characterEncoding=euckr"; String user = "root"; String passwd = "1234"; try { Class.forName(className); con = DriverManager.getConnection(url, user, passwd); System.out.println("Connect Success!"); } catch(Exception e) { System.out.println("Connect Failed!"); e.printStackTrace(); } finally { try { if(con != null && !con.isClosed()) { con.close(); } } catch(Exception e) { e.printStackTrace(); } } } } | cs |
8) Run-Run As-Java Application 실행( Alt+Shift+X -> J )
연결 성공!
import java.sql.Connection;
import java.sql.DriverManager;
☞ Connection 인터페이스와 DriverManager 클래스를 사용하기 위해 import 해주자.
Connection con = null;
☞ Connection이란 DB와 연결을 설정하는 인터페이스이다. Connection컨텍스트 내에서 SQL문이 실행되고 결과가 리턴된다.
String className = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/shxdb?useSSL=false&useUnicode=true&characterEncoding=euckr";
String user = "root";
String passwd = "1234";
☞ String으로 선언된 변수이 의미하는것은 다음과 같다.
-className : mysql 연결 드라이버를 의미한다. Referenced Libararies에 추가된 mysql-connector.jar 파일을 열어보면 아래 com.mysql.jdbc 패키지가 있다 해당 패키지의 Driver.class이 있는데 "com.mysql.jdbc.Driver"형식으로 MySQL 드라이버 클래스에 연결할 수 있다.
-url : 호스트주소
-user : MySQL 생성 당시 사용한 root 계정
-passwd : 비밀번호
try {
Class.forName(className);
con = DriverManager.getConnection(url, user, passwd);
System.out.println("Connect Success!");
}
Class.forName(className);
☞ Class 클래스의 forName() 메소드를 사용해 드라이버를 로드한다. 드라이버를 읽히면 자동으로 객체가 생성되고 DriverManager에 등록된다.
con = DriverManager.getConnection(url, user, passwd);
☞ getConnection() 메소드를 사용해 DriverManager에 등록된 드라이버를 식별한다. 이 때 특정 jdbc 드라이버의 url, user, passwd를 전달하여 식별한다.
정리하면 "호스트 주소에 root라는 계정으로 passwd가 1234인 shxdb에 연결하려고 한다" 정도가 되겠다.
성공시 Connect Success! 가 콘솔창에 보일 것이다.
catch(Exception e) {
System.out.println("Connect Failed!");
e.printStackTrace();
}
☞ 예외 발생시 printStackTrace() 메소드는 에러의 근원지를 찾아 단계별로 에러를 출력한다.
finally {
try {
if(con != null && !con.isClosed()) {
con.close();
}
} catch(Exception e) {
e.printStackTrace();
}
}
if(con != null && !con.isClosed()) {
con.close();
}
☞ 종료시 서버의 리소스 낭비를 방지하기 위해 항상 Connection 객체를 닫아준다.(자원해제)
이제 SELECT, INSERT, UPDATE, DELETE만 조작하는 것만 남았다.