티스토리 뷰
728x90
반응형
프로젝트 요약
프로젝트 : mysqljsp52_tb_member
1. m_insert_form2.jsp 파일 생성
기존 m_insert_form.jsp 코드를 복사하여 m_insert_form2.jsp 파일을 생성합니다.
<form action="<%= request.getContextPath() %>/minsert/m_insert_action.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>
2. m_insert_form2.jsp 파일 수정
form action을 수정하여 m_insert_action2.jsp로 변경합니다.
<form action="<%= request.getContextPath() %>/minsert2/m_insert_action2.jsp" method="post">
3. 입력 필드 이름 변경
입력 필드의 name 속성을 변경합니다.
memberId memberPw memberLevel memberName memberEmail
4. MySQL 드라이버 로딩 문제 해결
올바른 MySQL 드라이버 클래스를 로딩합니다.
Class.forName("cohttp://m.mysql.cj.jdbc.Driver");
5. 데이터베이스 연결 코드 추가
JSP 파일에 데이터베이스 연결 코드를 추가합니다.
<% String jdbcDriver = "jdbc:mysql://localhost:3306/dev52db?useUnicode=true&characterEncoding=euckr"; String dbUser = "dev52id"; String dbPass = "dev52pw"; Connection conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass); System.out.println(conn + "<-- conn"); %>
6. 입력값을 PreparedStatement에 설정
사용자로부터 입력받은 값을 PreparedStatement에 설정합니다.
pstmt.setString(1, memberId); pstmt.setString(2, memberPw); pstmt.setString(3, memberLevel); pstmt.setString(4, memberName); pstmt.setString(5, memberEmail);
7. 데이터베이스에 값 삽입
PreparedStatement를 이용해 데이터베이스에 값을 삽입합니다.
pstmt = conn.prepareStatement("INSERT INTO tb_member VALUES (?, ?, ?, ?, ?)"); pstmt.setString(1, memberId); pstmt.setString(2, memberPw); pstmt.setString(3, memberLevel); pstmt.setString(4, memberName); pstmt.setString(5, memberEmail); pstmt.executeUpdate();
8. 에러 처리 및 트랜잭션 관리
데이터베이스 작업 중 발생하는 에러를 처리하고 트랜잭션을 관리합니다.
conn.rollback(); conn.commit();
9. 연결 종료
데이터베이스 연결을 종료합니다.
pstmt.close(); conn.close();
10. 추가 내용
데이터베이스 스키마 및 사용자 생성, 권한 부여에 대한 내용입니다.
CREATE DATABASE db16hwang DEFAULT CHARACTER SET UTF8; CREATE USER 'dbid16hwang'@'%' IDENTIFIED BY 'dbpw16hwang'; GRANT ALL PRIVILEGES ON db16hwang.* TO 'dbid16hwang'@'%'; FLUSH PRIVILEGES;
11. JSP에서 데이터베이스 작업
JSP 파일에서 데이터베이스 작업을 수행하는 예시입니다.
<%@ page import = "java.sql.*" %> <% String memberId = request.getParameter("memberId"); String memberPw = request.getParameter("memberPw"); String memberLevel = request.getParameter("memberLevel"); String memberName = request.getParameter("memberName"); String memberEmail = request.getParameter("memberEmail"); Connection conn = null; PreparedStatement pstmt = null; try { Class.forName("cohttp://m.mysql.cj.jdbc.Driver"); String jdbcDriver = "jdbc:mysql://localhost:3306/dev52db?useUnicode=true&characterEncoding=euckr"; String dbUser = "dev52id"; String dbPass = "dev52pw"; conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass); pstmt = conn.prepareStatement("INSERT INTO tb_member VALUES (?, ?, ?, ?, ?)"); pstmt.setString(1, memberId); pstmt.setString(2, memberPw); pstmt.setString(3, memberLevel); pstmt.setString(4, memberName); pstmt.setString(5, memberEmail); pstmt.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { if (pstmt != null) try { pstmt.close(); } catch (SQLException e) {} if (conn != null) try { conn.close(); } catch (SQLException e) {} } %>
728x90
반응형
'수업강의노트' 카테고리의 다른 글
24_07_15 오늘의 강의노트(요약) (0) | 2024.07.17 |
---|---|
24_07_10 오늘의 강의노트(요약) (0) | 2024.07.11 |
24_07_08 오늘의 강의노트(요약) (0) | 2024.07.08 |
24_07_03 오늘의 강의노트(요약) (0) | 2024.07.04 |
24_06_26 오늘의 강의노트(요약) (0) | 2024.07.01 |
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 필드 초기화와 사용
- 반복문
- 클래스의 구성 멤버
- let-const-var
- resultsetimpl
- 뷰(view)
- 변수표기법
- 호이스팅(hoisting)
- 오버로딩vs오버라이딩
- get한글인코딩
- 조건문
- ㅎgroupbyvs윈도우함수
- stored program
- 테이터베이스 설계
- Java
- JavaScript
- 참조타입vs기본타입
- jdbc
- http 프로토콜:get vs post
- 배열(Array)
- jsp의 주요 태그
- 데이터변환함수
- 데이터베이스(mysql)
- 문자열비교메서드
- cte ( common table expression )
- 가변 길이 매개변수와 리턴
- 함수범위vs블록범위
- 객체 지향 프로그래맹의 특징(캡슐화|상속|다형성)
- 제어흐름함수
- javascript자료형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함