본문으로 바로가기

자바에서 MySQL 사용하기

category 프로그래밍 스터디/Java 2017. 2. 14. 23:31
반응형

요즘 어플리케이션에서는 DB를 사용하지 않는 경우가 드물다. 로컬에서만 사용하는 경우 iOS의 SQLite 처럼 간단한 DB를 사용하기도 하지만 보통은 MySQL 등을 세팅해서 원격으로 접속해 사용하게 된다. 아직 자바에 대해 문법이고 뭐고 잘 모르지만 일단 뭔가 만들어보면서 수많은 오류를 맞닥뜨리며 배우는 것이 가장 빠르기 때문에 재미없는 Hello World류의 공부는 건너뛰고 DB부터 연결해보자. (사실 Hello World는 벌써 해봤다.)


작업환경

OS : MacOSX El Capitan

IDE : Eclipse Neon

DB : Debian Linux 위에서 돌아가는 MySQL 5.5.53


1. 다운로드

먼저 자바를 사용할 수 있도록 JRE와 JDK가 설치되어 있어야 한다. 여기 참고.

그 다음, JDBC 드라이버를 이용해서 MySQL서버에 연결할 수 있게 해주는 Connector를 받는다.

자바 뿐만 아니라 ODBC, Net, Node.js, Python, C++, C 용 커넥터 드라이버를 받을 수 있다.

https://dev.mysql.com/downloads/connector/j/

Platform Independent라고 하니 OS에 상관없이 그냥 다운로드하면 된다. zip이건 tat.gz 건 똑같다. 압축만 풀 수 있으면 된다.

압축을 풀면 jar파일과 기타 등등이 나오는데, jar파일만 사용할 예정이다. 더블클릭해서 설치하는 거 아님. 원하는 폴더에 적당히 넣어둔다.

2. 이클립스에서 불러오자

이클립스에서 프로젝트를 하나 생성하고 메인으로 사용할 (이름은맘대로).java를 하나 생성한다.

프로젝트 이름에서 마우스 오른쪽버튼을 누르고 아래 스크린샷을 참고해서 Build Path → Add External Archives... 메뉴로 들어간다.


그 다음, 아까 다운로드해 두었던 JDBC 드라이버 파일을 선택한다.

그러면 Referenced Library 에 해당 드라이버가 추가되었다. 이제 개발하면 된다.


3. 테스트를 해보자.

아래의 소스코드를 입력한다. MySQL서버의 주소와 아이디 패스워드는 각자에 맞게 수정한다. 나는 원격에서 운영하는 내 서버의 정보를 넣었다.

로컬에서 MySQL 서버를 돌리고 있다면 localhost, ID, PW 가 들어가면 된다.

쿼리로 SHOW DATABASES 를 날렸으므로 정상적으로 동작한다면 콘솔 화면에 내 서버에 존재하는 데이터베이스 이름이 출력될 것이다.

import java.sql.*;

public class testprj {
	public static void main(String[] args) {
        try{
        	Connection con = null;
        	
        	con = DriverManager.getConnection("jdbc:mysql://(MySQL서버주소)","(ID)","(PW)");
        	
                // Statement는 정적 SQL문을 실행하고 결과를 반환받기 위한 객체다. Statement하나당 한개의 ResultSet 객체만을 열 수 있다.
        	java.sql.Statement st = null;
        	ResultSet result = null;
        	st = con.createStatement();
        	result = st.executeQuery("SHOW DATABASES"); // executeQuery : 쿼리를 실행하고 결과를 ResultSet 객체로 반환한다.
        	
                // 결과를 하나씩 출력한다.
        	while (result.next()){
        		String str = result.getNString(1);
        		System.out.println(str);
        	}
        }catch(SQLException e){
        	System.out.println("SQLException: " + e.getMessage());
        	System.out.println("SQLState: " + e.getSQLState());
        }
        
    }
}



결과가 정상적으로 출력되었다.



반응형

'프로그래밍 스터디 > Java' 카테고리의 다른 글

자바 GUI에 데이터베이스 연동하기  (0) 2017.02.15
자바 GUI 화면 구성하기  (0) 2017.02.15
자바 GUI 개발하기  (0) 2017.02.15
자바 공부 시작  (0) 2017.02.14