4. Servlet을 사용하여 오라클 DB 테이블 row추가
* User클래스 작성
@ Source
public class User {
private String usernm; //이름
private String userid; //아이디
private String userpw; //비밀번호
private String email; //이메일
private String address; //주소
private Date regdate; //가입일
private int seq; //시퀀스
//setter/getter 작성
public String getUsernm() {
return usernm;
}
public void setUsernm(String usernm) {
this.usernm = usernm;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getUserpw() {
return userpw;
}
public void setUserpw(String userpw) {
this.userpw = userpw;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Date getRegdate() {
return regdate;
}
public void setRegdate(Date regdate) {
this.regdate = regdate;
}
public int getSeq() {
return seq;
}
public void setSeq(int seq) {
this.seq = seq;
}
}
* DBconnect 클래스 작성
@ Source
public class DBconnect {
private static Connection con;
private DBconnect(){}
public static Connection getConnection() {
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
if(con==null){
con = DriverManager.getConnection(url, "test", "1111");
}
}catch(Exception ex){System.out.println("DB서버 연결실패!");
}
return con;
}// getConnection() end
}
* UserReg 클래스 작성
@ Source
public class UserReg {
private Connection con;
private Statement stmt;
private PreparedStatement pstmt;
private ResultSet rs;
private String sql;
private int result;
public UserReg(){
con = DBconnect.getConnection();
}
public int insert(User user){
sql = "INSERT INTO t_member " +
"values( T_MEMBER_SEQ.NEXTVAL, ? , ? , ? , ? , ? , SYSDATE)";
try {
//쿼리 실행을 위해 미리 스테이트먼트 객체 준비
// ? ? ? ? ?
// 1 2 3 4 5
//USERID USERPW USERNM ADDRESS EMAIL
pstmt = con.prepareStatement(sql);
pstmt.setString(1, user.getUserid());
pstmt.setString(2, user.getUserpw());
pstmt.setString(3, user.getUsernm());
pstmt.setString(4, user.getAddress());
pstmt.setString(5, user.getEmail());
//insert 쿼리 실행
result = pstmt.executeUpdate();
System.out.println("result:" + result);
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}//생성자
}
* UserRegServlet.java 수정
@ Source
public class UserRegServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
request.setCharacterEncoding("UTF-8");
//사용자가 입력한 값을 request 객체에서 꺼내서
//User 객체에 저장
User user = new User();
user.setUsernm(request.getParameter("usernm"));
user.setUserid(request.getParameter("userid"));
user.setUserpw(request.getParameter("userpw"));
user.setEmail(request.getParameter("email") + "@" + request.getParameter("email2"));
user.setAddress(request.getParameter("address"));
PrintWriter out = response.getWriter();
//User 객체를 매개변수로 UserReg 클래스의
//insert 메서드 호출
UserReg ur = new UserReg();
int result = ur.insert(user);
String url ="";
result = 2; //임의의 값으로 일단 저장
//만약에 회원 가입에 성공하면
// 로그인 페이지로 이동 링크 출력
if(result == 1){
url = "user/login.html";
// RequestDispatcher를 이용하여 로그인 페이지로 이동
RequestDispatcher dispatch = request.getRequestDispatcher(url);
dispatch.forward(request, response);
}else { // 그렇지 않으면
url = "user/regForm.html";
// sendRedirect()를 이용하여 다시 회원가입 페이지로 이동
response.sendRedirect(url);
}
}
}
* regform.html에 form