(패키지 만들어서)InsertTest 클래스를 한 개 만든다.
다음의 클래스 또는 인터페이스는 Java SE20 문서에서 이해하기 🚀Java API 문서 바로가기
🔹import java.sql.Connection;
🔹import java.sql.DriverManager;
🔹import java.sql.PreparedStatement;
검색 예)java.sql.PreparedStatement.setInt
package jdbcMaster;
import java.util.Scanner;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
class InsertTest {
Scanner scan = new Scanner(System.in);
public InsertTest() {
}
public void empStart() {
/*JVM 이 oracleDriver이 실행하도록 만들어줘야 한다.
1. DB 로딩
Class: '문자열'로 입력하면-> '객체'로 만들어 주는 클래스
- java SE 20 - java.lang.Class
- API문서 참조: Class.forName("oracle.jdbc.driver.OracleDriver");
*/
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
/*2.DB연결: Class DriverManager
메서드 getConnection(String url, String user, String password)
- url: 오라클 서버
- user: 계정을 뜻함 예)scott
String url = "localhost:1521:xe"
사용: DriverManager.getConnection(url,"scott", "tiger")
*module-info 파일 삭제
*/
String url = "jdbc:oracle:thin:@localhost:1521:xe";
// Connection conn이 'PreparedStatement 메서드'를 만드는 것을 가지고 있다.
Connection conn = DriverManager.getConnection(url,"scott", "tiger");
System.out.print("사원번호:");
int empno = Integer.parseInt(scan.nextLine());
System.out.println("사원명:");
String ename = scan.nextLine();
System.out.println("입사일(예:20231012):");
String hiredate= scan.nextLine();
System.out.println("급여:");
int sal = Integer.parseInt(scan.nextLine());
//3. 쿼리문 만들기
String sql = "insert into emp(empno, ename, hiredate,sal)"
+ "values(?,?,to_date(?,'YYYYMMDD'), ?)";
//4. 쿼리문을 이용하여 PreparedStatement 객체를 생성한다.
PreparedStatement pstmt = conn.prepareStatement(sql);
// ?에 값셋팅: sql의 첫번째 물음표 1번
//pstmt.setString(sal, sql)T
pstmt.setInt(1, empno);
pstmt.setString(2, ename);
pstmt.setString(3, hiredate);
pstmt.setInt(4, sal);
/* 5. 실행 -- DB에 레코드 추가되는 시점
*insert, update, delete는 ResultSet - executeUpdate();
- int(없뎃 숫자를 보고 확인!)executeUpdate();
*select -> executeQuery();
*/
int result = pstmt.executeUpdate();
if(result>0){
System.out.println("사원이 등록되었습니다.");
} else {
System.out.println("사원등록이 실패하였습니다.");
}
// 클로징
pstmt.close();
conn.close();
} catch(Exception e) {
e.printStackTrace();
//System.out.println("드라이브 로딩 예외발생..");
}
//사원등록-> 사원번호, 사원명, 입사일 급여
}
public static void main(String[] args) {
new InsertTest().empStart();
}
}