오늘은 JDBC를 통해 데이터베이스에 Student 테이블을 조작해보겠다.
1️⃣ Connection을 통해 MySQL와 Java 연결
◾ Connection을 꺼내 반환 받을 메서드 생성
public class DBConnection { //getConnection 커넥트 반환 메서드 public static Connection getConnection(){} }
◾ 드라이버 로딩
Class.forName("com.mysql.cj.jdbc.Driver");
👉 이때 checkException에 의해 반드시 예외 처리를 해준다.try { Class.forName("com.mysql.cj.jdbc.Driver"); String url = ""; }catch (Exception e) {}
◾ Connection에 필요한 정보 전달 및 생성
try { Class.forName("com.mysql.cj.jdbc.Driver"); //나의 mysql의 포트번호 String url = "jdbc:mysql://@127.0.0.1:3306/mydb?characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true"; //커넥트에 필요한 정보 저장 (url,유저아이디,비밀번호) Connection conn = DriverManager.getConnection(url,"root","8086"); System.out.println("커넥션 성공"); //커넥트 반환 return conn; }catch (Exception e) { System.out.println("커넥션 실패"); return null; }
2️⃣ Connection 가져오기 테스트
◾ 테스트할 클래스 생성
public class StudentTest { //getConnection 메서드를 통해 커넥션 가져오기 private static Connection cn = DBConnection.getConnection(); public static void main(String[] args) { System.out.println(cn); } }
👉 실패
❓ 이유는
자바가 실행되기 위해서 필요한 라이브러리가 없기 때문이다.
라이브러리 추가
프로젝트 우클릭 → Build Path → Configure Build Path
Libraries → Classpath → Add External JARs
파일에 저장된 JAR 파일 가져오기
🔷 Connection을 통해 데이터출력
◾ 출력 메서드 생성
public static void selectList() { }
◾ sql 구문 실행할 라이브러리 가져오기
import java.sql.ResultSet; import java.sql.Statement; //또는 import java.sql.*;
👉 전부 인터페이스이며 인터페이스를 구현하는 것은 각 DBMS회사 이다.
(드라이버
◾ DB 에 접근하기 위한 클래스 변수들
private static Connection cn = DBConnection.getConnection(); private static Statement st; private static ResultSet rs; private static String sql;
◾ Student 조회를 위한 sql 구문 짜기
Connection 인스턴스에서 Statement 생성해서 반환public static void selectList() { try { sql = "select * from student"; st = cn.createStatement(); // 반드시 예외처리(checkedEx) } catch (Exception e) { } }
◾ 쿼리문의 결과 반환 받기
rs = st.executeQuery(sql);
◾ 리스트 출력
if(rs.next()) { //결과가 존재하고 1건을 읽어놓은 상태 System.out.println(rs.get); }
◾어떤 반복문?
next를 통해 먼저 담겨있는 데이터 먼저 출력한 뒤 다음 데이터를 가져오기위해
do-while문 사용
if(rs.next()) { do { System.out.printf("아이디: %d , 이름: %s \n",rs.getInt(1),rs.getString(2)); }while(rs.next()); }else { System.out.println("출력할 데이터가 없음"); }
👉 getInt와 getString의 인자는 컬럼 순서로 0부터가 아닌 1부터 시작
다음 데이터가 있을 시 계속 반복하고 do에서 출력
'Java' 카테고리의 다른 글
[Java] 지네릭스(Generics) 의 개념과 활용에 대해 알아보기 (2) | 2025.05.14 |
---|---|
[Java] 자바 List에 대해 알아보고 ArrayList와 LinkedList에 차이점을 살펴보기 (2) | 2025.04.02 |
[Java] 문자열의 묵시적 선언과 명시적 선언에 따른 문자열 비교(Heap (2) | 2025.03.28 |
[Java] 자바 예외 클래스의 계층 구조와 Exception, Error, RuntimeException, IOException 의 차이점을 알아보자 (0) | 2025.03.28 |
[Java] 상속관계에서의 Super와 Super()의 대해서 알아보기 (2) | 2025.03.26 |