이클립스와 데이터베이스(MySQL)을 연동(?)하기 위해서는 드라이버 설정이 필요하다.
public class DBex {
public static void main(String[] args) {
// String driver = "com.mysql.jdbc.Driver" ; // ver5.x
String driver = "com.mysql.cj.jdbc.Driver"; //ver8.x
try {
Class.forName(driver);
System.out.println("데이터베이스 드라이버 로딩 성공");
}catch(Exception e) {
System.out.println("데이터베이스 드라이버 로딩 실패");
}
}
}
package DB;
import java.sql.Connection;
import java.sql.DriverManager;
public class DBEx2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String driver = "com.mysql.cj.jdbc.Driver"; //드라이버 연결
//String url = "jdbc:mysql://localhost:3306/app"; //주소 정보 5버전
String url = "jdbc:mysql://localhost:3306/app?characterEnconding=UTF-8&serverTimezone=UTC"; //주소 정보
Connection conn = null;
try {
Class.forName(driver);//드라이버 로딩 작업
System.out.println("데이터베이스 드라이버 로딩 성공");
conn = DriverManager.getConnection(url, "root", "java"); //연결 시도(준비된 커넥션을 받아주는 놈) - url , 아이디, 비밀번호
System.out.println("데이터베이스 연결 성공!");
}catch(Exception e) {
System.out.println("데이터베이스 드라이버 연결 실패");
}finally {
try {
if(conn != null)conn.close(); //Connection이 null이 아닐때만 close하고 연결 후 다 사용하면 close는 필수로 해줘야함.
}catch(Exception e) {}
}
}
}
데이터베이스와 연결을 하는 코드이다.
우선 Connection과 DriverManager를 임포트를 해야 한다.
그 다음 드라이버 연결과 데이터베이스 주소 정보를 가지고 데이터베이스와의 연결을 시도해야 한다.
이때 데이터베이스와의 연결을 하려면 예외 처리를 해주어야 하기 떄문에
try{
}문에 드라이버 로딩 작업과 데이터베이스와의 연결을 시도하는 DriverManger로 데이터베이스와의 연결을 시도한다.
마지막으로 사용이 끝난 Connection을 close()로 닫아주면 데이터베이스와의 연결이 완료된다.
package DB;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class DBEx3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String driver = "com.mysql.cj.jdbc.Driver"; //드라이버 연결
String url = "jdbc:mysql://localhost:3306/app?characterEnconding=UTF-8&serverTimezone=UTC"; //주소 정보
Connection conn = null;
Statement stmt = null; //상태에 대한 객체를 만들고 데이터베이스에 명령을 수행한다.(데이터베이스에 명령을 내리기 위한 객체)
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, "root", "java");
System.out.println("데이터베이스 연결 성공");
stmt = conn.createStatement();
int result = stmt.executeUpdate("create table DBTEST(ID varchar(10), PW varchar(10))"); //result에 -1,0,1가 나오는데 0을 포함한 1은 성공, -1은 실패,
//varbinary는 대소문자 구분을 함.
String msg = result > -1 ? "successful" : "fail";
System.out.println(msg);
}catch(Exception e) {
System.out.println("데이터베이스 연결 실패");
}finally {
try {
//statement먼저 닫고 connection닫는다.(순서)
if(stmt!=null)stmt.close();
if(conn!=null)conn.close();
}catch(Exception e) {}
}
}
}
다음은 연결된 데이터베이스에 테이블을 생성하는 쿼리문이다. 이 코드에서 보이는 Statement객체는 데이터베이스에
명령을 내리기 위한 객체이다.
다음은 테이블을 생성하는 쿼리문이다. INSERT TABLE DBTEST (ID VARCHAR(10), PW VARCHAR(10), AGE INT);
이렇게 되면 DBTEST라는 테이블이 생성되고 그 안에 컬럼이 ID, PW, AGE로 3개의 컬럼이 생성된다.
DBTEST라는 테이블이 정상적으로 만들어졌다. 이클립스에서 Statement객체를 사용하여 테이블을 생성할 수도 있고
MySQL workbench를 통해 직접 쿼리문을 다음과 같이 입력하여 테이블을 생성할 수 있다.
마지막으로 사용한 Statement객체와 Connection 객체를 닫아줌으로써 완료된다.
'DB' 카테고리의 다른 글
[DB] IN연산자 (0) | 2021.03.23 |
---|---|
[DB]컬럼 별칭 사용 (0) | 2021.03.21 |
[DB] MySQL - 2 (0) | 2020.10.15 |
[DB] 용어 설명 (0) | 2020.10.15 |