이번 주제에서 알아볼 것은 Java로 DB 연결하는 방법을 알아보겠습니다.
우선 알아야 할 내용이 있습니다.
Connection (java.sql.Connection)은 DB에 접속할 때 필요한 클래스입니다.
(본 내용은 mysql 8.0.16 버전을 설치했고, Build Path 설정한 상태에서 작성된 내용입니다.)
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
private Connection con;
public DBConnection() {
try {
String url = "jdbc:mysql://localhost/?characterEncoding=UTF-8&serverTimezone=UTC";
String user = "user";
String passwd = "1234";
con = DriverManager.getConnection(url,
user, passwd);
con.close();
System.out.println("DB연결 성공");
} catch (SQLException e) {
System.out.println("DB연결 실패");
System.out.print("사유 : " + e.getMessage());
}
}
public static void main(String[] args) {
new DBConnection();
}
}
DriverManaget.getConnection 메소드를 사용할 때는 url과, user, password가 필요합니다.
url은 DB에 연결할 때 찾는 주소를 적는 곳 입니다.
- 기본적으로 "jdbc:mysql://localhost/?characterEncoding=UTF-8&serverTimezone=UTC"를 입력해주시면 됩니다.
user는 접속할 아이디라고 생각하시면 됩니다.
- 기본적으로는 root라는 아이디가 있습니다.
password는 접속할 아이디에 비밀번호를 입력하는 곳 입니다.
- 아이디에 따라 비밀번호를 입력하면 됩니다.
- mysql을 설치할 때 비밀번호를 설정하게 되는데 그게 root의 비밀번호입니다.
이렇게 url, user, password를 입력하고,
위 코드가 정상적으로 작동한다면 밑에 이미지처럼 출력이 됩니다.
DB를 설정하지 않은 상태에서 위 코드를 실행하면 오류를 출력합니다.
이유는 여러 가지가 있지만
첫째 mysql 8.X 버전으로 높아지면서 "Public Key Retrieval is not allowed" 으로뜨는 오류가 있습니다.
해결 방법은 기존 url + "&allowPublicKeyRetrieval=true"를 입력해주시면 위 에러는 사라집니다.
또 다른 "Establishing SSL connection without~"에러가 뜰 때가 있습니다.
해결 방법은 기존 url + "&useSSL=false"를 입력하면 더 이상 메시지는 출력이 안되고 사라지게 됩니다.
둘째 "Access denied for user~" 오류는 user와 password가 일치하지 않는 경우 발생하는 오류입니다.
해결 방법은 처음 mysql 설치 시 관리자 계정 정보를 입력하거나, 사용자 계정을 만들어 접속할 수도 있습니다.
이 외에도 많은 오류가 발생하지만 대부분은 위 2가지만 알아도 Connection 할 때 나는 오류는 대부분 잡아낼 수 있습니다.
다음 글에서는 Java로 sql문 처리하는 방법을 알려드리겠습니다.
'Java' 카테고리의 다른 글
[JDBC] ResultSet을 통해 결과값을 불러오기 - (Mysql 8.0 버전) (0) | 2020.08.16 |
---|---|
[JDBC] ResultSet을 통해 결과값을 불러오기 (6) | 2020.06.20 |
[JDBC] 자바에서 sql문 처리하기 (Statement) (3) | 2020.05.01 |
자바 메모장 파일 작성하기 (FileOutputStream) (0) | 2020.03.05 |
자바 메모장 파일 읽어오기 (FileInputStream) (0) | 2020.03.04 |