알고보면코딩천재
Java DB 통신 본문
통신을 할 땐 프로토콜이 만들어져있어야 한다.
JDBC라이브러리<- 프로토콜 정의서
프로토콜을 지켜서 통신을 하기 위해 위의 라이브러리가 필요하다.
오라클 받으면 이미 설치되어 있다.
C드라이브


복사

붙여넣기

빌드패스

컴퓨터 이름 or경로가 한글이면 안된다.
실행창에 netplwiz (윈+r)
사용자 이름 변경할 수 있다.
리스너 = 중간에서 다리 역할을 하는 애
리스너가 콜백 호출해주는거 대리인
==
1. 오라클에서 +버튼 누르는 것=>
connection이라는 메서드 하나 만들어준다
package db;
import java.sql.Connection;
import java.sql.DriverManager;
public class DBEx01 {
static void connection() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe",
"SCOTT",
"TIGER"
);
if(conn != null) {
System.out.println("연결성공");
} else {
System.out.println("연결실패");
}
} catch (Exception e) {
}
}
public static void main(String[] args) {
connection();
}
}
연결성공!
conn이라는 객체로 메세지를 전송할 수 있다.
통신은 예외라는 게 있다 수많은 오류 -> 실행시(런타임) 터지기 때문에 미리 잡을 수 없다
!!. try-catch
한줄한줄 실행되다가 오류가 터지면 catch로 자동으로 넘어가게 코드를 짠다.
package db;
import java.sql.Connection;
import java.sql.DriverManager;
public class DBEx01 {
static void connection() {
try {
Class.forName("oracle.jdbc.driver.OracleDrive");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe",
"SCOTT",
"TIGER"
);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
connection();
}
}

crtl+shift+o 자동 import
rs=커서
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class DBEx01 {
static Connection connection() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "SCOTT", "TIGER");
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
try {
// 1.디비연결
Connection conn = connection();
// 2.문장완성
PreparedStatement pstmt = conn.prepareStatement("SELECT empno, ename FROM emp WHERE empno=7369");
// 3.문장정송
ResultSet rs = pstmt.executeQuery();
// 4.커서 한칸 내리기
boolean isTrue = rs.next();
System.out.println(rs.getInt("empno"));
System.out.println(rs.getString("ename"));
System.out.println(isTrue);
} catch (Exception e) {
}
}
}
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class DBEx02 {
static Connection connection() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "SCOTT", "TIGER");
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
try {
// 1.디비연결
Connection conn = connection();
// 2.문장완성
PreparedStatement pstmt = conn.prepareStatement("SELECT empno, ename FROM emp");
// 3.문장정송
ResultSet rs = pstmt.executeQuery();
// 4.커서 false 때까지 내리기
while(rs.next()) {
System.out.println(rs.getInt("empno")+" : "+rs.getString("ename"));
}
} catch (Exception e) {
}
}
}'Java' 카테고리의 다른 글
| UPDATE (0) | 2022.08.16 |
|---|---|
| JavaDB통신 Entity, ArrayList (0) | 2022.08.16 |
| 오라클 다운로드 (0) | 2022.08.08 |
| 제네릭 클래스 (0) | 2022.08.08 |
| 추상클래스와 인터페이스 (0) | 2022.08.05 |
Comments