BugDIARY

JAVA에서 MariaDB연동 본문

IT/Java

JAVA에서 MariaDB연동

HEMON 2021. 9. 15. 23:54

JAVASpring프레임워크를 사용하지 않고 MariaDB에서 제공하는 JAVA라이브러리를 통해 DB를 연결하는 방법

 

1. 현재 최신 버전의 DBConnector의 jar파일을 다운받는다.

https://downloads.mariadb.com/Connectors/java/connector-java-3.0.0-alpha/

 

Connectors/java/connector-java-3.0.0-alpha/ - MariaDB

 

downloads.mariadb.com

 

2. 다운로드 받은 jar파일을 빌드 패스 설정 페이지 한다.

 

3. "Add External JARs.."버튼을 클릭

 

4. [1]에서 다운받은 JAR파일을 선택하여 "열기" 클릭

 

5. 아래는 위의 파일을 열고난 후의 모습이다. "Apply" 를 하여 추가한 라이브러리를 저장한다.

 

6-1. 아래 코드를 이용해 DBConnect를 한다.

 

package miniBookStore;

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

public class MainController {

	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		
		/* Driver Load */
		// mariaDB의 정보가 저장되어 있는 Class를 mdb에 재정의
        mariaDBConnect mdb = new mariaDBConnect();
        
        // JDBC를 사용하기 위해 forName을 이용해 드라이버를 로드 (참고1 : JDBC 4.0이후로는 forName을 해주지 않아도 됨)
		Class.forName("org.mariadb.jdbc.Driver");
        // DriverManager.getConnection으로 연결정보들을 얻는다. (정보는 다양한 방식으로 얻을 수 있음.)
//		Connection con = DriverManager.getConnection(mdb.getUrl(), mdb.getId(), mdb.getPassword());
		Connection con = DriverManager.getConnection("jdbc:mariadb://localhost:3306/'Database명'?user='DB의user'&password='DBuser의 password'");
		
		// 위에서 취득한 정보를 이용해 Statement객체 생성
		Statement crState = con.createStatement();
		// mdb클래스에 저장되어 있는 쿼리문을 가져와 ResultSet에 저장시킨다.
        // ResultSet인터페이스의 역할은 SELECT문을 executeQuery()메소드로 실행한 다음 반환되는 레코드 셋을 저장한다.
		ResultSet rSet = crState.executeQuery(mdb.getSql());
		
        // next()메소드는 ResultSet으로부터 레코드를 읽어오는 역할을 함. 레코드가 있을 경우 True, 없을경우 False
		if(rSet.next()) {
			String excute1 = rSet.getString("user_name");
			// 읽은 레코드를 print해줌
            System.out.println(excute1);
		}

		// 자원이 부족하지 않게 사용한 Statement와 ResultSet은 닫아준다.
        // 또한, Connection을 닫아주지 않으면 새로운 Connection 을 할 수 없게 되므로 닫아주는 것이 좋다.
		rSet.close();
		crState.close();
		con.close();

참고1 : forName에 대해 자세히 설명되어 있으므로 참고

https://kyun2.tistory.com/23

 

[Java 궁금증] Class.forName()은 어떻게 동작할까?

JDBC 란 자바에서 제공하는 데이터베이스와 연결하여 데이터를 주고 받을 수 있도록 하는 인터페이스입니다. JDBC를 사용하는 방법은 어떤 데이터베이스를 사용하던지 같습니다. 방법은 간략하게

kyun2.tistory.com

 

 

6-2. mariaDBConnect클래스(참고용)

package miniBookStore;

public class mariaDBConnect {
	private String url = "jdbc:mariadb://127.0.0.1:3306/'데이터베이스 명'";
	private String sql = "SELECT * FROM login";
	private String id = "접속 아이디";
	private String password = "접속비밀번호";
	
	public String getUrl() {
		return url;
	}
	
	public String getSql() {
		return sql;
	}
	
	public String getId() {
		return id;
	}
	public String getPassword() {
		return password;
	}
}

 

7. 성공시, 쿼리문에 맞는 결과값이 출력됨.

Comments