Frog is cry
Leture11_PreparedStatement 본문
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