엄지월드

Statement를 활용한 insert, select, delete, update 본문

java/Spring

Statement를 활용한 insert, select, delete, update

킨글 2017. 4. 26. 15:42
import java.sql.*;



public class ex {

 public static void main(String[] args) {



 getConnection();



 int menu = 0;

 while (menu != 5) {

 System.out.print("\n\n  **** student table management **** ");

 System.out.print("\n\n  1) insert   2) select  3) delete  4) update  5) end");  

 System.out.print("\n\n  o Choose what to do > ");

 menu = SkScanner.getInt();



 if (menu==1) doInsert();

 else if (menu==2) doSelect();

 else if (menu==3) doDelete();

 else if (menu==4) doUpdate();

 }

  

 close();

 }



 // 학생정보를 입력하여 학생 투플을 삭제하는 insert 메뉴 처리 메소드

 public static void doInsert() {

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



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

 int sno = SkScanner.getInt();



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

 String sname = SkScanner.getString();



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

 int year = SkScanner.getInt();



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

 String dept = SkScanner.getString();



 executeInsert(sno, sname, year, dept);

 }



 //  select 메뉴 처리 메소드: DB에서 검색하는 메소드인 executeSelect()만 호출함

 //  다른 메뉴 처리 메소드과 밸랜스를 맞추기 위해 필요한 메소드임

 public static void doSelect() {

 executeSelect();

 }





 // 학번을 입력받아 입력된 학번의 학생 투플을 삭제하는 메소드

 public static void doDelete() {

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

 int sno = SkScanner.getInt();

 executeDelete(sno);

 }



 public static void doUpdate() {

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

 int sno = SkScanner.getInt();

 System.out.print("  o change year > ");

 int year =SkScanner.getInt();

 executeStuddentUpdate(sno, year);



 }



 //

 // JDBC 프로그래밍과 관련된 멤버변수(필드)와 메소드들

 //



 static Connection con         = null;

 static Statement stmt           = null;

 static ResultSet rs= null ;





 public static void getConnection() {

 String database   = "university"; 

        String user_name         = "root";

        String password          = "1234";

        

        // 드라이버 로딩

        try {

             Object o = Class.forName("org.gjt.mm.mysql.Driver");

        } catch ( java.lang.ClassNotFoundException e ) {

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

                e.printStackTrace();

        }

        

        try {

                // 연결하기

                con  = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + database,

                                                               user_name, password ); 

 } catch( SQLException ex ) {               

                System.err.println("conn 에러:" + ex.getMessage() );

                ex.printStackTrace();

       } 

 }





 // executeInsert(): 학생 투플을 삽입하는 메소드, 필요한 정보는 매개변수로 전달됨

 public static void executeInsert(int sno, String sname, int year, String dept) { // insert부분

 System.out.println("\n  * Inserting a student ... **");

           

 try {

            // Statement 객체 생성

            stmt = con.createStatement();



            // 주어진 학생정보로 삽입 SQL 문 작성: values(...)에서 애트리뷰트 값이 문자열인 경우 양쪽에 '를 반드시 붙여야 함

 String sql = "insert into student values("+sno+", '"+sname+"', "+year+", '"+dept+"');";  

 System.out.println("  * sql = "+ sql);    // 실제 수행되는 SQL 문을 수행한 후 확인하기 바람



            int cnt = stmt.executeUpdate(sql);  // 쿼리를 실행하고 성공한 인덱스 반환

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

       } catch( SQLException ex ) {              

                System.err.println("  ??? SQL문 exec error: " + ex.getMessage() );

       }

 }



 // 매개변수로 학번이 주어지면 그 학번의 학생 투플을 삭제하는 메소드

 public static void executeDelete(int sno ) { // delete 부분

 System.out.println("\n  * Deleting a student tuple ...\n");



 try {

 String sql = "delete from student where sno = "+sno;

 stmt = con.createStatement();

 int cnt = stmt.executeUpdate(sql);  // 쿼리를 실행하고 성공한 인덱스 반환

 System.out.println("  * sql = "+ sql);    // 실제 수행되는 SQL 문을 수행한 후 확인하기 바람



 System.out.println("영향을 받은 튜플 수 "+cnt);

 } catch( SQLException ex ) {              

 System.err.println("  ??? SQL문 exec error: " + ex.getMessage() );

 }

 }



 // 매개변수로 학번과 학년이 주어지면 그 학번의 학년을 주어진 학년으로 변경하는  메소드

 public static void executeStuddentUpdate(int sno, int year) { // update 부분

 System.out.println("\n  * Updating student tuple ...\n");



 try {

 String sql = "update student set year="+year+" where sno = "+sno;

 stmt = con.createStatement();

 int cnt = stmt.executeUpdate(sql);  // 쿼리를 실행하고 성공한 인덱스 반환

 System.out.println("  * sql = "+ sql);    // 실제 수행되는 SQL 문을 수행한 후 확인하기 바람

 System.out.println("영향을 받은 튜플 수 "+cnt);

 } catch(Exception ex ) {              

 System.err.println("  ??? SQL문 exec error: " + ex.getMessage() );

 }

 }



 // 모든 학생을 검색하는 메소드

 public static void executeSelect() { // select 부분

 System.out.println("\n\n  ** Student table **\n");



 try {

            // Statement 객체 생성

           stmt = con.createStatement();



           rs = stmt.executeQuery("select * from student;");  // 쿼리를 실행

               

           // 결과를 출력한다.

           while( rs.next() ) { // 결과 값 반환

            System.out.println( "  * sno: " + rs.getInt("sno") 

            + "     " + rs.getString(2)

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

            + "     year : " + rs.getInt("year") );

           }           

        } catch( SQLException ex ) {               

         System.err.println("SQL문 결과출력 에러:" + ex.getMessage() );        

        }

 }



 public static void close() {

     try {

     // 연결을 닫는다.

     if( stmt != null ) stmt.close();

     if( con != null ) con.close();

                    

     } catch (SQLException ex ) {};    

     

 System.out.print("Good bye!!!");

   

    }                        

}

'java > Spring' 카테고리의 다른 글

onclick confirm설정하는법  (2) 2017.05.06
MySQL Date형식 표시 (java.util.Date)  (0) 2017.05.06
Spring과 Mysql 연동하기  (0) 2017.05.05
Statement를 이용한 튜플 삽입  (0) 2017.04.26
PreparedStatement를 이용한 튜플 삽입  (0) 2017.04.26
Comments