PreparedStatement ์™€ Statement

Bloooooooooooooog..ยท2023๋…„ 2์›” 1์ผ
0

Statement

๐ŸšŒ

JDBC์—์„œ ์ผ์ข…์˜ ๋ฒ„์Šค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์ด์ „์— ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ๋นŒ์—ฌ์™€๋ณด์ž

	conn = DriverManager.getConnection(type + ip + port + sid, user, pw);
    // conn์— ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ๋‹ด์•„์ฃผ์—ˆ๋‹ค.
    // type + ip + port + sid ๋Š” url์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    
    String sql = "SELECT EMP_ID, EMP_NAME, SALARY, HIRE_DATE FROM EMPLOYEE";
    
    // DB์—์„œ ์กฐํšŒํ•  SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ค€๋‹ค.
			
	stmt = conn.createStatement();
    // Statement๋Š” ์ผ์ข…์˜ ๋ฒ„์Šค, SQL๋ฌธ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ „๋‹ฌํ•˜๊ณ  ResultSet์„ ๋‹ด์•„์ค€๋‹ค.	
		
	rs = stmt.executeQuery(sql);
    // ๋‚˜์˜จ ๊ฒฐ๊ณผ(ResultSet)์„ rs๊ฐ์ฒด์— ๋‹ด์•„์ค€๋‹ค.

๋งŒ์•ฝ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์„ ์ด์šฉํ•œ SQL๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

	System.out.print("๊ฒ€์ƒ‰ํ•  ์‚ฌ์›๋ช…์„ ์ž…๋ ฅํ•˜์„ธ์š”");
	String name = sc.next();
    
	conn = DriverManager.getConnection(url, user, pw);
    
    String sql = "SELECT EMP_ID, EMP_NAME, SALARY, HIRE_DATE FROM EMPLOYEE WHERE EMP_NAME = '" + name + "'";
    
	stmt = conn.createStatement();
	rs = stmt.executeQuery(sql);
  

์ด์ฒ˜๋Ÿผ SQL์˜ WHERE ์ดํ›„๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ์ง€๊ธˆ์˜ ๊ฒฝ์šฐ๋Š” ๊ฐ„๋‹จํ•œ SQL๋ฌธ์ด์ง€๋งŒ SQL๋ฌธ์ด ๋ณต์žกํ•ด์ ธ์„œ (๊ฐ€๋ น ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์“ด๋‹ค๊ฑฐ๋‚˜) ํ•˜๋ฉด ์ผ์ผ์ด ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ํž˜๋“ค์–ด์ง„๋‹ค.

PreparedStatement

PreparedStatement๋Š” Statement์˜ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฒ„์ ผ์ด๋ผ๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์ƒ๊ฐํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๐Ÿ†™ ๋ฌผ๋ก  ์‹ค์ œ๋กœ๋Š” ์กฐ๊ธˆ ๋” ๋ณต์žกํ•œ ๊ฐœ๋…์ด๊ฒ ์ง€๋งŒ..

PreparedStatement์—๋Š” ?(PlaceHolder)๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ’์„ ๋Œ€์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.


	PreparedStatement pstmt = null;
    
   
   ..... ์ƒ๋žต ......
   
	Class.forName(driver);
	conn=DriverManager.getConnection(url, user, pw); 
	String sql = "INSERT INTO EMPLOYEE VALUES(?, ?, ?, ?)";
	
    // ์ด์™€ ๊ฐ™์ด ๋งŽ์€ ์–‘์„ ๋Œ€์ž…ํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž
    
    ....๋ณ€์ˆ˜ ์ž…๋ ฅ์€ ์ƒ๋žต......
    
 
	pstmt = conn.prepareStatement(sql);
    
    pstmt.set์ž๋ฃŒํ˜•(1, ๋‹ด์„๊ฐ’);
    pstmt.set์ž๋ฃŒํ˜•(2, ๋‹ด์„๊ฐ’);
    pstmt.set์ž๋ฃŒํ˜•(3, ๋‹ด์„๊ฐ’);
    pstmt.set์ž๋ฃŒํ˜•(4, ๋‹ด์„๊ฐ’);
    
    // ์ด์ฒ˜๋Ÿผ ?์˜ ์ˆœ์„œ์™€ ๋‹ด์„ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•ด์„œ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค
    

JDBC์˜ ์ดˆ๋ฐ˜ Connection, Statement, ResultSet์„ ์ดํ•ดํ–ˆ๋‹ค๋ฉด PreparedStatement ์—ญ์‹œ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

profile
๊ณต๋ถ€์™€ ์ผ์ƒ

0๊ฐœ์˜ ๋Œ“๊ธ€