별초롱언니 2025. 6. 6. 00:51
package dto;

public class member {
	private String id;
	private String pw;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPw() {
		return pw;
	}
	public void setPw(String pw) {
		this.pw = pw;
	}
	@Override
	public String toString() {
		return "member [id=" + id + ", pw=" + pw + "]";
	}
	
}

dto/member.java

 

package dao;

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

import dto.member;

public class member_repository {
	//싱글턴 패턴 : member_repository의 객체를 1개만 유지할수있음. 남이 new못함
	private static member_repository repository = new member_repository();
	private member_repository() {}
	public static member_repository getInstance() {
		return repository;
	}
	
	//create
	public void save(member mb) {
		System.out.println(mb.toString());
		//Connection 객체 생성 : 데이터베이스연결 
		System.out.println("저장");
		Connection conn = null;
		String url="jdbc:mysql://localhost:3306/test_crud";
		String id="root";
		String pw="1234";
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn= DriverManager.getConnection(url,id,pw);
			System.out.println("데이터 베이스 연결됨");
		}catch(Exception e) {}
		
		//PreparedStatement 객체생성 : 쿼리 전송 
		PreparedStatement pstmt =null;
		String sql = "insert into member values(?,?)";
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, mb.getId());
			pstmt.setString(2, mb.getPw());
			pstmt.executeUpdate();
		}catch(Exception e) {}
	}
	
	//read_all
	public ArrayList<member> readall(){
		ArrayList<member> allmember=new ArrayList<member>();
		ResultSet rs=null;
		//Connection 객체 생성 : 데이터베이스연결 
		Connection conn = null;
		String url="jdbc:mysql://localhost:3306/test_crud";
		String id="root";
		String pw="1234";
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn= DriverManager.getConnection(url,id,pw);
		}catch(Exception e) {}
		
		//PreparedStatement 객체생성 : 쿼리 전송 
		PreparedStatement pstmt =null;
		String sql = "select * from member";
		try {
			pstmt = conn.prepareStatement(sql);
			rs = pstmt.executeQuery();
			while(rs.next()) {
				String rsid = rs.getString("id"); //id컬럼
				String rspw = rs.getString("pw"); //pw컬럼
				//가져온 데이터를 묶음
				member mb = new member();
				mb.setId(rsid);
				mb.setPw(rspw);
				//묶은 데이터를 ArrayList에 저장
				allmember.add(mb);
			}
		}catch(Exception e) {}
		
		return allmember;
	}
	
	//read_one
	public member readone(String rid) {
		member mb = new member();
		ResultSet rs=null;
		//Connection 객체 생성 : 데이터베이스연결 
		Connection conn = null;
		String url="jdbc:mysql://localhost:3306/test_crud";
		String id="root";
		String pw="1234";
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn= DriverManager.getConnection(url,id,pw);
		}catch(Exception e) {}
		
		//PreparedStatement 객체생성 : 쿼리 전송 
		PreparedStatement pstmt =null;
		String sql = "select * from member where id=?";
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, rid);
			rs = pstmt.executeQuery();
			while(rs.next()) {
				String rsid = rs.getString("id"); //id컬럼
				String rspw = rs.getString("pw"); //pw컬럼
				//가져온 데이터를 묶음
				mb.setId(rsid);
				mb.setPw(rspw);
			}
		}catch(Exception e) {}
		
		return mb;
	}

	public void update(String rid, String rpw) {
		Connection conn = null;
		String url="jdbc:mysql://localhost:3306/test_crud";
		String id="root";
		String pw="1234";
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn= DriverManager.getConnection(url,id,pw);
			System.out.println("데이터 베이스 연결됨");
		}catch(Exception e) {}
		
		//PreparedStatement 객체생성 : 쿼리 전송 
		PreparedStatement pstmt =null;
		String sql = "update member set pw=?  where id=?";
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, rpw);
			pstmt.setString(2, rid);
			pstmt.executeUpdate();
		}catch(Exception e) {}
	}
	
	public void delmember(String rid) {
		Connection conn = null;
		String url="jdbc:mysql://localhost:3306/test_crud";
		String id="root";
		String pw="1234";
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn= DriverManager.getConnection(url,id,pw);
			System.out.println("데이터 베이스 연결됨");
		}catch(Exception e) {}
		
		//PreparedStatement 객체생성 : 쿼리 전송 
		PreparedStatement pstmt =null;
		String sql = "delete from member where id=?";
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, rid);
			pstmt.executeUpdate();
		}catch(Exception e) {}
	}

}

dao.member_repository.java

 

Controller

package Controller;

import java.io.IOException;

import dao.member_repository;
import dto.member;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/create")
public class create_controller extends HttpServlet {
	
	member_repository repository = member_repository.getInstance();
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		RequestDispatcher ds = req.getRequestDispatcher("createForm.jsp");
		ds.forward(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//전처리 : form --> 데이터 전달받음 
		String id = req.getParameter("id");
		String pw = req.getParameter("pw");
		System.out.println(id+","+pw);
		//전처리 : 전달된 데이터를 묶음
		member mb = new member();
		mb.setId(id);
		mb.setPw(pw);
		
		//DB에 저장하기 위해서 repository클래스에게 전달.
		repository.save(mb);
		
		resp.sendRedirect("read_all");
	}
	
}

create.java

 

package Controller;

import java.io.IOException;
import java.util.ArrayList;

import dao.member_repository;
import dto.member;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/read_all")
public class readAll_controller extends HttpServlet {
	member_repository repository = member_repository.getInstance();
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("allread");
		//전처리 데이터 없음
		
		//모델이동
		ArrayList<member> allmember = repository.readall();
		
		//뷰이동
		req.setAttribute("allmember", allmember);
		RequestDispatcher ds = req.getRequestDispatcher("allview.jsp");
		ds.forward(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
	}
	
}

readAll.java

 

package Controller;

import java.io.IOException;

import dao.member_repository;
import dto.member;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/update")
public class update_controller extends HttpServlet {
	member_repository repository = member_repository.getInstance();
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//전처리
		String id = req.getParameter("id");
		//모델이동
		member mb = repository.readone(id);
		//뷰이동
		req.setAttribute("member", mb);
		RequestDispatcher ds = req.getRequestDispatcher("updateForm.jsp");
		ds.forward(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String id = req.getParameter("id");
		String pw = req.getParameter("pw");
		
		repository.update(id,pw);
		
		resp.sendRedirect("read_all");
	}
	
}

update.java

 

package Controller;

import java.io.IOException;

import dao.member_repository;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/delete")
public class delete_controller extends HttpServlet {
	
	member_repository repository = member_repository.getInstance();
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//전처리
		String id = req.getParameter("id");
		//모델이동
		repository.delmember(id);
		//뷰이동
		resp.sendRedirect("read_all");
		
		
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
	}
	
}

delete.java