JDBC(Java Database Connectivity)
자바에서 DB 소프트웨어와 연결하여 프로그램을 개발하기 위해 사용하는 API
자바 어플리케이션 <--------> JDBC API <--------> JDBC Driver <--------> MySQL
JDBC Driver 다운로드
- http://dev.mysql.com/downloads/connector/j/
- platform Independent 선택
- zip 파일 다운로드
- 압축을 풀고 mysql-connector-j-8.0.31.jar 파일을 원하는 디렉토리에 저장
라이브러리: 도구(툴)
프레임워크: 툴(비워져 있는 건축물)
인텔리제이 JDBC 드라이버 추가
file -> Project Structure -> Libraries -> +버튼 -> Java -> 드라이버 jar파일 선택 -> OK
JDBC API를 통해 DBMS와 연결
1. JDBC Driver를 로딩
Class.forName("JDBC 드라이버 패키지명");
Class.forName("com.mysql.cj.jdbc.Driver");
2. JDBC API와 DBMS 연결
DriverManager.getConnection(주소, 아이디, 비밀번호); // 연결을 성공하면 Connection 객체가 생성
주소: jdbc:mysql://ip주소/db명?useSSL=true
Statement 인터페이스
- Connection 클래스의 createStatement() 메소드를 호출시 statement 객체가 생성
- Statemnet 객체는 Statement 인터페이스를 구현한 객체
- executeUpdate() 메소드를 통해 insert, update, delete 구문을 실행할 수 있음 //반영해라~
- executeQuery() 메소드를 통해 select 구문을 실행할 수 있음 //결과값이 넘어와~~ 뭔갈 받아서 처리 그래서 메소드가 분리되어있는것임
과제.
aidev 데이터베이스를 다룰수있는 계정 생성(자신이 원하는 걸로) 접속하여 tb_member에 사용자를 인서트하는 프로그램을 만들어보자
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Jdbc1 {
public static void main(String[] args) {
String url = "jdbc:mysql://127.0.0.1/test?useSSL=false";
String uid = "orange";
String upw = "3333";
try {
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("드라이버가 로드외었습니다!");
Connection conn = DriverManager.getConnection(url,uid,upw);
System.out.println("MySQL 서버에 정상적으로 연결되었습니다");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch(SQLException e){
e.printStackTrace();
}
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Jdbc2 {
public static void main(String[] args) {
String url = "jdbc:mysql://127.0.0.1/test?useSSL=false";
String uid = "orange";
String upw = "3333";
String sql = "insert into product values('0000000009','인텔리제이','편해요',160000, now())";
try {
Class.forName("com.mysql.cj.jdbc.Driver"); //드라이버 로딩
Connection conn = DriverManager.getConnection(url,uid,upw); //API <-> DBMS 1
Statement stmt = conn.createStatement(); //sql을 다룰수있게해주는 클래스를 만들어줌 -> 총(stmt)만들기
int cnt = stmt.executeUpdate(sql); //총(stmt) 총알(sql)을 날려주기
if(cnt >=1) System.out.println(cnt + "개의 레코드가 삽입되었습니다!");
else System.out.println("삽입실패");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch(SQLException e){
e.printStackTrace();
}
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
//tb_member에 사용자를 인서트
public class assignment {
public static void main(String[] args) {
String url = "jdbc:mysql://127.0.0.1/aidev?useSSL=false";
String uid = "jaewon";
String upw = "1111";
String sql = "insert into tb_member values('jaewon','1111','이재원','010-6328-9574','wodnjs1534@naver.com','코딩','001100','4065818','12345','seoul','seoungbukgu','donamdong',now(),500,'남자',8)";
try {
Class.forName("com.mysql.cj.jdbc.Driver"); //JDBC 드라이버를 로딩
Connection conn = DriverManager.getConnection(url,uid,upw);
Statement stmt = conn.createStatement(); //sql구문을 실행할수있는 눈뭉치 만드는 역할
int cnt = stmt.executeUpdate(sql); //눈문치 던져!! 반영!!!
if(cnt >=1) System.out.println(cnt + "개의 레코드가 삽입되었습니다!");
else System.out.println("삽입실패");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch(SQLException e){
e.printStackTrace();
}
}
}
반응형
'서버&백엔드 > 🔥 JAVA' 카테고리의 다른 글
Java,MySQL | 싱글톤패턴, PreparedStatement, ResultSet, DAO (0) | 2022.10.19 |
---|---|
Java,MySQL | JDBC,JDBC Driver,DBMS,Statement (0) | 2022.10.19 |
학원1개월차 시험 (0) | 2022.10.17 |
Java | Thread,동기화,join,wait,notify,notifyall (0) | 2022.10.07 |
Java | 중첩클래스,예외처리,파일처리 (0) | 2022.10.06 |