DB-java ์ฐ๊ฒฐ
package insert;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
@WebServlet("/InsertServlet2")
public class InsertServlet2 extends HttpServlet {
private static final long serialVersionUID = 1L;
public InsertServlet2() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// oracle๊ณผ java๋ฅผ ์ฐ๊ฒฐ์์ผ์ค ์ ์๋ ๊ฐ์ฒด
Connection conn = null;
// ์คํํ ์ฟผ๋ฆฌ๋ฌธ ์์ฑ
String sql = "INSERT INTO MEMBER (MEM_NUM, MEM_NAME, MEM_AGE) VALUES (?, ?, ?)";
// ์ฟผ๋ฆฌ๋ฅผ ์คํ์์ผ์ฃผ๋ ๊ฐ์ฒด
PreparedStatement pstmt = null;
try {
// ๋ฆฌ์์ค(ํ์ผ, ์ฌ์ง ๋ฑ) ๊ฒ์ํ ์ ์๋ ๊ฐ์ฒด ์์ฑ
Context init = new InitialContext();
// context.xml ํ์ผ์ ๋๋น ์ ์ ์ ๋ณด๋ฅผ ์ฝ์ด ๋ค์.
DataSource ds = (DataSource) init.lookup("java:comp/env/jdbc/OracleDB");
// ์ฝ์ด์จ ๋๋น ์ ๋ณด๋ก๋ถํฐ ์๋ฐ์ ๋๋น๋ฅผ ์ฐ๊ฒฐํจ.
conn = ds.getConnection();
// ์ฟผ๋ฆฌ๋ฅผ ์คํ์ํฌ ๊ฐ์ฒด๋ฅผ ์์ฑ
pstmt = conn.prepareStatement(sql);
// ?๊ฐ์ ์ฑ์์ค์ผ ํจ
pstmt.setInt(1, 6);
pstmt.setString(2, "๊น์๋ฐ");
pstmt.setInt(3, 35);
// ์ฟผ๋ฆฌ ์คํ
pstmt.executeUpdate();
} catch (Exception e) {
System.out.println("๋๋น ์ค๋ฅ!!!!!");
e.printStackTrace();
} finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
์ฟผ๋ฆฌ์ ๋ค์ด๊ฐ ์ ๋ณด๋ฅผ ?๋ผ๋ ๋ณ์๋ก ์ค
// ?๊ฐ์ ์ฑ์์ค์ผ ํจ
pstmt.setInt(1, 6);
pstmt.setString(2, "๊น์๋ฐ");
pstmt.setInt(3, 35);
1 , 2, 3 > ๋ฌผ์ํ ๋ค์ด๊ฐ ์๋ฆฌ ์์น
๋๋ฌธ์ ์๋ฌธ์ ์๋ชป ์ณค์ ๋ ๋ฐ๊พธ๋ ๋จ์ถํค :
ctrl + shift + x : ๋๋ฌธ์ ๋ฐ๊ฟ
crtl + shift + y : ์๋ฌธ์ ๋ฐ๊ฟ
์ฐ์ต)
ํ์๋ฒํธ
์ด๋ฆ
๋์ด
์ ๋ ฅ ๋ฐ์์ ์ ์ก ๋๋ฅด๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ ์ถ๊ฐ
jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="test" method="get">
<table>
<tr>
<td>ํ์๋ฒํธ</td>
<td><input type="text" name="memNum"> </td>
</tr>
<tr>
<td>์ด๋ฆ</td>
<td><input type="text" name="memName"> </td>
</tr>
<tr>
<td>๋์ด</td>
<td><input type="text" name="memAge"> </td>
</tr>
</table>
<input type="submit" value="์ ์ก">
</form>
</body>
</html>
servlet
package insert;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
@WebServlet("/test")
public class Test extends HttpServlet {
private static final long serialVersionUID = 1L;
public Test() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//๋ฐ์ดํฐ ๋ฐ๊ธฐ
int memNum = Integer.parseInt(request.getParameter("memNum"));
String memName = request.getParameter("memName");
int memAge = Integer.parseInt(request.getParameter("memAge"));
// oracle๊ณผ java๋ฅผ ์ฐ๊ฒฐ์์ผ์ค ์ ์๋ ๊ฐ์ฒด
Connection conn = null;
// ์คํํ ์ฟผ๋ฆฌ๋ฌธ ์์ฑ
String sql = "INSERT INTO MEMBER (MEM_NUM, MEM_NAME, MEM_AGE) VALUES (?, ?, ?)";
// ์ฟผ๋ฆฌ๋ฅผ ์คํ์์ผ์ฃผ๋ ๊ฐ์ฒด
PreparedStatement pstmt = null;
try {
// ๋ฆฌ์์ค(ํ์ผ, ์ฌ์ง ๋ฑ) ๊ฒ์ํ ์ ์๋ ๊ฐ์ฒด ์์ฑ
Context init = new InitialContext();
// context.xml ํ์ผ์ ๋๋น ์ ์ ์ ๋ณด๋ฅผ ์ฝ์ด ๋ค์.
DataSource ds = (DataSource) init.lookup("java:comp/env/jdbc/OracleDB");
// ์ฝ์ด์จ ๋๋น ์ ๋ณด๋ก๋ถํฐ ์๋ฐ์ ๋๋น๋ฅผ ์ฐ๊ฒฐํจ.
conn = ds.getConnection();
// ์ฟผ๋ฆฌ๋ฅผ ์คํ์ํฌ ๊ฐ์ฒด๋ฅผ ์์ฑ
pstmt = conn.prepareStatement(sql);
// ?๊ฐ์ ์ฑ์์ค์ผ ํจ
pstmt.setInt(1, memNum);
pstmt.setString(2, memName);
pstmt.setInt(3, memAge);
// ์ฟผ๋ฆฌ ์คํ
pstmt.executeUpdate();
} catch (Exception e) {
System.out.println("๋๋น ์ค๋ฅ!!!!!");
e.printStackTrace();
} finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
** ์ฃผ์์ฌํญ
์ฟผ๋ฆฌ ์คํ๋ฌธ ์ธ ๋
pstmt.executeUpdate() : INSERT, UPDATE, DELETE (๋ฐ์ดํฐ์ ๋ณํ๊ฐ ์๊ธฐ๋ ์ฟผ๋ฆฌ์ ์)
pstmt.executeQuery() : SELECT
SELECT๋ ๊ฐ์ฒด๋ฅผ ํ๋ ๋ ์์ฑํด์ผ ๋๋ค.
์กฐํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์ค๋ ๊ฐ์ฒด :
ResultSet rs = null;
์ ๋ ํธ ์ ์๋ง ํ์ํ ๊ฐ์ฒด > ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ์ ์๋๋ก
// ์ฟผ๋ฆฌ ์คํ
// rs๊ฐ์ฒด๋ ์กฐํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
rs = pstmt.executeQuery();
// rs์์ ๋ฐ์ดํฐ ์ถ์ถ
// rs.next() : ๋ค์ ๋ฐ์ดํฐ๊ฐ ์๋?
while(rs.next()) {
int memNum = rs.getInt("MEM_NUM"); //rs.get๊ฐ์ ธ์ฌ๋ฐ์ดํฐ์๋ฃํ("์ปฌ๋ผ๋ช
")
String memName = rs.getString("MEM_NAME");
int memAge = rs.getInt("MEM_AGE");
System.out.println("๋ฒํธ : " + memNum + " / ์ด๋ฆ : " + memName + " / ๋์ด : " + memAge);
}
SELETE์ ์ ์ฒด ์ฝ๋
package select;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
@WebServlet("/SelectServlet1")
public class SelectServlet1 extends HttpServlet {
private static final long serialVersionUID = 1L;
public SelectServlet1() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ํ๋ ๊ธฐ๋ณธ ๋จ๊ณ
// oracle๊ณผ java๋ฅผ ์ฐ๊ฒฐ์์ผ์ค ์ ์๋ ๊ฐ์ฒด
Connection conn = null;
// ์คํํ ์ฟผ๋ฆฌ๋ฌธ ์์ฑ
String sql = "SELECT MEM_NUM, MEM_NAME, MEM_AGE "
+ "FROM MEMBER";
// ์ฟผ๋ฆฌ๋ฅผ ์คํ์์ผ์ฃผ๋ ๊ฐ์ฒด
PreparedStatement pstmt = null;
//์กฐํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์ค๋ ๊ฐ์ฒด
ResultSet rs = null; //์
๋ ํธ ์ ์๋ง ํ์ํ ๊ฐ์ฒด > ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ์ ์๋๋ก
try {
// ๋ฆฌ์์ค(ํ์ผ, ์ฌ์ง ๋ฑ) ๊ฒ์ํ ์ ์๋ ๊ฐ์ฒด ์์ฑ
Context init = new InitialContext();
// context.xml ํ์ผ์ ๋๋น ์ ์ ์ ๋ณด๋ฅผ ์ฝ์ด ๋ค์.
DataSource ds = (DataSource) init.lookup("java:comp/env/jdbc/OracleDB");
// ์ฝ์ด์จ ๋๋น ์ ๋ณด๋ก๋ถํฐ ์๋ฐ์ ๋๋น๋ฅผ ์ฐ๊ฒฐํจ.
conn = ds.getConnection();
pstmt = conn.prepareStatement(sql);
// ?๊ฐ์ ์ฑ์์ค์ผ ํจ
// ์ฟผ๋ฆฌ ์คํ
// rs๊ฐ์ฒด๋ ์กฐํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
rs = pstmt.executeQuery();
// rs์์ ๋ฐ์ดํฐ ์ถ์ถ
// rs.next() : ๋ค์ ๋ฐ์ดํฐ๊ฐ ์๋?
while(rs.next()) {
int memNum = rs.getInt("MEM_NUM"); //rs.get๊ฐ์ ธ์ฌ๋ฐ์ดํฐ์๋ฃํ("์ปฌ๋ผ๋ช
")
String memName = rs.getString("MEM_NAME");
int memAge = rs.getInt("MEM_AGE");
System.out.println("๋ฒํธ : " + memNum + " / ์ด๋ฆ : " + memName + " / ๋์ด : " + memAge);
}
} catch (Exception e) {
System.out.println("๋๋น ์ค๋ฅ!!!!!");
e.printStackTrace();
} finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
์ฐ์ต
** dto : Data Transfer Object(๋ฐ์ดํฐ๋ฅผ ์ด๋์์ผ์ฃผ๋ ๊ฐ์ฒด)
ํ์ด์ง ์ด๋ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ด์์ ์ ๋ฌ์ํฌ ๋ชฉ์ ์ผ๋ก ๋ง๋๋ ๊ฒ!
** dao : Data Access Object (๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ ์ ์๋ ๊ฐ์ฒด)
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ฅ์ ๋ด๋น.