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 |