콛잉합니다
20
2021-09-23 11:22:37
0
101

JSP 입문자 질문입니다..


열심히 구글링하며 해결해보려 했지만 해결이 안되어 질문 올립니다 ㅠㅠ

eclipse와 mysql 사용중이며 os는 win10입니다.

DB정보를 불러오고 수정/삭제 기능 구현을 연습 중인데..

불러오는 것과  수정 버튼 클릭시 정보 가져오기까지는 되는데..

수정이나 삭제가 계속 실패로 떠서 질문드립니다.

DAO와 DTO 클래스를 따로 만들어서 진행중인데 쿼리문이 안넘어 가는것인지..

아래는 DAO클래스 코드입니다


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

public class MemberDAO {
	private Connection conn;		//연결 객체
	private PreparedStatement ps;	//전송 객체
	private ResultSet rs;			//결과 객체
	
	//DB 접속
	public Connection getConn() {
		String url = "jdbc:mysql://localhost:3306/";
		String user = "";
		String password = "";
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection(url, user, password);
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("getConn() Exception!!!");
		}
		return conn;
	} //getConn()
	
	//회원가입
	public int memberInsert(MemberDTO dto) {
		conn = getConn();
		String sql = "INSERT INTO student VALUES(?, ?, ?, ?, ?)";
		int succ = 0;
		try {
			ps = conn.prepareStatement(sql);
			ps.setString(1, dto.gethakbun());
			ps.setString(2, dto.getname());
			ps.setInt(3, dto.getyear());
			ps.setString(4, dto.getdept());
			ps.setString(5, dto.getAddr());
			succ = ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("memberInsert() Exception!!!");
		} finally {
			dbClose();
		}
		return succ;
	} //memberInsert()
	
	// 전체 목록 검색
	public ArrayList<MemberDTO> memberSearchAll() {
		conn = getConn();
		String sql = "SELECT * FROM student";
		ArrayList<MemberDTO> list = new ArrayList<>();
		try {
			ps = conn.prepareStatement(sql);
			rs = ps.executeQuery();
			while(rs.next()) {
				String hakbun = rs.getString("hakbun");
				String name = rs.getString("name");
				int year = rs.getInt("year");
				String dept = rs.getString("dept");
				String addr = rs.getString("addr");
				MemberDTO dto = new MemberDTO(hakbun, name, year, dept, addr);
				list.add(dto);
			}
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("memberSearchAll() Exception!!!");
		} finally {
			dbClose();
		}
		return list;
	} // memberSearchAll()
	
	//회원 정보 삭제
	public int memberDelete(String hakbun) {
		conn = getConn();
		String sql = "DELETE FROM student WHERE hakbun = ?";
		int succ = 0;
		try {
			ps = conn.prepareStatement(sql);
			ps.setString(1, hakbun);
			succ = ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("memberDelete() Exception!!!");
		} finally {
			dbClose();
		}
		return succ;
	}// memberDelete()
	
	//학번 검색
	public MemberDTO getById(String hakbun) {
		conn = getConn();
		String sql = "SELECT * FROM student WHERE hakbun = ?";
		MemberDTO dto = null;
		try {
			ps = conn.prepareStatement(sql);
			ps.setString(1, hakbun);
			rs = ps.executeQuery();
			if (rs.next()) {
				hakbun = rs.getString("hakbun");
				String name = rs.getString("name");
				int year = rs.getInt("year");
				String dept = rs.getString("dept");
				String addr = rs.getString("addr");
				dto = new MemberDTO(hakbun, name, year, dept, addr);
			}
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("getById() Exception!!!");
		} finally {
			dbClose();
		}
		return dto;
	} //getById()
	public int memberUpdate(MemberDTO dto) {
		conn = getConn();
		String sql = "UPDATE student SET name = ?, year = ?, dept = ?, addr = ? WHERE hakbun = ?";
		int succ = 0;
		try {
			ps = conn.prepareStatement(sql);
			ps.setString(1, dto.getname());
			ps.setInt(2, dto.getyear());
			ps.setString(3, dto.getdept());
			ps.setString(4, dto.getAddr());
			ps.setString(5, dto.gethakbun());
			succ = ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("memberUpdate() Exception!!!");
		} finally {
			dbClose();
		}
		return succ;
	} // memberUpdate()
	
	//DB 접속 해제
	public void dbClose() {
		try {
			if(rs != null) rs.close(); 
			if(ps != null) ps.close();
			if(conn != null) conn.close();
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("dbClose() Exception!!!");
		}
	} //dbClose()
}// class


아래는 삭제요청 처리하는 jsp코드입니다.


<%
request.setCharacterEncoding("utf-8");
String hakbun = request.getParameter("hakbun");
MemberDAO dao = new MemberDAO();
int succ = dao.memberDelete(hakbun);

if(succ > 0) {
	out.println("<script> alert('삭제 성공!');");
	out.println("location.href = 'update.jsp'; </script>");
} else {
	out.println("<script> alert('삭제 실패!');");
	out.println("location.href = 'update.jsp'; </script>");
}
%>


mysql워크벤치 에서 쿼리문을 수행하면 제대로 작동을 하는데.

코드로 돌리면 왜 안되는지 모르겠네요 ㅜㅜ

succ>0 이 안된다는 것은 아무런 변화도 일어나지 않았다는 뜻으로 알고 있는데...

뭐가 문제인지 봐주시면 감사하겠습니다 


0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.