
MariaDB
MariaDB에 테이블을 생성하고 테이블 구조를 만든다.

인텔리제이
인텔리제이에서 MariaDB를 사용하기 위해서는 build.gradle파일에 다음을 설정해야 한다.


설정을 마친 후 다음과 같이 실행해 보자.
‘main의 java 패키지’와 ‘test의 java 패키지’에 똑같은 구조의 bd패키지를 생성하고 자바파일도 생성한다.

main 패키지

package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
public static Connection getInstance(){
String username = "root";
String password = "1234";
String url = "jdbc:mariadb://127.0.0.1:3306/cosdb";
// 프로토콜이 적용된 소켓
try {
Connection conn = DriverManager.getConnection(url, username, password);
System.out.println("db connect success");
return conn;
} catch (Exception e) {
throw new RuntimeException(e); // 호출하는 놈(JVM)에 예외를 던짐
}
}
}
test 패키지

package db;
import org.junit.jupiter.api.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnectionTest { // 테스트코드에서는 main의 본 코드 이름 뒤에 Test
// return 타입을 적을 수 없다.
// 매개변수를 적을 수 없다.
// @Test 붙이면 메서드별로 실행 가능
@Test // main 안 만들어도 됨
/**
* testImplementation platform('org.junit:junit-bom:5.9.1')
* testImplementation 'org.junit.jupiter:junit-jupiter'얘가 build.gradle에 있어야 하는데 gradle으로 하면 자동으로 된다.
*
*/
public void getInstance_test(){ // _test를 붙인다.
String username = "root";
String password = "1234";
String url = "jdbc:mariadb://127.0.0.1:3306/cosdb";
// 프로토콜이 적용된 소켓
try {
Connection conn = DriverManager.getConnection(url, username, password);
// return conn; // 리턴 못 함
} catch (SQLException e) {
throw new RuntimeException(e); // 호출하는 놈(JVM)에 예외를 던짐
}
}
}
쿼리 보내기
import db.DBConnection;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class BankApp {
public static void main(String[] args) {
Connection conn = DBConnection.getInstance();
try {
String insert="insert into account_tb(password, balance, created_at) values(?,?,now())";
String delete= "DELETE FROM account_tb WHERE number = ?";
String update= "update account_tb set balance = balance + ? where number = ?";
PreparedStatement pstmt = conn.prepareStatement(insert); // 코드는 다르지만 얘가 버퍼임
// 연결된 선에다가 버퍼를 달고 쿼리를 넣는다. 그런데 그 쿼리가 완성되지 않았어.
// insert
pstmt.setString(1, "1234"); // 몇 번째 파라미터를 완성할거냐. 1, 2, 3,... 0이 없음
pstmt.setInt(2, 1000); // 몇 번째 파라미터를 완성할거냐. 1, 2, 3,... 0이 없음
// // delete
// pstmt.setInt(1, 6);
// // update
// pstmt.setInt(1, 3000);
// pstmt.setInt(2, 2);
int num = pstmt.executeUpdate(); // flush();
System.out.println(num);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
insert, delete, update를 테스트한 후 MariaDB로 돌아와 select문을 사용해서 변경된 테이블을 확인한다.
CREATE DATABASE COSdb;
INSERT INTO account_tb(NUMBER, PASSWORD, balance, created_at)
values
USE cosdb;
CREATE TABLE account_tb(-- 우리들만의 컨벤션!! 테이블 뒤에 _tb붙이기, 그리고 _쓰기
number int primary KEY AUTO_INCREMENT,
password varchar(100) not null,
balance int not null,
created_at timestamp not null
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4; -- CHARSET=UTF8MB4 안 적어도 디폴트 값
SELECT * FROM account_tb;

Share article