ojdbc6.jar 파일 lib폴더에 적재

1. DriverManager : 드라이버를 Java에 로딩

Class.forName("드라이버");

 

2. Connection : Java와 DB를 연결 하기위한 객체

Connection con = Drivermanager.getConnection(dburl, id, pwd);

 

3. Statement : 쿼리 전송 객체 (명령 : SQL사용)

Statement stmt = con.createStatement();

stmt.execute(“query”);         //any SQL
stmt.executeQuery(“query”);    //SELECT	[return : select문 수행 결과(resultSet)]
stmt.executeUpdate(“query”);   //INSERT, UPDATE, DELETE [return : 적용된 행갯수(int)]

 

4. ResultSet : 결과를 담을 객체 (Select문 일때만 사용)

ResultSet rs = stmt.executeQuery("SQL Select문")

 

- Select문

Class.forName("oracle.jdbc.driver.OracleDriver");	// 오라클 드라이버
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;

try {  
    String url = "jdbc:oracle:thin:@localhost:1521:xe";	// 오라클xe
    String user = "scott";
    String password = "1111";
    
    conn = DriverManager.getConnection(url, user, password);
    stmt = conn.createStatement();
    String sql = "SELECT * FROM student"	// studno, name, sex, birthday, tel
    rs = stmt.executeQuery(sql);
    
    if (rs != null) {
	    while (rs.next()) {
       		 out.print(rs.getInt(1));		// rs.getInt("studno")
           	 out.print(rs.getString(2));		// rs.getString("name")
           	 out.print(rs.getString(3));		// rs.getString("sex")
           	 out.print(rs.getString(4));		// rs.getString("birthday")
           	 out.print(rs.getString(5));		// rs.getString("tel")
        }
    }

} catch (Exception e) {
    e.printStackTrace();
} finally {
    try {
         if (rs != null) rs.close();
         if (stmt != null) stmt.close();
         if (conn != null) conn.close();
    } catch (Exception e2) {
        e2.printStackTrace();
    }
}

- UPDATE문

Class.forName("oracle.jdbc.driver.OracleDriver");	// 오라클 드라이버
Connection conn = null;
Statement stmt = null;

try {  
    String url = "jdbc:oracle:thin:@localhost:1521:xe";	// 오라클xe
    String user = "scott";
    String password = "1111";
    
    conn = DriverManager.getConnection(url, user, password);
    stmt = conn.createStatement();
    String sql = "UPDATE book SET book_loc ...."
    stmt.executeUpdate(sql);

} catch (Exception e) {
    e.printStackTrace();
} finally {
    try {
         if (rs != null) rs.close();
         if (stmt != null) stmt.close();
         if (conn != null) conn.close();
    } catch (Exception e2) {
        e2.printStackTrace();
    }
}

→ 열은 순서의 반대로 닫아줘야함

 

★ 보안상의 문제로 Statement 보단 PreparedStatement를 사용함

 

PreparedStatement : 쿼리문을 먼저 준비 한 다음에 객체에 넣을 수 있도록 해줌, ?를 사용하여 자리를 배치함

 PreparedStatement pstmt = conn.prepareStatement("sql문");

 ResultSet rs = stmt.executeQuery();

Class.forName("oracle.jdbc.driver.OracleDriver");	// 오라클 드라이버
Connection conn = null;
Statement stmt = null;

try {
    String url = "jdbc:oracle:thin:@localhost:1521:xe";	// 오라클xe
    String user = "scott";
    String password = "1111";
    
    conn = DriverManager.getConnection(url, user, password);
    String sql = "UPDATE book SET book_loc = ? WHERE book_name = ?"
    pstmt = conn.prepareStatement(sql);
    pstmt.setString(1, "01-000-123");	// 첫번째 ?
    pstmt.setString(2, "roma");	// 두번째 ?
    pstmt.executeUpdate();

} catch (Exception e) {
    e.printStackTrace();
} finally {
    try {
         if (rs != null) rs.close();
         if (stmt != null) stmt.close();
         if (conn != null) conn.close();
    } catch (Exception e2) {
        e2.printStackTrace();
    }
}

 

'Web > JSP&Servlet' 카테고리의 다른 글

HTML form태그  (0) 2020.07.27
[JSP] 내장 객체  (0) 2020.07.26
Scope  (0) 2020.04.23
JSTL(JSP Standard Tag Library)  (0) 2020.04.23
EL(Expression Language)  (0) 2020.04.23

+ Recent posts