[도커] mysql_실습

김성환·2022년 6월 17일
0

실습

목록 보기
2/6

인텔리제이 도커 plugin

settings에서 도커를 추가한다.

추가한 도커를 인텔리제이와 연결한다.(실행한다)

mysql 이미지 pull하기

컨테이너 생성하기


컨테이너를 생성할 때, 여러가지 옵션들을 줄 수 있다.(포트번호 설정, 환경변수설정 등등)

mysql 환경변수 설정 추가


root계정의 비밀번호와 데이터베이스를 생성해준다.

포트번호 설정 추가

컨테이너가 성공적으로 생성된 모습

mysql 실행


mysql을 실행하기 위해서는 생성한 컨테이너의 Exec를 클릭해 설정한 비밀번호를 입력하여 실행시켜준다.(나의 경우 비밀번호는 password)

테이블 생성

데이터 삽입

JDBC를 이용해 로컬환경에서 mysql이용하기

JDBC를 이용하기 위해서 mysql드라이버를 설치하여 추가하기

File > Project Structure을 선택한 후, Library에서 + 버튼을 누르고 Java를 선택 후 다운 받은 드라이버를 추가

JDBC를 위한 코드 작성

import java.sql.*;
public class MainClass {
    public static void main(String[] args)  {
        Connection conn = null;
        try{
            //1. 드라이버 로딩 : mysql 드라이버 로딩
            Class.forName("com.mysql.cj.jdbc.Driver");
            //드라이버들이 읽히기만 하면 자동 객체가 생성되고 DriverManager에 등록된다.
            //2. mysql과 연결시키기
            String url = "jdbc:mysql://IP주소:포트번호/데이터베이스명";
            conn = DriverManager.getConnection(url, 사용자명, 비밀번호);
            System.out.println("Successfully Connection!");
        }
        catch(ClassNotFoundException e){
            e.printStackTrace();
            System.out.println("Failed because of not loading driver");
        }
        catch(SQLException e){
            System.out.println("error : " + e);
        }
        finally{
            try{
                if(conn != null && !conn.isClosed()){
                    //conn.close();
                }
            }
            catch(SQLException e){
                e.printStackTrace();
            }
        }
        // 코드 작성
        Statement stmt = null;
        try{
            stmt = conn.createStatement();
            StringBuilder sb = new StringBuilder();
            String sql = sb.append("use myDB;").toString();
            stmt.execute(sql);
            sb = new StringBuilder();
            ResultSet rs = stmt.executeQuery("select * from TEST");
            while(rs.next()) { //rs.next()를 통해 다음행을 내려갈 수 있으면 true를 반환하고, 커서를 한칸 내린다. 다음행이 없으면 false를 반환한다.
                System.out.println(rs.getInt(1) + "\t" + rs.getString(2)); //getInt(1)은 컬럼의 1번째 값을 Int형으로 가져온다. / getString(2)는 컬럼의 2번째 값을 String형으로 가져온다.
            }
        }catch (SQLException e){
            e.printStackTrace();
        }
    }
}

실행 결과

profile
개발자가 되고 싶다

0개의 댓글