jdbc를 이용한 DML
select
package ex00.jdbcp.stmt;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//1) Oracle Server에 연결
//2) emp 테이블의 데이터를 읽어오자
public class JdbcSelect {
// 1. oracle에 접속하기 위한 클래스를 메모리에 로딩하는 작업
//(초기화작업 : 가장 먼저 실행되어 이 클래스를 메모리에 올린다.)
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// 2. 오라클 서버 접속 주소, 계정
String url = "jdbc:oracle:thin:@localhost:1521:xe"; //docker쓰면 sql developer에서 사용했던 포트를 써야 함
String id = "bitTest";
String pass = "bitTest";
try {
// 3. 오라클 서버에 접속하기 위한 객체 생성
Connection con = DriverManager.getConnection(url, id, pass);
// 4. sql문을 실행하기 위한 객체 생성
// sql 쿼리문을 데이터베이스로 전송해주기위한 객체를 생성하는 메소드이다.
Statement statemt = con.createStatement();
// 5. sql문
String strSelect = "SELECT * FROM emp";
// 6. sql문 서버로 전송 후 결과 받아오기
ResultSet rs = statemt.executeQuery(strSelect);
// 7. 결과 출력
int cnt=0;
// rs는 내부에 커서가 있어서 1번째 행 이전을 가리키다가
// rs.next()를 호출할 때마다 다음행으로 커서를 옮긴다.
// 더이상 읽을 행이 없으면 false를 반환하므로 while문이 빠져나간다.
while(rs.next()) {
// rs.getString("eno") 이렇게 해도 된다.
System.out.println("--------[ " + cnt + " ]---------");
System.out.println("eno : " + rs.getString(1));
System.out.println("ename : " + rs.getString(2));
System.out.println("job : " + rs.getString(3));
System.out.println("mgr : " + rs.getString(4));
System.out.println("hdate : " + rs.getString(5));
System.out.println("sal : " + rs.getString(6));
System.out.println("comm : " + rs.getString(7));
System.out.println("dno : " + rs.getString(8));
cnt++;
}
rs.close();
statemt.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
insert
package ex00.jdbcp.stmt;
import java.sql.*;
public class JdbcInsert {
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id = "bitTest";
String pass = "bitTest";
//3. 오라클 서버 접속 객체 계정
try {
Connection con = DriverManager.getConnection(url, id, pass);
//4. sql 쿼리문을 실행하기 위한 객체를 생성
Statement statemt = con.createStatement();
//5. sql문 작성
String strInsert = "INSERT INTO emp (eno, ename) " + "\r\n" + //개행문자
"VALUES ('9000', '홍길동')";
//6. 실행
//cnt는 몇개 행에 적용되었느냐?
int cnt = statemt.executeUpdate(strInsert);
System.out.println(cnt + "행에 적용됨");
//7. 종료
statemt.close();
con.close();
} catch(SQLException e){
e.printStackTrace();
}
}
}
update
package ex00.jdbcp.stmt;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcUpdate {
// 1. oracle에 접속하기 위한 클래스를 메모리에 로딩하는 작업
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// 2. 오라클 서버 접속 주소, 계정
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id = "bitTest";
String pass = "bitTest";
// 3. 오라클 서버 접속 객체 계정
try {
Connection con = DriverManager.getConnection(url, id, pass);
// 4. sql 쿼리문을 실행하기 위한 객체를 생성
Statement statemt = con.createStatement();
// 5. sql문 작성
String strUpdate = "UPDATE emp SET ename='장길산', job = '활빈'" + "\r\n"
+ "WHERE ename='임꺽정'";
// 6. 실행
// cnt는 몇개 행에 적용되었느냐?
int cnt = statemt.executeUpdate(strUpdate);
System.out.println(cnt + "행에 적용됨");
// 7. 종료
statemt.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Delete
package ex00.jdbcp.stmt;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcDelete {
// 1. oracle에 접속하기 위한 클래스를 메모리에 로딩하는 작업
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// 2. 오라클 서버 접속 주소, 계정
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id = "bitTest";
String pass = "bitTest";
// 3. 오라클 서버 접속 객체 계정
try {
Connection con = DriverManager.getConnection(url, id, pass);
// 4. sql 쿼리문을 실행하기 위한 객체를 생성
Statement statemt = con.createStatement();
// 5. sql문 작성
String strDelete = "DELETE FROM emp WHERE dno='01'";
// 6. 실행
// cnt는 몇개 행에 적용되었느냐?
int cnt = statemt.executeUpdate(strDelete);
System.out.println(cnt + "행에 적용됨");
// 7. 종료
statemt.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Author And Source
이 문제에 관하여(jdbc를 이용한 DML), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jinkyung/jdbc를-이용한-DML저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)