Java/Java-basic

[Intellij] 인텔리제이 MySQL - JDBC 연동 방법 (Java)

어썸오184 2021. 2. 20. 18:36
728x90
반응형

개발환경

  • MacOSX
  • Intellij Ultimate 2020.3 ver
  • MySQL 8.0.21
  • Java 11

 

프로젝트 생성 및 드라이버 추가


MySQL이 없으신 분들은 다른 블로그 참조해서 설치해주세요.

JDBC로 MySQL을 사용하기 위해서는 JDBC 드라이버인 MySQL Connector가 필요합니다. 아래의 링크에서 Platform Independent를 선택해 다운받은 후 압축을 풀어주세요.

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

 

MySQL :: Download Connector/J

MySQL Connector/J 8.0 is highly recommended for use with MySQL Server 8.0, 5.7 and 5.6. Please upgrade to MySQL Connector/J 8.0.

dev.mysql.com

 

그리고 인텔리제이로 프로젝트를 생성해줍니다. 저는 자바 11로 프로젝트를 생성하겠습니다.

 

프로젝트를 생성했으면 외부 라이브러리로 아까 다운받은 MySQL Connector를 추가해줘야 합니다.

File > Project Structure을 선택한 후, Library에서 + 버튼을 누르고 Java를 선택합니다.

그리고 아까 다운받은 파일을 선택한 후 적용해주시면 됩니다(압축 해제를 해주셔야 합니다).

 

프로젝트 윈도우에 External Libraries에 mysql-connector가 등록 되어있으면 잘 하신겁니다.

 

예제 테이블 생성 및 MySQL 연동


JDBC 연동을 하기 전에 테스트를 위한 간단한 테이블을 먼저 만들어보도록 하겠습니다.

mysql > CREATE DATABASE JDBC;
mysql > USE JDBC;
mysql > CREATE TABLE users (
                       id INT PRIMARY KEY AUTO_INCREMENT,
                       Name VARCHAR(25) NOT NULL
              );
mysql > INSERT INTO users (Name) VALUES ('awesomeo184');

id와 Name 필드를 가진 users 테이블을 만든 후 데이터를 하나 추가합니다.

 

다시 인텔리제이로 돌아가서 MySQL을 연결해봅시다.

view > tool windows > database 를 클릭합니다.

 

'+' > Data Source > MySQL 을 선택해줍니다.

 

 

User와 password 정보를 입력한 후, Database 칸에 아까 생성했던 데이터베이스의 이름을 입력합니다. Test Connection을 통해 잘 연결되는지 확인해볼 수 있습니다. 이때 반드시 mysql 서버가 켜진 상태여야합니다.

혹시 serverTimeZone 에러가 뜨는 분들은 이 글을 참조해보세요.

 

잘 되었다면 아까 생성했던 테이블과 데이터를 확인할 수 있을겁니다.

 

JDBC를 이용해 쿼리 작성


이제 JDBC를 이용해서 입력한 데이터를 받아와 보도록 하겠습니다. 자바 파일을 하나 만들고 커넥션을 생성하는 코드를 작성합니다.

public class App {

    public static void main(String[] args) throws SQLException {
        String url = "jdbc:mysql://localhost:3306/jdbc";
        String userName = "root";
        String password = "비밀번호";

        Connection connection = DriverManager.getConnection(url, userName, password);
 	}
}
★ jdk1.6(jdbc4) 부터는 getConnection 호출시 드라이버가 자동 로드됩니다. ClassForName("com.mysql.jdbc.Driver") 을 통해 드라이버를 로딩하는 코드를 작성하지 않아도 됩니다.

메서드를 실행했을 때 오류가 나지 않는다면 잘 된 것입니다. SQLException을 처리하는 코드를 반드시 작성해주어야 합니다.

 

잘 연결되었다면 statement를 작성해서 아까 입력했던 데이터를 출력해보도록 하겠습니다.

public class App {

    public static void main(String[] args) throws SQLException {
        String url = "jdbc:mysql://localhost:3306/jdbc";
        String userName = "root";
        String password = "비밀번호";

        Connection connection = DriverManager.getConnection(url, userName, password);
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery("select * from users");

        resultSet.next();
        String name = resultSet.getString("name");
        System.out.println(name);

        resultSet.close();
        statement.close();
        connection.close();
    }

}

실행 결과

awesomeo184

 

이상 포스팅을 마치도록 하겠습니다. 틀린 부분이나 궁금한 사항 있으시면 댓글 부탁드립니다.

728x90
반응형