이클립스와 데이터베이스(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

+ Recent posts