ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [5주][1일][5~8th] mysql 실습(이어서), mysql을 java(이클립스)와 연동하기
    N스크린하이브리드앱과정/JSP:Model-1 2013. 8. 12. 17:39

    mysql 실습, 그리고 자바와 연동하기 

    ☆ sql문 실습

    * 회원수정
    update 테이블이름
    set 바꿀열이름=값, 열이름=값
    where 조건열이름=값;

     

    ex1) num 3인 사람의 name 수정
    update student
    set name = 'lee'
    where num=3;

     

    ex2) name kim인 사람의 num를 5로 수정
    update student
    set name=5
    where name='kim';

     

     

    * 회원삭제
    delete from 테이블이름
    where 조건열이름=값;

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

    delete from student
    where num=5;

     

    ex1) name이 'lee'사람 삭제
    delete from student
    where name = 'lee';

     

    사용자 생성(계정 만들기)
    grant
    select, insert, update, delete, create, alter, drop
    on jspbeginner.* to 'jspid'@'localhost'
    identified by 'jsppass';

     

    grant
    select, insert, update, delete, create, alter, drop
    on jspbeginner.* to 'jspid'@'%'
    identified by 'jsppass';

     

    만들어진 id로 들어가기
    mysql -u jspid -p jspid id으로
    jsppass 패스워드

     

    use jspbeginner 데이터베이스 선택

     

    * member 테이블 만들기

    create table member(
     id varchar(12) not null primary key,
     passwd varchar(12) not null,
     name varchar(12) not null,
     reg_date datetime not null
    );

     -> "not null"의 뜻은 id를 비롯한 변수 4개가 하나라도 지정이 안될 경우 오류가 발생한다는 뜻.

     

    show tables; 테이블 보기

    desc member; member 테이블의 속성 보기

     

    * sql문 : 폼에서 회원가입한 것을 확인할 때

    set names euckr; 콘솔 창에서 한글 보이게 하기

     


    ☆ mysql을 자바와 연동하기

    * 순서

    1. jsp와 mysql 연결 프로그램 설치
      ※ JDBC: Java DataBase Connectivity : 자바-mysql을 연결하는 프로그램

     

    2. mysql-connector-java-5.1.19-bin.jar 를 설치한다.

     

    3. lib에 복사하기

     

     

    3-1. DB폴더 만들기

     


    4. 이클립스에서 jsp 코딩하기

    * 단계

    1단계 드라이버로더
    2단계 디비연결(디비주소,아이디,비밀번호) 연결객체 - 연결정보만 저장하고있는 공간
    3단계 sql문 생성
    4단계 실행 insert update delete => 저장 select
    5단계 저장 -> 처리 select

     

     (1) driverTest.jsp

    <%
    Connection con = null;
    String url="jdbc:mysql://localhost:3306/jspbeginner";
    String user="jspid";
    String pwd="jsppass";
    try{
     //1단계 드라이버로더
     Class.forName("com.mysql.jdbc.Driver");
     //2단계 연결
     con = DriverManager.getConnection(url, user, pwd);
     out.println("연결성공");
    }catch(Exception e){
     e.printStackTrace();
    }
    %>

     

     (2-1) insertForm.jsp

    <form action="insertPro.jsp" method="post">
    아이디: <input type="text" name="id"><br>
    패스워드: <input type="password" name="passwd"><br>
    이름: <input type="text" name="name"><br>
    <input type="submit" value="전송"><br>
    </form>

     

     (2-2) insertPro.jsp ☜ 서버와 연동해서 회원가입하기

    <%
    //한글처리
    //id passwd name 가져오기
    request.setCharacterEncoding("utf-8");

    String id = request.getParameter("id");
    String passwd = request.getParameter("passwd");
    String name = request.getParameter("name");

    //시스템의 현재 날짜와 시간을 담아줌
    Timestamp register = new Timestamp(System.currentTimeMillis());

    Connection con = null;
    String url="jdbc:mysql://localhost:3306/jspbeginner";
    String user="jspid";
    String pwd="jsppass";
    PreparedStatement pstmt=null; //sql문장을 먼저 미리 쓰겠다
    String sql="";
    try{
     //1단계 드라이버 로더
     Class.forName("com.mysql.jdbc.Driver");
     //2단계 디비연결
     con=DriverManager.getConnection(url,user,pwd);
     //3단계 sql문 생성 Statement PreparedStatement CallableStatement
     //PreparedStatement CallableStatement
     sql="insert into member(id,passwd,name,reg_date) values(?,?,?,?)";
     pstmt=con.prepareStatement(sql);
     pstmt.setString(1, id);
     pstmt.setString(2, passwd);
     pstmt.setString(3, name);
     pstmt.setTimestamp(4, register);
     //4단계 실행
     pstmt.executeUpdate(); //insert,update,delete
     out.println("회원가입성공");
    }catch(Exception e){
     e.printStackTrace();
    }finally{
     if(pstmt!=null)try{pstmt.close();}catch(SQLException ex){}
     if(con!=null)try{con.close();}catch(SQLException ex){}
    }
    %>

     

     (3) select.jsp ☜ 가입된 내용을 GUI창에서 보여주기

    <h1>회원조회</h1>
    <table border="1">
    <tr><td>아이디</td><td>패스워드</td><td>이름</td><td>가입일자</td></tr>
    <%
    request.setCharacterEncoding("utf-8");

    Connection con = null;
    String url="jdbc:mysql://localhost:3306/jspbeginner";
    String user="jspid";
    String pwd="jsppass";
    String sql="";
    PreparedStatement pstmt=null; //sql문장을 먼저 미리 쓰겠다
    ResultSet rs = null;
    try{
     // 1단계 드라이버로더
     Class.forName("com.mysql.jdbc.Driver");
     // 2단계 디비연결
     con=DriverManager.getConnection(url,user,pwd);
     // 3단계 sql구문 생성
     sql="select * from member";
     pstmt = con.prepareStatement(sql);
     // 4단계 실행=> rs저장
     rs=pstmt.executeQuery();
     // 5단계 rs => 테이블 출력
     while(rs.next()){ //첫번째행
      String id = rs.getString("id"); //테이블열이름 1
      String passwd = rs.getString("passwd");
      String name = rs.getString("name");
      Timestamp register = rs.getTimestamp("reg_date");
      %>
      <tr><td><%=id %></td><td><%=passwd %></td><td><%=name %></td><td><%=register %></td></tr><%
     } 
    }catch(Exception e){
     e.printStackTrace();
    }finally{
     if(rs!=null) try{rs.close();}catch(SQLException ex){}
     if(pstmt!=null)try{pstmt.close();}catch(SQLException ex){}
     if(con!=null)try{con.close();}catch(SQLException ex){}
    }
    %>
    </table>

     

    결과

     

     


    mysql> jspbeginner 데이터베이스 안에 member라는 테이블이 만들어진 것을 콘솔창에서 볼 수 있다.


    - 이름이 깨져서 나오는 현상이 생겨, set names euckr; 를 사용해서 한글이 보이게끔 하였다.

     

Designed by Tistory.