[MVC] 쇼핑몰관리페이지 만들기 -서비스, 인터페이스 추가

🐷Jinie (juniorDeveloper)·2020년 11월 2일
1

JSP/MVC/SPRING

목록 보기
22/81

1. 필요한 파일 만들기

  • DTO, DAO, Service, Controller, DBConnect 등 필요한 패키지와 클래스를 생성한다.

2. form.jsp

  • jsp를 이용해서 form의 형태를 가진 페이지를 만든다.

3. DBConn.java

  • 데이터베이스 연동을 해야 회원등록시 데이터베이스로 저장할 수 있다.
  • 따라서, DBConn.java파일을 만든다.
  • 데이터베이스 연결은 '싱글톤패턴'을 이용한다.
package conn;
import java.sql.Connection;
import java.sql.DriverManager;

public class DBConn {
	private static DBConn db = new DBConn(); //객체생성
	private DBConn() {} //생성자
	public static DBConn getInstance() { // 메서드
		return db;
	}
	
	public Connection getConnect(){
		Connection con=null;
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection ("jdbc:oracle:thin:@//localhost:1521/xe","system","1234");
		} catch (Exception e) {
			e.printStackTrace();
		} 
		
		return con;
	}

}

4. form.jsp에서 action설정하기

action="/MVC2/FormController"
//결과  :  http://localhost:8081/MVC2/FormController?custno=111111&custname=222&phone=333&address=444&joindate=&grade=&city=
  • action=/프로젝트명/컨트롤러명 으로 컨트롤러에 값을 넘겨준다.
  • 위쪽 코드의 결과를 보면 잘 넘어가는 것을 확인할 수 있다.

5. FormController에서 form.jsp 값 받고 처리하기

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		
		String custno = request.getParameter("custno");
		String custname = request.getParameter("custname");
		String phone = request.getParameter("phone");
		String address = request.getParameter("address");
		String joindate = request.getParameter("joindate");
		String grade = request.getParameter("grade");
		String city = request.getParameter("city");
		
	}
  • request.getParameter를 이용해서 값을 받고 String변수안에 받아온 값을 넣어주었다.
MemberVo m = new MemberVo();
		
		m.setCustno(custno);
		m.setCustname(custname);
		m.setPhone(phone);
		m.setAddress(address);
		m.setJoindate(joindate);
		m.setGrade(grade);
		m.setCity(city);
  • 이때, MemberVo.java 파일에서 custno의 형을 int로 지정해주었기 때문에 형이 맞지 않는다는 오류가 뜬다.
  • 형을 맞춰줘야한다.
int custno = Integer.parseInt(request.getParameter("custno"));
//String형인 값을 integer형으로 변경해줬다.
  • 형을 맞춰주면 오류가 해결된다.

6. Interface추가하기 (DAO, Service)



  • 만들어진 Interface를 사용하기위해 implements
  • Interface에 만들어둔 메소드는 사용해야한다.
    Interface에 없는 메서드를 만들어서 사용하는 것은 가능하지만, Interface에 만들어둔 메서드를 사용하지 않을 수는 없다.
  • Interface형 변수명 = new Impli(); 로 객체를 생성한다.
  • Interface에는 메서드가 들어있다.
  • 즉, 메서드를 정의해주기위한 공간이다.
  • FormController에서 객체를 생성할 때도 마찬가지로 Interface형 변수명 = new Impli(); 로 객체를 생성한다.

7. FormController에서 메서드 이용하기

  • Controller는 Service를 호출하고
FormService serv = new FormServiceImpli(); 
// Service객체를 생성한다.
		serv.insert(m);
        //객체의 메서드인 insert를 호출한다.
  • Service는 DAO를 호출한다.
  • dao에 있는 insert 메서드를 Service에서 가져오고 Service에서 가져온 DAO의 Insert메서드를 Controller에서 가져온다.

8. DAO에서 DBConn.java이용하기

  • DAO에서 실행할 쿼리문의 작동을 위해 DBConn의 메서드를 이용해야한다.
  • DBConn과 연동이 완료되었으면, 실행할 쿼리문을 작성한다.
try{

		       sql = " insert  into  member_tbl_02 ";
		       sql = sql + " (custno, custname, phone, address, joindate,  grade,  city ) " ;
		       sql = sql + " values(?,?,?,?,?,?,?) "; 

		       pstmt = con.prepareStatement(sql);  
		       pstmt.setInt(1, m.getCustno());
		       pstmt.setString(2,m.getCustname());
		       pstmt.setString(3,m.getPhone());
		       pstmt.setString(4,m.getAddress());
		       pstmt.setString(5, m.getJoindateS());
		       pstmt.setString(6, m.getGrade());
		       pstmt.setString(7, m.getCity());
		       pstmt.executeUpdate();
		       
		} catch (Exception e) {
			e.printStackTrace();
		} finally{
			if (pstmt != null){
				try {
					pstmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (con != null){
			  	try {
					con.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}

9. Insert Table 확인하기


  • database에 값이 잘 들어간 것을 확인할 수 있다.
profile
ᴘᴇᴛɪᴛs ᴅᴇ́ᴠᴇʟᴏᴘᴘᴇᴜʀ. ᴘʀᴏɢʀᴀᴍᴍᴀᴛɪᴏɴ = ᴘʟᴀɪsɪʀ 💕

0개의 댓글