STATEMENT
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
public class JDBCOracleStatementTest {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
Connection conn = null;
try {
// 1. 드라이버 로드
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("Oracle Driver Load !!!");
// 2. DB 연결 localhost == 127.0.0.1
String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String password = "tiger";
conn = DriverManager.getConnection(jdbcUrl, user, password);
System.out.println("데이터베이스에 접속했습니다.");
// 3. statement 인스턴스생성
Statement stmt = conn.createStatement();
System.out.println("부서 이름을 입력해주세요.");
String userDname= sc.nextLine();
System.out.println("부서의 위치를 입력해주세요.");
String userLoc = sc.nextLine();
// 입력 : insert
String sqlInsert = "insert into dept values (SEQ_DEPT_DEPTNO.NEXTVAL,'"+userDname+"','"+userLoc+"')";
int resultCnt = stmt.executeUpdate(sqlInsert); // sql문을 실행하고 횟수반환
if(resultCnt>0) {
System.out.println("정상적인 입력");
}
// 4. sql 실행 : 부서리스트 출력
String sql="select * from dept order by deptno";
ResultSet rs = stmt.executeQuery(sql);
// 5. ResultSet을 이용해서 결과 출력
while(rs.next()) { // rs.next(); // boolean Type
int deptno = rs.getInt("deptno");
String dname = rs.getString("dname");
String loc = rs.getString(3);
System.out.println(deptno+", "+ dname+ ", "+loc);
}
rs.close();
stmt.close();
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver 로드 실패");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
PREPAREDSTATEMENT
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class JDBCOraclePreparedTest {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
Connection conn = null;
try {
// 1. 드라이버 로드
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("Oracle Driver Load !!!");
// 2. DB 연결 localhost == 127.0.0.1
String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String password = "tiger";
conn = DriverManager.getConnection(jdbcUrl, user, password);
System.out.println("데이터베이스에 접속했습니다.");
//Statement stmt = conn.createStatement();
System.out.println("부서 이름을 입력해주세요.");
String userDname= sc.nextLine();
System.out.println("부서의 위치를 입력해주세요.");
String userLoc = sc.nextLine();
// PreparedStatement 인스턴스 생성
String sqlInsert = "insert into dept values (Seq_dept_deptno.nextval, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sqlInsert);
pstmt.setString(1, userDname);
pstmt.setString(2, userLoc);
int resultCnt = pstmt.executeUpdate();
if(resultCnt>0) {
System.out.println("정상적으로 입력되었음.");
}else {
System.out.println("데이터 입력이 되지 않았음.");
}
// 부서 리스트 출력
String sqlList ="select * from dept order by loc";
pstmt = conn.prepareStatement(sqlList);
ResultSet rs = pstmt.executeQuery();
while(rs.next()) {
System.out.print(rs.getInt(1)+", ");
System.out.print(rs.getString(2)+", ");
System.out.print(rs.getString(3)+"\n");
}
rs.close();
pstmt.close();
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver 로드 실패");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
PREPAREDSTATEMENT 2) 검색
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
public class JDBCOraclePreparedTest2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Connection conn = null;
try {
// 1. 드라이버 로드
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("Oracle Driver Load!");
// 2. DB 연결 localhost == 127.0.0.1
String jdbcUrl ="jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String password = "tiger";
conn = DriverManager.getConnection(jdbcUrl, user, password);
System.out.println("데이터베이스에 접속했습니다.");
// 3. statement 인스턴스생성
PreparedStatement pstmt = null;
System.out.println("검색하고 싶은 부서 이름을 입력하세요.");
String searchDname = sc.nextLine();
// 부서 정보 리스트
String sqlSelect = "select * from dept where dname=? order by loc";
pstmt = conn.prepareStatement(sqlSelect);
pstmt.setString(1, searchDname);
ResultSet rs = pstmt.executeQuery();
if(!rs.next()) {
System.out.println("검색 결과 X");
} else {
do {
System.out.print(rs.getInt(1)+"\t");
System.out.print(rs.getNString(2)+"\t");
System.out.print(rs.getNString(3)+"\n");
} while(rs.next());
}
rs.close();
pstmt.close();
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver 로드 실패");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
'JAVA > basic' 카테고리의 다른 글
[JAVA] DAO / DTO / VO : Mysql을 이용하여 자바에서 입력받기 (0) | 2020.11.19 |
---|---|
[JDBC] 자바와 데이터 베이스(MYSQL) 연결하기 (0) | 2020.11.19 |
[JAVA] JDBC 라이브러리 가져오기 - 커넥트 (0) | 2020.11.19 |
[ 네트워크 ] 소켓 / Socket 클래스 (0) | 2020.10.28 |
[ 네트워크 ] URL (0) | 2020.10.28 |
스레드 / 쓰레드 / thread (0) | 2020.10.27 |
[ 입출력 ] 버퍼 스트림 (0) | 2020.10.26 |