[JAVA] MySQL JDBC 연결 [MAC]
1 minute read
JAVA - MYSQL JDBC 연결 [MAC]
JDBC 다운로드
- Select Operating System: Platfrom Independent 클릭
- Platform Independent (Architecture Independent), ZIP Archive 다운로드
- 🔗 다운로드 링크
# 아래의 경로로 mysql-connector-java-8.0.27.jar 파일 옮기기
# /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/ext
JAVA에 mysql-connector-java-[version].jar 추가
# 1) 패키지 폴더 우클릭 - Build Path - Configure Build Path 클릭
# 2) Libraries - Add external JARS 클릭 - mysql-connector-java-[version].jar 추가 - Apply and close
JAVA에서 연결 확인
import java.sql.*;
import java.io.*;
public class [CLASS_NAME] { // Class 이름 수정
static String url;
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try{
Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/[DB]",
"[ID]",
"[PASSWORD]"); //URL,UID,PWD
if(conn==null){
System.out.println("연결실패");
}else{
System.out.println("연결성공");
}
}catch(ClassNotFoundException ce){
ce.printStackTrace();
}catch(SQLException se){
se.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}finally{
try{ // 연결 해제
if(rs!=null){ rs.close(); }
if(pstmt!=null){ pstmt.close(); }
if(stmt!=null){ stmt.close(); }
if(conn!=null){ conn.close(); }
}catch(SQLException se2){
se2.printStackTrace();
}
}
}
}
JAVA-MYSQL
- JDBC 연결을 활용해 MySQL의 empDB 데이터베이스 dept10 테이블의 데이터를 수정
- 부서위치를 바꿀 부서번호를 입력해, 입력받은 부서번호의 위치(loc)을 바꾸시오
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
import java.sql.PreparedStatement;
public class MyConn03 {
public static void main(String[] args) {
Connection conn = null;
String jdbcDriver = "com.mysql.cj.jdbc.Driver";
String jdbcUrl = "jdbc:mysql://localhost:3306/empDB?serverTimezone=UTC";
String dbUser = "root";
String dbPwd = "1234";
String sqlSelect = "SELECT * FROM dept10";
PreparedStatement pstmt = null; // for dynmaic query
ResultSet rs = null;
int iDeptno = 0;
String sLoc = null;
Scanner sc = new Scanner(System.in);
System.out.println("부서위치를 바꿀 부서번호를 입력하시오 =>");
iDeptno = sc.nextInt();
System.out.println(iDeptno + "번 부서번호가 바뀔 위치를 입력하시오 =>");
sLoc = sc.next();
String sqlUpdate = "UPDATE dept10 \n" +
"SET loc = ? \n" +
"WHERE (deptno = ?)";
try {
// 1. JDBC 드라이버 로드
Class.forName(jdbcDriver); // Library에 있는 "String" 이름의 클래스를 가져와라
// 2. Database Connection 연결
conn = DriverManager.getConnection(jdbcUrl, dbUser, dbPwd);
System.out.println("Connection 연결");
// 3. Statement 생성
pstmt = conn.prepareStatement(sqlUpdate);
// 4. SQL 전송 (executeQuery(), exectueUpdate())
pstmt.setString(1, sLoc);
pstmt.setInt(2, iDeptno);
int resultCount = pstmt.executeUpdate(); // 정상인 경우 보통 숫자 1 반환
// 5. Result set(Sql 결과) 받기
rs = pstmt.executeQuery(sqlSelect);
if (resultCount > 0) {System.out.println("데이터 정상적으로 추가됨");}
else {System.out.println("데이터 정상적으로 입력 안됨");}
while(rs.next()) {System.out.printf("%d | %-10s | %-10s \n", rs.getInt(1), rs.getString(2), rs.getString("loc"));}
// 6. Database Connection 해제
System.out.println("Connection 해제");
pstmt.close();
conn.close();
}
catch (SQLException e) {
System.out.println("SQL 연결 안됨");
}
catch (ClassNotFoundException e) {
System.out.println("드라이버 로드 실패");
}
}
}