package model;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
//์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๊ณ select, insert, update, delete ์์
์ ์คํํด์ฃผ๋ ํด๋์ค
public class MemberDAO {
//์ค๋ผํด์ ์ ์ํ๋ ์์ค๋ฅผ ์์ฑ(๊ทธ์ ์ ํฐ์บฃ lib์ ojdbc6.jarํ์ผ ๋ฃ๊ธฐ)
/*String id = "system";//์ ์id
String pw = "123456";//์ ์pw
String url = "jdbc:oracle:thin:@localhost:1522:XE";//์ ์url
*/
Connection con;//๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ ์ ์๋๋ก ์ค์
PreparedStatement pstmt; //๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฟผ๋ฆฌ๋ฅผ ์คํ์์ผ์ฃผ๋ ๊ฐ์ฒด
ResultSet rs; //๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํด๋ฐ์ ์๋ฐ์ ์ ์ฅํด์ฃผ๋ ๊ฐ์ฒด
//๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ฉ์๋
public void getCon() {
//์ปค๋ฅ์
ํ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผ
try {
//์ธ๋ถ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๋๋ ค์ผ ํ๊ธฐ์
Context initctx = new InitialContext();
//ํฐ์บฃ ์๋ฒ์ ์ ๋ณด๋ฅผ ๋ด์๋์ ๊ณณ์ผ๋ก ์ด๋
Context envctx = (Context) initctx.lookup("java:comp/env");
//๋ฐ์ดํฐ ์์ค ๊ฐ์ฒด๋ฅผ ์ ์ธ
DataSource ds = (DataSource) envctx.lookup("jdbc/pool");
//๋ฐ์ดํฐ ์์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ์ปค๋ฅ์
์ ์ฐ๊ฒฐํด์ฃผ์์ค
con = ds.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
/*try {
//1. ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค๊ณ ์ ์ธ(ํด๋์ค๋ฅผ ๋ฑ๋ก == ์ค๋ผํด์ฉ์ ์ฌ์ฉ)
Class.forName("oracle.jdbc.driver.OracleDriver");
//2. ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์
con = DriverManager.getConnection(url, id, pw);
} catch (Exception e) {
e.printStackTrace();
} */
}
//๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ฌ๋์ ํ์ ์ ๋ณด๋ฅผ ์ ์ฅํด์ฃผ๋ ๋ฉ์๋
public void insertMember(MemberBean mbean) {
try{
getCon(); //๋ฉ์๋ ๋ง๋ ๊ฒ์ ์์ชฝ์์ ํธ์ถ
//3. ์ ์ ํ ์ฟผ๋ฆฌ์ค๋นํ์ฌ
String sql = "INSERT INTO MEMBER VALUES(?,?,?,?,?,?,?,?)";
//4. ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์
pstmt = con.prepareStatement(sql);
//PreparedStatement: JSP์์ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์ ํ๋ ํด๋์ค
//5. ?์ ๋ง๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋งตํ
pstmt.setString(1, mbean.getId());
pstmt.setString(2, mbean.getPw1());
pstmt.setString(3, mbean.getEmail());
pstmt.setString(4, mbean.getTel());
pstmt.setString(5, mbean.getHobby());
pstmt.setString(6, mbean.getJob());
pstmt.setString(7, mbean.getAge());
pstmt.setString(8, mbean.getInfo());
//6. ์ค๋ผํด์์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ์์ค
pstmt.executeUpdate();//insert, update, delete ์ ์ฌ์ฉํ๋ ๋ฉ์๋
//7. ์์ ๋ฐ๋ฉ
con.close();
}catch(Exception e){
e.printStackTrace();
}
}
//๋ชจ๋ ํ์์ ์ ๋ณด๋ฅผ ๋ฆฌํดํด์ฃผ๋ ๋ฉ์๋ ํธ์ถ
public Vector<MemberBean> allSelectMember(){
//๊ฐ๋ณ๊ธธ์ด๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
Vector<MemberBean> v = new Vector<>();
//๋ฌด์กฐ๊ฑด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์์ธ์ฒ๋ฆฌ๋ฅผ ๋ฐ๋์ ํด์ผํ๋ค.
try {
//์ปค๋ฅ์
์ฐ๊ฒฐ
getCon();
//์ฟผ๋ฆฌ ์ค๋น
String sql = "SELECT * FROM MEMBER";
//์ปค๋ฆฌ๋ฅผ ์คํ์์ผ์ฃผ๋ ๊ฐ์ฒด ์ ์ธ
pstmt = con.prepareStatement(sql);
//์ฟผ๋ฆฌ๋ฅผ ์คํ์ํจ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํด์ ๋ฐ์์ค(์ค๋ผํด ํ
์ด๋ธ์ ๊ฒ์๋ ๊ฒฐ๊ณผ๋ฅผ ์๋ฐ๊ฐ์ฒด์ ์ ์ฅ)
rs = pstmt.executeQuery();
//๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํด์ rs์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํด๋์์ผํ๋ค.
while(rs.next()) { //<-์ ์ฅ๋ ๋ฐ์ดํฐ ๋งํผ๊น์ง ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๊ฒ ๋ค๋ผ๋๋ป
MemberBean bean = new MemberBean();//์นผ๋ผ์ผ๋ก ๋๋์ด์ง ๋ฐ์ดํฐ๋ฅผ ๋นํด๋ ์ค์ ์ ์ฅ
bean.setId(rs.getString(1));
bean.setPw1(rs.getString(2));
bean.setEmail(rs.getString(3));
bean.setTel(rs.getString(4));
bean.setHobby(rs.getString(5));
bean.setJob(rs.getString(6));
bean.setAge(rs.getString(7));
bean.setInfo(rs.getString(8));
//ํจํค์ง๋ memberBeanํด๋์ค๋ฅผ ๋ฒกํฐ์ ์ ์ฅ
v.add(bean); //0๋ฒ์ง๋ถํฐ ์์๋๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ
}
//์์ ๋ฐ๋ฉ
con.close();
} catch (Exception e) {}
//๋ค ์ ์ฅ๋ ๋ฒกํฐ ๊ฐ์ฒด๋ฅผ ๋ฆฌํด
return v;
}
//ํ ์ฌ๋์ ๋ํ ์ ๋ณด๋ฅผ ๋ฆฌํดํ๋ ๋ฉ์๋ ์์ฑ
public MemberBean oneSelectMember(String id) {
//ํ์ฌ๋์ ๋ํ ์ ๋ณด๋ง ๋ฆฌํดํ๊ธฐ์ beanํด๋์ค ๊ฐ์ฒด ์์ฑ
MemberBean bean = new MemberBean();
try {
//์ปค๋ฅ์
์ฐ๊ฒฐ
getCon();
//์ฟผ๋ฆฌ์ค๋น
String sql = "SELECT * FROM MEMBER WHERE id = ?";
pstmt = con.prepareStatement(sql);
//?๊ฐ์ ๋งคํ
pstmt.setString(1, id);
//์ฟผ๋ฆฌ ์คํ
rs = pstmt.executeQuery();
if(rs.next()) {//๋ ์ฝ๋๊ฐ ์๋ค๋ฉด
bean.setId(rs.getString(1));
bean.setPw1(rs.getString(2));
bean.setEmail(rs.getString(3));
bean.setTel(rs.getString(4));
bean.setHobby(rs.getString(5));
bean.setJob(rs.getString(6));
bean.setAge(rs.getString(7));
bean.setInfo(rs.getString(8));
}
//์์ ๋ฐ๋ฉ
con.close();
} catch (Exception e) {}
return bean;
}
//ํ ์ฌ๋์ ํจ์ค์๋๋ฅผ ๋ฆฌํดํ๋ ๋ฉ์๋
public String getPass(String id) {
//์คํธ๋ง์ผ๋ก ๋ฆฌํด์ ํด์ผํ๊ธฐ์ ์คํธ๋ง๋ณ์ ์ ์ธ
String pass ="";
try {
getCon();
//์ฟผ๋ฆฌ ์ค๋น
String sql = "SELECT PASS1 FROM MEMBER WHERE id=?";
pstmt = con.prepareStatement(sql);
//?๊ฐ์ ๋งตํ
pstmt.setString(1, id);
//์ฟผ๋ฆฌ ์คํ
rs = pstmt.executeQuery();
if(rs.next()) {
pass = rs.getString(1); //ํจ์ค์๋ ๊ฐ์ด ์ ์ฅ๋ ์ปฌ๋ผ ์ธ๋ฑ์ค
}
//์์๋ฐ๋ฉ
con.close();
} catch (Exception e) {
e.printStackTrace();
}
//๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํด
return pass;
}
//ํ ํ์์ ์ ๋ณด๋ฅผ ์์ ํ๋ ๋ฉ์๋
public void updateMember(MemberBean bean) {
try {
getCon();
//์ฟผ๋ฆฌ์ค๋น
String sql = "UPDATE MEMBER SET email=?, tel=? WHERE id=?";
//์ฟผ๋ฆฌ์คํ ๊ฐ์ฒด ์ ์ธ
pstmt = con.prepareStatement(sql);
//?๊ฐ์ ๋งตํ
pstmt.setString(1, bean.getEmail());
pstmt.setString(2, bean.getTel());
pstmt.setString(3, bean.getId());
//์ฟผ๋ฆฌ ์คํ
pstmt.executeUpdate();
//์์ ๋ฐ๋ฉ
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//ํ ํ์์ ์ญ์ ํ๋ ๋ฉ์๋
public void deleteMember(String id) {
try {
getCon();
//์ฟผ๋ฆฌ์ค๋น
String sql = "DELETE FROM MEMBER WHERE id=?";
//์ฟผ๋ฆฌ์คํ ๊ฐ์ฒด ์ ์ธ
pstmt = con.prepareStatement(sql);
//?๊ฐ์ ๋งตํ
pstmt.setString(1, id);
//์ฟผ๋ฆฌ ์คํ
pstmt.executeUpdate();
//์์ ๋ฐ๋ฉ
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}