관리 메뉴

Frog is cry

Leture11_PreparedStatement 본문

JSP/실습

Leture11_PreparedStatement

Frog is cry 2020. 8. 5. 18:40
java.sq.PreparedStatement
> 자바에서 SQL쿼리를 실행할때 사용하는 클래스

PreparedStatement의 setString(), setInt(), setDouble()
> 쿼리문이 유동적인 경우 '?'로 대체할 수 있음
> '?'에 대체할 데이터가 문자열이라면 setString()을, 정수라면 setInt, 실수는 setDouble등을 사용
Ex
> ps = con.prepaateStatement("SELECT*FROM student WHERE st_name = ? AND st_NO =?")
> ps.setString(1, "홍길동");	// 1번 물음표 자리에 "홍길동"을 String 형태로 삽입하라 (외따옴표 추가됨)
> ps.setInt(2,3)		// 2번 물음표 자리에 3을 int형태로 삽입해라.

PreparedStatement의 execut(), executeUpdate(), executeQuery()
boolean execute()
> 쿼리를 실행한 뒤, 리턴되는 결과가 ResultSet 객체면 true, int형 정수거나 결과값이 없으면 false
int executeUpdate()
> 쿼리를 실행한 뒤, 적용된 행의 개수를 return
ResultSet executeQuery()
> 쿼리를 실행한 뒤, 조회된 결과를 ResultSet에 담아 테이블 형태로 return

package jdk.pratice.basic;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class Test05 {
	public static void main(String[] args) {
		String user = "myJsp";
		String password = "jsppassword";
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
				
		Connection con = null;
		PreparedStatement ps = null;
			
		try {
			// 커넥션 준비
			Class.forName("oracle.jdbc.driver.OracleDriver");
			con = DriverManager.getConnection(url, user, password);
			
			// Student 테이블에, 입력받은 학생 이름, 연락처를 레코드로 추가해보자
			Scanner sc = new Scanner(System.in);
			String name;
			String tel;
			System.out.println("학생 이름 : ");
			name = sc.next();
			System.out.println("학생 연락처 : ");
			tel = sc.next();
			
			int kr, en, ma;
			double avg;
			
			System.out.println("국 : ");
			kr = sc.nextInt();
			System.out.println("영 : ");
			en = sc.nextInt();
			System.out.println("수: ");
			ma = sc.nextInt();
			
			avg = (kr+en+ma) / 3.0;
			
			
			String sql = "INSERT INTO student VALUES(st_seq.NEXTVAL, ?, ?, ?, ?, ?, ?,SYSDATE)";
			ps = con.prepareStatement(sql);
			ps.setString(1, name);
			ps.setString(2, tel);
			ps.setInt(3, kr);
			ps.setInt(4, en);
			ps.setInt(5, ma);
			ps.setDouble(6, avg);
			ps.execute();
			System.out.println("학생 추가 완료!");
			
			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if(ps != null) {ps.close();}
				if(con != null) {con.close();}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
	}
}
package jdk.pratice.basic;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Test06 {
	public static void main(String[] args) {
		
	String user = "myJsp";
	String password = "jsppassword";
	String url = "jdbc:oracle:thin:@localhost:1521:xe";
			
	Connection con = null;
	PreparedStatement ps = null;
		
	try {
		// 커넥션 준비
		Class.forName("oracle.jdbc.driver.OracleDriver");
		con = DriverManager.getConnection(url, user, password);

		String sql = "UPDATE student SET st_kr = '80'";
		ps = con.prepareStatement(sql);
		int result = ps.executeUpdate();	// 몇 행이 적용(수정, 삭제, 추가)됐는지 궁금할때 사용함
		System.out.println(result + "행에 적용되었습니다.");
		
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		try {
			if(ps != null) {ps.close();}
			if(con != null) {con.close();}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}


}

'JSP > 실습' 카테고리의 다른 글

Leture13_Practice  (0) 2020.08.05
Leture12_ResultSet  (0) 2020.08.05
Lecture10_Practice  (0) 2020.08.04
Lecture09_Connection 연동  (0) 2020.08.04
Lecure08_학생 테이블 생성  (0) 2020.08.03
Comments