개발환경
- 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/
그리고 인텔리제이로 프로젝트를 생성해줍니다. 저는 자바 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
이상 포스팅을 마치도록 하겠습니다. 틀린 부분이나 궁금한 사항 있으시면 댓글 부탁드립니다.
'Java > Java-basic' 카테고리의 다른 글
[Java Study 14주차] 제네릭스(Generics) (0) | 2021.02.23 |
---|---|
[Java] JDBC 기본 코드의 이해 (0) | 2021.02.21 |
[Java] JDBC란 무엇인가 (2) | 2021.02.20 |
[Java Study 13주차] I/O (0) | 2021.02.18 |
[Java Study 12주차] Annotation (0) | 2021.01.31 |
댓글