insert 쿼리 활용
2023-03-29
INSERT 쿼리 활용
- 이전에는 DBMS 구축 및 DB테이블을 생성 하였다
- insert 쿼리를 활용하여 사용자로부터 데이터를 입력받아 db로 insert하려고 한다
1.사전에 id, pw, level, name, email 을 받을 수 있게 form을 만들어 두었다(m_insert_form.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.form에서 넘어온 데이터를 받을 수 있게 만들어준다(m_insert_form.jsp)
//클래스 와 인터페이스를 improt 해준다
<%@ page import = "java.sql.DriverManager" %>
<%@ page import = "java.sql.Connection" %>
<%@ page import = "java.sql.PreparedStatement" %>
<%@ page import = "java.sql.SQLException" %>
<% //<--jsp에서 자바코드는 <%%>안에 넣어준다
request.setCharacterEncoding("euc-kr"); //post방식 한글인코딩
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_action.jsp");
System.out.println(m_pw + "<-- m_pw /minsert/m_insert_action.jsp");
System.out.println(m_level + "<-- m_level /minsert/m_insert_action.jsp");
System.out.println(m_name + "<-- m_name /minsert/m_insert_action.jsp");
System.out.println(m_email + "<-- m_email /minsert/m_insert_action.jsp");
Class.forName("com.mysql.jdbc.Driver");
Connection conn = null;
PreparedStatement pstmt = null;
String jdbcDriver = "jdbc:mysql://localhost:3306/dev47db?" +
"useUnicode=true&characterEncoding=euckr";
String dbUser = "dev47id";
String dbPass = "dev47pw";
conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass);
System.out.println(conn + "<-- conn");
pstmt = conn.prepareStatement("INSERT INTO tb_member VALUES (?, ?, ?, ?, ?)");
System.out.println(pstmt + "<-- pstmt 1");
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");
int result = pstmt.executeUpdate();
System.out.println(result + "<-- result");
pstmt.close();
conn.close();
//리다이렉트
response.sendRedirect(request.getContextPath()+"/msearch/m_search_list.jsp");
%>
JDBC(Java Database Connectivity) 프로그램 순서 7단계
1.MySQL 드라이버 로딩
Class.forName("com.mysql.jdbc.Driver");
2.connection객체로 DB 연결 - ip, port넘버, db접속ID, db접속PW, db명
//데이터타입 객체잠조변수 초기화
Connection conn = null;
//jbdc DB연결 -> //localhost : port번호/DB명
String jdbcDriver = "jdbc:mysql://localhost:3306/dev47db?" +
"useUnicode=true&characterEncoding=euckr";
String dbUser = "dev47id";
String dbPass = "dev47pw";
/*
DriverManager : Java에서 제공하는 JDBC 드라이버 매니저 클래스로 데이터베이스 드라이버를 등록,
등록된 드라이버 중에서 적절한 드라이버를 선택하여 Connection 객체를 반환한다
*/
//반환된 Connection 객체를 이용하여 데이터베이스에 대한 쿼리를 실행하고, 결과를 받아올 수 있다
conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass);
3. Query실행을 위한 준비(statement 또는 PreparedStatement객체생성)
//데이터타입 객체참조변수 초기화
PreparedStatement pstmt = null;
//insert 쿼리문에 index와 변수 값을 통해 전달하기
//pstmt.setString(index, 변수 값);
//사용자가 입력하는 값이 매번 다르기 때문에 변수를 통해 전달한다
pstmt = conn.prepareStindexment ("INSERT INTO tb_member VALUES (?, ?, ?, ?, ?)");
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);
4.Query 실행
//executeUpdate() : db에서 데이터를 insert, update, delete 하는 sql쿼리문 실행
//int 값으로 받는 이유 : 행의 수를 반환하기 때문(현재 코드에선 리턴 값 : 5)
int result = pstmt.executeUpdate();
5.Query 실행 결과 사용(insert, update, delete의 경우 생략이 가능하다)
- insert 쿼리라서 생략
6.Statement 또는 PreparedStatement 객체 종료
pstmt.close();
7.DB연결종료 (connection 객체)
conn.close();
'MYSQL' 카테고리의 다른 글
delete 쿼리 활용 (0) | 2023.04.17 |
---|---|
update 쿼리 활용 (0) | 2023.04.17 |
select 쿼리 활용 (0) | 2023.04.17 |
DBMS 구축 & DB테이블 생성 (0) | 2023.04.16 |
MySQL 설치 & HeidiSQL 설치 (0) | 2023.04.16 |
댓글
이 글 공유하기
다른 글
-
update 쿼리 활용
update 쿼리 활용
2023.04.17 -
select 쿼리 활용
select 쿼리 활용
2023.04.17 -
DBMS 구축 & DB테이블 생성
DBMS 구축 & DB테이블 생성
2023.04.16 -
MySQL 설치 & HeidiSQL 설치
MySQL 설치 & HeidiSQL 설치
2023.04.16