본문 바로가기
Java

[JAVA] 자바 인텔리제이에서 DB 데이터베이스 접속하기

by teamnova 2024. 8. 27.
728x90

이번에는 JAVA에서 MYSQL DB에 접속하여 데이터 조회 및 저장도 해보겠습니다.

작업 환경은 윈도우에서 작업했으며 JAR 파일을 직접다운받아 인텔리제이에 삽입해보겠습니다.

 

먼저 https://dev.mysql.com/downloads/connector/j/?os=26 에서 mysql-connector-j-9.0.0 파일을 다운 받습니다.

 

다운로드 받은 파일을 압축해제 합니다.

 

그 다음 인텔리제이를 실행하여 projecStructure 를 실행합니다

 

JAR 파일을 추가 항목을 누른 후

 

추가가 된것을 확인 할 수 있습니다.

 

자바 코드입니다.


import java.sql.*;

public class ConnectMySQL {

    public static Statement stmt;

    public static void main(String[] args) {
        Connection con = null;
        String server = "MySQL 서버 주소"; //
        String database = "MySQL DATABASE 이름"; //
        String user_name = "MySQL 서버 아이디"; //
        String password = "MySQL 서버 비밀번호"; //

        try {
            System.out.println("mysql서버와 연결을 시작합니다!");
            String url = "jdbc:mysql://"+ server + "/" + database +
                    "?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
            con = DriverManager.getConnection(url, user_name, password);
            if (con != null) {
                System.out.println("정상적으로 연결되었습니다.");
            }
            stmt = con.createStatement();

            // 서버에 게시글데이터 추가
            // 자신의 테이블, 필드명을 꼭 확인해주세요!!
            MYSQL_update("INSERT INTO userfree (free_title,free_content,free_img) VALUES " +
                    "(\"자바테스트 타이틀\",\"자바테스트 내용\",\"자바테스트 이미지\")");
            // 서버 게시글 조회
            // 자신의 테이블, 필드명을 꼭 확인해주세요!!
            MYSQL_confirm("SELECT * FROM userfree");

        } catch (SQLException e) {
            System.err.println("con 오류: " + e.getMessage());
            e.printStackTrace();
        } finally {
            // 3. 해제
            if (con != null) {
                try {
                    con.close();
                } catch (SQLException e) {
                    System.err.println("연결 해제 오류: " + e.getMessage());
                    e.printStackTrace();
                }
            }
        }

    }
    
    static void MYSQL_update(String sendSQL) throws SQLException {
        // SQL문이 실행되어 결과값으로 인트 수를 받습니다.
        int rowsAffected = stmt.executeUpdate(sendSQL);
        System.out.println(rowsAffected + " 행이 삽입되었습니다.");
    }

    static void MYSQL_confirm(String sendSQL) throws SQLException {
        // 데이터베이스 조회 결과값을 받아 칼럼라벨 (키값) 을입력하여 표시 할 수 있습니다.
        ResultSet resultSet = stmt.executeQuery(sendSQL);
        while (resultSet.next()) {
            System.out.println("자유게시글 번호 : " + resultSet.getInt("free_no") +
                    " /작성자 : " + resultSet.getInt("free_user_no") +
                    " /제목 : " + resultSet.getNString("free_title") +
                    " /내용 : " + resultSet.getNString("free_content") +
                    " /카테고리 : " + resultSet.getNString("free_category") +
                    " /작성시간 : " + resultSet.getString("free_time"));
        }
    }
}

 

 

시연 영상