엄지월드

PreparedStatement를 이용한 튜플 삽입 본문

java/Spring

PreparedStatement를 이용한 튜플 삽입

킨글 2017. 4. 26. 14:28
import java.sql.*;



public class PreparedStatementTest

{

 public static void main( String args[] )

 {       // 드라이버 로딩

 try {Class.forName("org.gjt.mm.mysql.Driver");

 }catch ( java.lang.ClassNotFoundException e ) { 

System.err.println("Driver load 에러: " + e.getMessage() );

 e.printStackTrace();                      

 }

 try {

 // 연결하기

String id = "root"; 

String pw = "1234";

String database = "university";

Connection con  = DriverManager.getConnection("jdbc:mysql://" + "localhost:3306"+ "/" + database, id, pw);



 // Statement 생성

 Statement stmt = con.createStatement();



 // 삽입하기 전의 course  테이블 출력

 ResultSet rs = stmt.executeQuery("select * from course;"); // ResultSet을 이용 

 System.out.println( "*** course table before insertion  ***") ; 

 while( rs.next() ) {

 System.out.println("  * cno: " + rs.getString("cno")  

 + "\tcname : "+ rs.getString("cname")

 + "\t\tcredit : " + rs.getInt("credit")

 + "\tdept : "+ rs.getString("dept")

 + "\t\t prname : "+ rs.getString("prname")

 );

 }



 // 삽입할 course 데이터를 입력한 후 course 투플 삽입

 System.out.println("\n  ** course insertion **");



 System.out.print("  o cno > ");

 String cno = SkScanner.getString();



 System.out.print("  o cname > ");

 String cname = SkScanner.getString();



 System.out.print("  o credit > ");

 int credit = SkScanner.getInt();



 System.out.print("  o dept > ");

 String dept = SkScanner.getString();



 System.out.print("  o prname > ");

 String prname = SkScanner.getString();



 ------------------------------------------------ Statement와 다른부분 ------------------------------------------------



 PreparedStatement prStmt = null ;                 // 먼저 null로 초기화 한다.

 String sql = "insert into course values(?,?,?,?,?)"; // '?' 로 하지 않고 ?로 한다.

 System.out.println("\tsql = "+sql);  // 실제 작성된 SQL 문을 확인하기 위함

 prStmt = con.prepareStatement(sql);

 prStmt.setString(1, cno);  // 파라미터 셋팅

 prStmt.setString(2, cname);  // 파라미터 셋팅

 prStmt.setInt(3, credit);  // 파라미터 셋팅

 prStmt.setString(4, dept);  // 파라미터 셋팅

 prStmt.setString(5, prname);  // 파라미터 셋팅



 -----------------------------------------------------------------------------------------------------------------------------------------



 int cnt =  0;    

 cnt = prStmt.executeUpdate(); // 쿼리를 실행하고, 반환되는 인덱스의 값을 cnt에 저장한다.     

 System.out.println("\n  * " + cnt+" 튜플이 삽입됨\n") ;

 // 삽입후의 course  테이블 출력

 rs = stmt.executeQuery("select * from course;");



 System.out.println("\n\n  ** course table after insertion **") ;

 //  getInt()와 getString()의 애트리뷰트 이름으로 결과를 출력한다.

 while( rs.next() ) {

 System.out.println("  * cno: " + rs.getString("cno")  

 + "\tcname : "+ rs.getString("cname")

 + "\t\tcredit : " + rs.getInt("credit")

 + "\tdept : "+ rs.getString("dept")

 + "\t\t prname : "+ rs.getString("prname")

 );

 }

 } catch( SQLException ex ) {System.err.println("JDBC 오류:" + ex.getMessage() ); }             

 }

}
Comments