0905 - JDBC

yookyungmin·2022년 9월 5일
0

JDBC

  • JAVA DataBase Connectivity
  • 자바 프로그램을 통해서 DBMS를 사용하는 문법
    C:\DevTools\oracle\app\oracle\product\11.2.0\server\jdbc\lib
    의 OJDBC6.JAR 사용

    External 라이브러리 추가

sqlDeveloper 에서 접속시 localhost = IP주소, 포트 = 포트번호 1521, sid = xe

statement 해킹에 취약점이 있다

	// new를 사용하지 않고 인스턴스를 만들어서 사용하는 하나의 방법
	//Step1. DBMS 라이브러리 등록하기
	
    Class.forName("oracle.jdbc.driver.OracleDriver"); 

	//Step 2. DBMS 에 접속하기
	//DriverManager = 클래스 getConnection = 스태틱 메서드 , 객체생성없이 메서드 사용
	//DriverManager = 클래스 getConnection = 스태틱 메서드
	//localhost = IP주소, 포트 = 포트번호 1521, sid = xe
	String dbURL = "jdbc:oracle:thin:@localhost:1521:xe";
	String dbID = "kh";
	String dbPW = "kh";
	Connection con = DriverManager.getConnection(dbURL,dbID, dbPW); 
	
	//Step3 Query 전달 인스턴스 생성 및 실행
	Statement stat = con.createStatement();
	String sql = "insert into cafe_menu values(cafe_menu_seq.nextval, 'Cafe Mocha', 4000, 'Y')";
	//select executeQuery
	//insert update delete executeUpdate
	int result = stat.executeUpdate(sql);

preparedstatement 으로 보안성 보완

String url = "jdbc:oracle:thin:@localhost:1521:xe";
      String id = "kh";
      String pw = "kh";
      
	Connection con = DriverManager.getConnection(url,id,pw);
    String sql = 
          "insert into cafe_menu values(cafe_menu_seq.nextval,?,?,?)";            
    
    PreparedStatement pstat = con.prepareStatement(sql);
    pstat.setString(1, pname);
    pstat.setInt(2, pprice);
    pstat.setString(3, iced);
    int result = pstat.executeUpdate();
   
    con.commit();
    con.close();
    return result; 
    

ExecuteQuery

  1. 수행결과로 ResultSet 객체의 값을 반환합니다.

  2. SELECT 구문을 수행할 때 사용되는 함수입니다.

ExecuteUpdate

  1. 수행결과로 Int 타입의 값을 반환합니다.

  2. SELECT 구문을 제외한 다른 구문을 수행할 때 사용되는 함수입니다.
    성공시 1

0개의 댓글