백엔드/JAVA

JDBC 드라이버 다운로드 및 등록

두개의 문 2023. 5. 23. 23:54

 

MariaDB 드라이버 및 H2 드라이버 다운로드 

- DB마다 JDBC 드라이버 다운로드해야함

 

① 구글에 'maven repository' 검색 - MariaDB 드라이버 및 H2 드라이버 다운로드 

 

 

② lib 폴더 생성 - 붙여넣기

 

 

③ [ Build Path ] - [ Add external JARs ] - [ Modulespath ]에 등록

 

 

Package Explorer 창에서 [ Refresh ] - [ Referenced Libraries ] - 드라이버 등록 여부 반드시 확인하기  

사진

 

 


DBConnection 클래스
package model.connect;

import java.sql.Connection;
import java.sql.DriverManager;
import static model.util.MyIO.*;

public class DBConnection {
	// MySQL JDBC 설정 상수
	private static final String MYSQL_DRIVER = "com.mysql.cj.jdbc.Driver";
	private static final String MARIADB_DRIVER = "org.mariadb.jdbc.Driver";
	private static final String JDBC_MYSQL_URL = "jdbc:mysql://127.0.0.1:3306/java";
	private static final String JDBC_MARIADB_URL = "jdbc:mariadb://127.0.0.1:3306/java";
	private static final String USER = "root";
	private static final String PASS = "mariadb";
	
	// DB Connection 변수
	private Connection connection; 
	
	// DBConnection 기본생성자 
	public DBConnection() {
		// try-catch문 ( DB 연결 중 에러가 발생할 수 있으므로 )
		try {
			// ① MYSQL_DRIVER 연결
			Class.forName(MARIADB_DRIVER);
			pl("MySQL 드라이버 가져오기 성공!");
			// 데이터베이스 서버와 연결이 됨
			connection = DriverManager.getConnection(JDBC_MYSQL_URL, USER, PASS);
			pl("MySQL 서버 접속 성공!");
		} catch(Exception e) {
			e.printStackTrace();	
			// 예외 발생 당시, 호출스택에 있는 메서드의 정보 및 에러 메시지 출력
		} 
	}
	
	public Connection getConnection() {
		return connection;
	}
	
}

 

 

HelloMariaDBApp 클래스
package model.app;

import static model.util.MyIO.p;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import model.connect.DBConnection;

public class HelloMariaDBApp {

	public static void main(String[] args) {
		// 1. DBConnection 객체를 이용해서
		//    MariaDB 서버(MySQL 서버)에 접속을 할 것입니다.
		Connection conn = new DBConnection().getConnection();
			// 임시객체의 getConnection()메서드를 호출해 사용 - 익명객체
		// 2. MySQL workbench로 테이블을 하나 생성합시다.
		//    테이블에 몇 개의 레코드를 추가합니다.
		
		// 3. JDBC 기술을 이용하여 SELECT 쿼리를 DB로 전송 후,
		//    결과를 화면에 출력합니다.
		String sql = """
			SELECT 
				id, age, first, last
				FROM 
				register;
				""";
		
		try {
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery(sql);
			// ResultSet : 열거형 데이터이므로 루프문 필요
			while(rs.next()) {
				int id = rs.getInt("id");
				int age = rs.getInt("age");
				String first = rs.getString("first");
				String last = rs.getString("last");
				
				p("id : " + id);
				p("age : " + age);
				p("first : " + first);
				p("last : " + last);
				
			}
		} catch(SQLException e) {
			e.printStackTrace();
		}
		
		// 4. 더 이상 DB와의 연결이 필요하지 않으면 DB연결 종료
	}

}

▶ MySQL workbench

 

 


MemberVO 클래스
package model.vo;

public class MemberVO {
	// 테이블의 컬럼에 해당하는 멤버변수 4개 선언
	private int id;
	private int age;
	private String first;
	private String last;
	
	// 전체 멤버변수를 초기화하는 생성자가 있으면 좋음
	public MemberVO(int id, int age, String first, String last) {
		this.id = id;
		this.age = age;
		this.first = first;
		this.last = last;
	}
	
	// 속성함수
	public int getId() {
		return this.id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	public int getAge() {
		return this.age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	public String getFirst() {
		return this.first;
	}
	public void setFirst(String first) {
		this.first = first;
	}
	
	public String getLast() {
		return this.last;
	}
	public void setLast(String last) {
		this.last = last;
	}
	
}

 

 


MyIO 클래스
package model.util;

public class MyIO {
	public static void p(String msg){
		System.out.print(msg);
	}
	public static void pl(String msg) {
		p(msg + "\n");
	}
}

'백엔드 > JAVA' 카테고리의 다른 글

데이터 입출력 (2)  (0) 2023.05.31
데이터 입출력(1)  (0) 2023.05.30
H2 데이터베이스 연결 (2)  (0) 2023.05.22
H2 데이터베이스 연결 (1)  (0) 2023.05.22
👉🏻 에러의 종류 및 에러 처리  (0) 2023.05.18