[Java] 12. IntelliJ에서 환경변수를 통한 MySQL연동

Kyunghwan Ko·2022년 10월 17일
0

Java

목록 보기
13/14

환경변수 설정

이후 아래의 순서대로 입력 및 클릭진행하면 된다.

코드 작성

package com.dbconnection;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Map;

public class UserDao {
    public void add() throws SQLException {
        Map<String, String> env = System.getenv();
        String dbHost = env.get("DB_HOST");
        String dbUser = env.get("DB_USER");
        String dbPassword = env.get("DB_PASSWORD");
        Connection mysqlCon = null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            mysqlCon = DriverManager.getConnection(
                    dbHost, dbUser, dbPassword
            );
            System.out.println("Success to connect mySQL | mysqlCon = " + mysqlCon);
        } catch (Exception e) {
            System.out.println("Fail to connect MySQL | exception = " + e);
        }

    }
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        UserDao userDao = new UserDao();
        userDao.add();
    }
}

설정된 환경변수 System.getenv() 함수를 통해 가져올 수 있습니다.
위 코드에서 아래의 에러가 발생할 수 있습니다.

에러1 - ClassNotFoundException: com.mysql.cj.jdbc.Driver

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

해결방안 - build.gradle에 dependency로 mysql-connector-java 추가하기

buil.gradle에서 alt+insert -> Generate -> Add dependency -> mysql-connector-java 검색 후 Add

(저는 현재 Add를 한 상태여서 Upgrade all(2) 글자밑에 Add가 안보이지만
처음 Depdency를 추가하신 분들은 Add 가 뜰것입니다!)

dependencies {
	implementation 'mysql:mysql-connector-java:8.0.30'
    ...
}

이후 우측상단에 있는 코끼리버튼을 눌러서 gradle파일 변경사항을 프로젝트에 반영시킵니다.

그리고 나서 다시 UserDao 클래스의 main함수를 실행하면 아래의 실행결과가 나옵니다

Success to connect mySQL | mysqlCon = com.mysql.cj.jdbc.ConnectionImpl@6f03482

이를통해 성공적으로 MySQL에 연결할 수 있습니다!!

insert 쿼리 실행

if(mysqlCon != null){
	PreparedStatement ps = mysqlCon.prepareStatement(
            "insert into users(id, name, password) values(?, ?, ?)"
    );
	ps.setString(1, "1");
    ps.setString(2, "ko1");
    ps.setString(3, "1111");
    ps.execute(); // ctrl + Enter (in MySQLWorkbench)
    ps.close();
    mysqlCon.close();
    System.out.println("Success insert Database");
 }

실행결과

select 쿼리 실행

if(mysqlCon != null){
	PreparedStatement selectQuery = mysqlCon.prepareStatement(
    		"select * from users where id = ?"
    );
	selectQuery.setString(1, "1");
	ResultSet resultSet = selectQuery.executeQuery();
	resultSet.next();
	System.out.println("resultSet.getString(\"name\") = "
                    + resultSet.getString("name"));
	System.out.println("resultSet.getString(\"password\") = "
                    + resultSet.getString("password"));
    }
}

실행결과

참고

[jsp] MySQL 연동 오류(java.lang.ClassNotFoundException: com.mysql.jdbc.Driver)

How to add local .jar file dependency to build.gradle file?

profile
부족한 부분을 인지하는 것부터가 배움의 시작이다.

0개의 댓글