1. JDBC select
package sec02.exam01_statement;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JDBC_Select {
public static void main(String[] args) {
// TODO Auto-generated method stub
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
// 인터페이스 변수 = null;
// 인터페이스 변수 = (해당 인터페이스의)구현객체;
Connection con = null;
Statement stmt = null;
String sql, name, email, tel;
int no;
ResultSet rs = null;
try {
// 예외발생 가능 코드
// 1. OracleDriver 객체를 생성
Class.forName(driver); // 클래스(OracleDriver) 객체를 생성한다.
// 2. Connection 객체를 생성
con = DriverManager.getConnection(url, "SCOTT", "TIGER");
// 인터페이스 변수 = 구현객체;
// 3. Statement 객체를 생성
stmt = con.createStatement();
// 테이블에 추가할 내용을 콘솔 창에서 사용자의 입력을 받도록 한다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// select문을 작성
sql = "select * from customer";
System.out.print("번호 \t 이름 \t\t 이메일 \t\t 전화번호\n");
// 4. Statement 객체의 executeUpdate() 메소드로 sql문 실행
rs = stmt.executeQuery(sql);
while(rs.next()) {
no = rs.getInt("no");
name = rs.getString("name");
email = rs.getString("email");
tel = rs.getString("tel");
System.out.printf(" %d \t %s \t %s \t %s \n", no, name, email, tel);
}
} catch (Exception e) {
// 예외처리 코드
System.out.println("데이터베이스 연결 실패~");
e.printStackTrace();
} finally {
// 5. db resource(statement 객체, connection 객체)를 메모리에서 제거
try {
if(stmt!=null) {
stmt.close();
}
if(con!=null) {
con.close(); // connection이 종료되면 auto commit 된다.
}
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
}
}
}
- List, Set, Map
- List: 순서(인덱스), 데이터 중복 허용
- Set: 순서 없음, 데이터 중복 허용x
- Map: {Key:value}, key는 중복 허용x, value는 중복 허용
2. Prestatement
2-1. select
package sec02.exam02_prestatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class JDBC_Select {
public static void main(String[] args) {
// TODO Auto-generated method stub
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
// 인터페이스 변수 = null;
// 인터페이스 변수 = (해당 인터페이스의)구현객체;
Connection con = null;
//Statement stmt = null;
PreparedStatement pstmt = null;
String sql, name, email, tel;
int no, cnt = 0;
ResultSet rs = null;
try {
// 예외발생 가능 코드
// 1. OracleDriver 객체를 생성
Class.forName(driver); // 클래스(OracleDriver) 객체를 생성한다.
// 2. Connection 객체를 생성
con = DriverManager.getConnection(url, "SCOTT", "TIGER");
// 인터페이스 변수 = 구현객체;
// 3. Statement 객체를 생성
//stmt = con.createStatement();
sql = "select count(*) from customer";
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next()) {
cnt = rs.getInt(1);
//cnt = rs.getInt("count(*)");
}
System.out.println("총 회원수: "+cnt);
} catch (Exception e) {
// 예외처리 코드
System.out.println("데이터베이스 연결 실패~");
e.printStackTrace();
} finally {
// 5. db resource(statement 객체, connection 객체)를 메모리에서 제거
try {
if(pstmt!=null) {
pstmt.close();
}
if(con!=null) {
con.close(); // connection이 종료되면 auto commit 된다.
}
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
}
}
}
2-2. insert
package sec02.exam02_prestatement;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class JDBC_Insert {
public static void main(String[] args) {
// TODO Auto-generated method stub
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
// 인터페이스 변수 = null;
// 인터페이스 변수 = (해당 인터페이스의)구현객체;
Connection con = null;
//Statement stmt = null;
PreparedStatement pstmt = null;
String sql, name, email, tel;
int no, cnt = 0;
ResultSet rs = null;
try {
// 예외발생 가능 코드
// 1. OracleDriver 객체를 생성
Class.forName(driver); // 클래스(OracleDriver) 객체를 생성한다.
// 2. Connection 객체를 생성
con = DriverManager.getConnection(url, "SCOTT", "TIGER");
// 테이블에 추가할 내용을 콘솔 창에서 사용자의 입력을 받도록 한다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("customer 테이블에 값 입력하기...");
System.out.print("번호 입력: ");
no = Integer.parseInt(br.readLine());
System.out.print("이름 입력: ");
name = br.readLine();
System.out.print("이메일 입력: ");
email = br.readLine();
System.out.print("전화번호 입력: ");
tel = br.readLine();
sql = "insert into customer (no, name, email, tel) values (?, ?, ?, ?)";
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, no);
pstmt.setString(2, name);
pstmt.setString(3, email);
pstmt.setString(4, tel);
int result = pstmt.executeUpdate();
if(result == 1) {
System.out.println("데이터 입력 성공");
} else {
System.out.println("데이터 입력 실패");
}
} catch (Exception e) {
// 예외처리 코드
System.out.println("데이터베이스 연결 실패~");
e.printStackTrace();
} finally {
// 5. db resource(statement 객체, connection 객체)를 메모리에서 제거
try {
if(pstmt!=null) {
pstmt.close();
}
if(con!=null) {
con.close(); // connection이 종료되면 auto commit 된다.
}
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
}
}
}
sql문 | |
statement | // insert문을 작성 sql = "insert into customer(no, name, email, tel) values"; sql += "("+no+ ", '"+name+"', '"+email+"', '"+tel +"')"; // 4. Statement 객체의 executeUpdate() 메소드로 sql문 실행 int res = stmt.executeUpdate(sql); if (res==1) { System.out.println("Data insert success!"); } else { System.out.println("Data insert failed!"); } |
prestatement | sql = "insert into customer (no, name, email, tel) values (?, ?, ?, ?)"; pstmt = con.prepareStatement(sql); pstmt.setInt(1, no); pstmt.setString(2, name); pstmt.setString(3, email); pstmt.setString(4, tel); int result = pstmt.executeUpdate(); if(result == 1) { System.out.println("데이터 입력 성공"); } else { System.out.println("데이터 입력 실패"); } |
2-3. update
package sec02.exam02_prestatement;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class JDBC_Update {
public static void main(String[] args) {
// TODO Auto-generated method stub
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
// 인터페이스 변수 = null;
// 인터페이스 변수 = (해당 인터페이스의)구현객체;
Connection con = null;
//Statement stmt = null;
PreparedStatement pstmt = null;
String sql, name, email, tel;
int no, cnt = 0;
ResultSet rs = null;
try {
// 예외발생 가능 코드
// 1. OracleDriver 객체를 생성
Class.forName(driver); // 클래스(OracleDriver) 객체를 생성한다.
// 2. Connection 객체를 생성
con = DriverManager.getConnection(url, "SCOTT", "TIGER");
// 테이블에 추가할 내용을 콘솔 창에서 사용자의 입력을 받도록 한다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("customer 테이블에 값 수정하기...");
System.out.print("번호 입력: ");
no = Integer.parseInt(br.readLine());
System.out.print("이름 입력: ");
name = br.readLine();
System.out.print("이메일 입력: ");
email = br.readLine();
System.out.print("전화번호 입력: ");
tel = br.readLine();
sql = "update customer set name=?, email=?, tel=? where no=?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2, email);
pstmt.setString(3, tel);
pstmt.setInt(4, no);
int result = pstmt.executeUpdate();
if(result == 1) {
System.out.println("데이터 입력 성공");
} else {
System.out.println("데이터 입력 실패");
}
} catch (Exception e) {
// 예외처리 코드
System.out.println("데이터베이스 연결 실패~");
e.printStackTrace();
} finally {
// 5. db resource(statement 객체, connection 객체)를 메모리에서 제거
try {
if(pstmt!=null) {
pstmt.close();
}
if(con!=null) {
con.close(); // connection이 종료되면 auto commit 된다.
}
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
}
}
}
2-4. delete
package sec02.exam02_prestatement;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class JDBC_Delete {
public static void main(String[] args) {
// TODO Auto-generated method stub
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
// 인터페이스 변수 = null;
// 인터페이스 변수 = (해당 인터페이스의)구현객체;
Connection con = null;
//Statement stmt = null;
PreparedStatement pstmt = null;
String sql, name, email, tel;
int no, cnt = 0;
ResultSet rs = null;
try {
// 예외발생 가능 코드
// 1. OracleDriver 객체를 생성
Class.forName(driver); // 클래스(OracleDriver) 객체를 생성한다.
// 2. Connection 객체를 생성
con = DriverManager.getConnection(url, "SCOTT", "TIGER");
// 테이블에 추가할 내용을 콘솔 창에서 사용자의 입력을 받도록 한다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("customer 테이블에 값 수정하기...");
System.out.print("번호 입력: ");
no = Integer.parseInt(br.readLine());
sql = "delete from customer where no=?";
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, no);
int result = pstmt.executeUpdate();
if(result == 1) {
System.out.println("데이터 삭제 성공");
} else {
System.out.println("데이터 삭제 실패");
}
} catch (Exception e) {
// 예외처리 코드
System.out.println("데이터베이스 연결 실패~");
e.printStackTrace();
} finally {
// 5. db resource(statement 객체, connection 객체)를 메모리에서 제거
try {
if(pstmt!=null) {
pstmt.close();
}
if(con!=null) {
con.close(); // connection이 종료되면 auto commit 된다.
}
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
}
}
}
'~2023.02 > DB(SQL)' 카테고리의 다른 글
서브 쿼리란? (SELECT절 서브 쿼리, FROM절 서브 쿼리, WHERE절 서브 쿼리) (0) | 2022.10.08 |
---|---|
JDBC_01 (0) | 2022.04.28 |
패키지 (0) | 2022.04.15 |
커서와 트리거 (0) | 2022.04.14 |
저장 프로시저와 저장 함수 (0) | 2022.04.14 |