1단계 JSP으로만 Insert처리
실행환경
에디터 : eclipse neon 2.0
DBMS : mysql 5.7, heidiSQL
WebServer : apache-tomcat 7.0
프로젝트명 : mysqlOnlyJsp
DB명 : doublesdb
DB사용자 : doublesid
DB비번 : doublespw
테이블명 : tb_member
테이블 생성 후 데이터 입력
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | create table tb_member( m_id VARCHAR(10) NOT NULL PRIMARY KEY, m_pw VARCHAR(10) NOT NULL, m_level VARCHAR(10) NOT NULL, m_name VARCHAR(20) NOT NULL, m_email VARCHAR(80) ) insert into tb_member values('id001','pw001','관리자','더블에스','test01'); insert into tb_member values('id002','pw002','판매자','홍길동','test02'); insert into tb_member values('id003','pw003','판매자','김철수','test03'); insert into tb_member values('id004','pw004','구매자','박찬호','test04'); insert into tb_member values('id005','pw005','구매자','유재석','test05'); insert into tb_member values('id006','pw006','구매자','박명수','test06'); insert into tb_member values('id007','pw007','구매자','하하','test07'); insert into tb_member values('id008','pw008','구매자','정준하','test08'); insert into tb_member values('id009','pw009','구매자','양세형','test09'); | cs | 
1. m_insert_form.jsp
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>회원가입 입력폼</title> </head> <body> <%= request.getRequestURI() %> <br>     <form action="<%= request.getContextPath() %>/minsert/m_insert_pro.jsp" method="post">         <table border="1">             <tr>                 <td>아이디</td>                 <td><input type="text" name="m_id" size="20"></td>             <tr>             <tr>                 <td>암호</td>                 <td><input type="text" name="m_pw" size="20"></td>             <tr>             <tr>                 <td>권한</td>                 <td><input type="text" name="m_level" size="20"></td>             <tr>             <tr>                 <td>이름</td>                 <td><input type="text" name="m_name" size="20"></td>             <tr>             <tr>                 <td>이메일</td>                 <td><input type="text" name="m_email" size="20"></td>             <tr>             <tr>                 <td colspan="4"><input type="submit" value="회원가입버튼"></td>             </tr>         </table>     </form> </body> </html> | cs | 
2. m_insert_pro.jsp
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <%@ page import = "java.sql.DriverManager" %>  <%@ page import = "java.sql.Connection" %> <%@ page import = "java.sql.PreparedStatement" %> <%@ page import = "java.sql.SQLException" %> <!-- 특정패키지들 내에  클래스들 내에 선언된 메서드들의 기능들을 호출하기위해서  import --> <%     request.setCharacterEncoding("utf-8");     // 입력 받은 한글이 깨지지 않도록 UTF-8세팅. *getParameter위에 써야함     Connection conn = null;     // Connection클래스 데이터타입으로 객체참조 변수 conn 선언 후 null로 초기화     PreparedStatement pstmt = null;     // PreparedStatement클래스 데이터타입으로 객체참조 변수 pstmt 선언 후 null로 초기화     //화면에서 입력데이터를 받아서 각각 변수에 저장하고 콘솔창에 출력 시작     String m_id = request.getParameter("m_id");     String m_pw = request.getParameter("m_pw");     String m_level = request.getParameter("m_level");     String m_name = request.getParameter("m_name");     String m_email = request.getParameter("m_email");     System.out.println(m_id + "<-- m_id /minsert/m_insert_pro.jsp");     System.out.println(m_pw + "<-- m_pw /minsert/m_insert_pro.jsp");     System.out.println(m_level + "<-- m_level /minsert/m_insert_pro.jsp");     System.out.println(m_name + "<-- m_name /minsert/m_insert_pro.jsp");     System.out.println(m_email + "<-- m_email /minsert/m_insert_pro.jsp");     //화면에서 입력데이터를 받아서 각각 변수에 저장하고 콘솔창에 출력 시작         // * JDBC 프로그램 순서     //01단계 :드라이버 로딩 시작     Class.forName("com.mysql.jdbc.Driver");     //01단계 :드라이버 로딩 끝     try{     //02단계 :DB연결(Connection)시작         String jdbcDriver = "jdbc:mysql://localhost:3306/doublesdb?"+                             "useUnicode=true&characterEncoding=euckr";         String dbUser = "doublesid";         String dbPass = "doublespw";         conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass);         System.out.println(conn + "<-- conn");         System.out.println(conn.getClass() + "<-- conn.getClass()");     //02단계 :DB연결(Connection)끝     //03단계 :Query실행을 위한 statement 또는 prepareStatement객체생성 시작         pstmt = conn.prepareStatement(                 "INSERT INTO tb_member VALUES (?, ?, ?, ?, ?)");         System.out.println(pstmt + "<-- pstmt 1");         System.out.println(pstmt.getClass() + "<-- pstmt.getClass() 1");     //insert into tb_member values('id001','pw001','관리자','홍01','email01');         pstmt.setString(1, m_id);         pstmt.setString(2, m_pw);         pstmt.setString(3, m_level);         pstmt.setString(4, m_name);         pstmt.setString(5, m_email);         System.out.println(pstmt + "<-- pstmt 2");     //03단계 :Query실행을 위한 statement 또는 prepareStatement객체생성 끝     //04단계 :Query실행 시작         pstmt.executeUpdate();     //04단계 :Query실행 끝     //05단계 :Query실행결과 사용 (insert의 경우 생략 가능단계)     }finally{         //06단계 :statement 또는 prepareStatement객체 종료(close())         if (pstmt != null) try { pstmt.close(); } catch(SQLException ex) {}         //07단계 :Connection 객체 종료(close())         if (conn != null) try { conn.close(); } catch(SQLException ex) {}     } %> | cs | 
*JDBC 드라이버
JDBC드라이버는 DBMS와 통신을 담당하는 자바 클래스로 DBMS마다 별도의 JDBC 드라이버가 필요하며 드라이버는 jar파일로 제공된다. jar파일의 클래스패스 지정 후 드라이버를 로딩한다.
클래스 패스 방법
1. OS에 클래스 패스를 지정하거나 자바 설치폴더 아래 jre/lib/ext 폴더에 복사
2. 이클립스에서 tomcat 연동 웹프로젝트로 개발시 톰캣설치폴더 아래 lib폴더에 복사
JDBC 드라이버 이름과 URL 포맷
1. mysql
드라이버 이름 : com.mysql.jdbc.driver
URL 포맷 : jdbc:mysql://host/db?"useUnicode=true&characterEncoding=euckr" <-한글 인코딩
다운로드 위치 : https://dev.mysql.com/downloads/connector/j/
2. oracle
드라이버 이름 : oracle.jdbc.driver.OracleDriver
URL 포맷 : jdbc:oracle:thin:@host:port:db
다운로드 위치 : http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html