Frontend 와 Backend 간의 데이터 전송
- 프론트앤드에서 사용자가 입력한 데이터를 서버로 전송하고
최종적으로 해당 데이터를 SQL문을 통해 데이터베이스에 저장 - 이과정에서 JAVA 는 SQL 문을 통해 DB와 상호 작용하는 중간 역할을 수행한다.
Java 와 DB 연결을 위한 JDBC 사용
- JDBC(Java Database Connectivity)
java 애플리 캐이션이 다양한 데이터베이스에 연결될 수 있도록 해주는 API
자바 운영체제에 JVM이 있던것 처럼,
DB에 관해서도 각 DBMS 마다 존재하게 된다 ➡️JDBC Driver API
- JDBC Driver
각 DB 회사마다 드라이버를 제공하고 있다.
mySQL은 커넥터를 이용하여 JDBC 드라이버 API를 사용한다.
드라이버들도 공통된 규칙이 정해져 있고 , 그 규칙이 JDBC driver 다. 자바를 설치하면 기본적으로 있다.
규칙을 준수하도록 인터페이스 형태의 라이브러리가 있다.
MySQL 과 Java 연동
1. JDBC 드라이버 설치
MySQL을 Java와 연결하기 위해 JDBC 드라이버인 mysql-connector-java를 설치하고 프로젝트에 추가.
https://downloads.mysql.com/archives/c-j/
압축을 미리 풀어서 편하게 꺼내 놓는다.
DB 연결을 위한 Connection 객체 생성
클래스 내에서 선언해보기
import java.sql.Connection;
Statement와 ResultSet 활용
DB와의 연결 이후 SQL 쿼리를 실행하기 위해 Statement 객체 사용,
쿼리 결과는 ResultSet으로 저장.
st = cn.createStatement();: 데이터베이스 연결에서 Statement 객체를 생성.
rs = st.executeQuery(sql);: SQL 쿼리를 실행하고 결과를 ResultSet에 저장.
Statement , PreparedStatement , ResultSet 보기
DBConnection 을 이용하기 위한 클래스 만들기 , jar와의 연동
1.메인은 없는 클래스 생성
2. Connection 객체 생성
DB 연결
Connection 객체가 DB 연결및 연결정보를 관리한다.
즉, Connection 객체를 생성해야함
* Connection 생성과정
Class.forName : JDBC 드라이버 로딩
DriverManager Class: getConnection() 메서드로 해당 JDBC 드라이버를 찾아 필요한 기본값으로 컨넥션을 생성해서 제공
String url = "jdbc:mysql://@127.0.0.1:3306/mydb?characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true" ;
DriverManager.getConnection(url, "root", "password") ;//url,user,password
127.0.0.1는 서버 위치 , localhost 라고 입력해도 가능함.
포트번호를 mysql에서 사용한 번호.
mydb :데이터베이스 위치
?~: DB 에 전달하는 파라미터. 자바를 통해 DB에 접근할때 쓰는 옵션들 .
allowPublicKeyRetrieval : 로컬에서 mySQL을 오픈해놓고 쓰는지 아닌지 확인하는 옵션.
3. 커넥션 제공 메서드 만들기
try {
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://@127.0.0.1:3306/mydb?characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true";
Connection cn = DriverManager.getConnection(url, "root", "mysql") ;//url,user,password
System.out.println("JDBC connection 성공");
return cn;
} catch (Exception e) {
System.out.println("JDBC connection Exception "+ e.toString()); // 오류발생
return null;
}
DB 테이블 조회해보자
테이블 전체 조회
static Connection cn = DBConnection.getConection();
static Statement st;
static ResultSet rs;
static String sql;
public static void selectList() {
sql = "select * from student";
try {
st = cn.createStatement();
rs = st.executeQuery(sql);
if(rs.next()) {
do {
System.out.print(rs.getInt(1) + " ");
System.out.print(rs.getString("name") + " ");
// 필요한 모든 열 출력
} while (rs.next());
}
} catch (Exception e) {
System.out.println("selectList Exception " + e.toString());
}
}
파라미터를 통한 데이터 조회
static Connection cn = DBConnection.getConection();
static Statement st;
static ResultSet rs;
static String sql;
public static void joList(int jno) {
sql = "select * from student where jno= " + jno;
try {
st = cn.createStatement();
rs = st.executeQuery(sql);
if(rs.next()) {
do {
System.out.print(rs.getInt(1) + " ");
System.out.print(rs.getString("name") + " ");
} while (rs.next());
} else {
System.out.println("데이터 없음");
}
} catch (Exception e) {
System.out.println("joList Exception " + e.toString());
}
}
jar 파일 연결 확인
//Connection cn = DBConnection.getConection(); // noneStatic으로 메인 메서드에서 인스턴스 생성 없이는 못쓰게 됨
static Connection cn = DBConnection.getConection();
public static void main(String[] args) {
// connection 확인하기
System.out.println("DB연결 확인해보기 : "+cn);
→ jar 파일에 연결해 주지 않았기 때문에 Exception 발생.
프로젝트 위에서 우클릭
세팅 한 후, 확인해보면
Java와 MySQL 연동을 위한 준비 사항 요약
1.JAR 파일 추가: mysql-connector-java JAR 파일을 프로젝트에 추가해야 JDBC 드라이버를 사용할 수 있음.
2.JDBC드라이버 로딩: Class.forName("com.mysql.cj.jdbc.Driver")을 통해 JDBC 드라이버 로드.
3.정상 연결 확인: DB 연결이 정상적으로 이루어졌는지 확인하기 위해 로그 및 예외 처리 구문 포함.
'Developer > JAVA' 카테고리의 다른 글
Java에서의 SQL 데이터 처리: Statement, PreparedStatement ,ResultSet (0) | 2024.10.30 |
---|---|
JAVA , 인터페이스 , 인터페이스와 추상클래스의 차이 (1) | 2024.10.28 |
JAVA , Exception의 직접 처리와 위임 처리 , 사용자 정의 Exception (0) | 2024.09.23 |
Java , 예외 처리 Exception , try-catch (0) | 2024.09.22 |
JAVA , 열거형 클래스 enum ! (1) | 2024.09.21 |