package com.shop.model;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class JoinDAO {
public Connection dbCon(){
Connection con = null;
try{
Context ctx = new InitialContext(); // 톰캣에 namingContext가 있다. 자원을 가져오기 위해서는
Context tomcat = (Context)ctx.lookup("java:comp/env"); // 톰캣에 있는 컨텍스를 가져온다.
DataSource ds = (DataSource)tomcat.lookup("jdbc/oracle"); // 데이터 소스는 톰캣이 시작할 때 생성한다. maxidle 최소 10개 생성.
// server.xml에서 확인한다.
con = ds.getConnection(); // 데이터 소스로부터 url, passwd를 가져온다.
}catch(Exception e){
e.printStackTrace();
}
return con;
}
public void dbClose(Connection con, Statement stat, ResultSet rs){
try{
if(rs!=null)rs.close();
if(stat!=null)stat.close();
if(con!=null)con.close();
}catch(Exception e){
e.printStackTrace();
}
} // dbClose() end
public boolean dupIdCheck(String uid){
// 중복 ID체크 수행 메서드
boolean success = false;
Connection con = null;
PreparedStatement stat = null;
ResultSet rs = null;
String sql = "select * from userinfo where userid=?";
try{
con = dbCon();
stat = con.prepareStatement(sql);
stat.setString(1,uid);
rs = stat.executeQuery();
while(rs.next()){
success = true;
} // while end
}catch(Exception e){
e.printStackTrace();
}finally{
dbClose(con,stat,rs);
}
return success;
}
public UserVo joinProc(UserVo user){
// 회원가입 처리 메서드
UserVo vo = null;
Connection con = null;
PreparedStatement stat = null;
StringBuffer sql = new StringBuffer();
sql.append("insert into userinfo (userid,passwd,username");
sql.append(",birth,address,phone,mobile,blog,email,gender");
sql.append(",sms,letter,interest) values");
sql.append("(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); ");
try{
con = dbCon();
stat = con.prepareStatement(sql.toString());
stat.setString(1,user.getUserid());
stat.setString(2,user.getPasswd());
stat.setString(3,user.getUsername());
stat.setDate(4,user.getBirth());
stat.setString(5,user.getAddress());
stat.setString(6,user.getPhone());
stat.setString(7,user.getMobile());
stat.setString(8,user.getBlog());
stat.setString(9,user.getEmail());
stat.setString(10,String.valueOf(user.getGender()));
stat.setString(11,String.valueOf(user.getSms()));
stat.setString(12,String.valueOf(user.getLetter()));
stat.setString(13,user.getInterest());
if(stat.executeUpdate()==0){
user=null;
}
}catch(Exception e){
e.printStackTrace();
}finally{
dbClose(con,stat,null);
}
return vo;
} // joinProc() end
}