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