바. 상품등록, 수정, 삭제 실습 예제
1) 상품관리_관리자 테이블
drop table admin cascade constraints;
create table admin (
userid varchar2(50) not null,
passwd varchar2(50) not null,
name varchar2(50) not null,
email varchar2(100),
join_date date default sysdate,
primary key(userid)
);
계정을 추가한다.
insert into admin (userid, passwd, name
) values ( 'admin', '1234', '관리자' );
commit;
회원과 관리자를 같이 또는 다른 테이블로 관리하는 경우가 있다
권한을 줄때 1~9까지를 줘서 9면 최고관리자 1이면 일반관리자 이렇게 할 수 있다.
지금은 따로 admin 테이블을 만들어서 관리한다.
2) model.admin.AdminDAO.java
public interface AdminDAO {
public String loginCheck(MemberDTO dto);
}
3) model.admin.AdminDAOImpl.java
@Repository
public class AdminDAOImpl implements AdminDAO {
@Inject
SqlSession sqlSession;
@Override
public String loginCheck(MemberDTO dto) {
return sqlSession.selectOne("admin.login_check", dto);
}
}
4) mappers/mapper/adminMapper.xml
<mapper namespace="admin">
<select id="login_check" resultType="String">
select name from admin
where userid=#{userid} and passwd=#{passwd}
</select>
5) service.admin.AdminService.java
public interface AdminService {
public String loginCheck(MemberDTO dto);
}
6) service.admin.AdminServiceImpl.java
@Service
public class AdminServiceImpl implements AdminService {
@Inject
AdminDAO adminDAO;
@Override
public String loginCheck(MemberDTO dto) {
return adminDAO.loginCheck(dto);
}
}
menu.jsp에서 관리자 로그인을 만든다.
원래는 따로 페이지를 만들어야 한다.
일반 사용자 옆에 임시로 만든다. (/admin/login.do 호출)
7) controller.admin.AdminController.java
@Controller
@RequestMapping("/admin/*")
public class AdminController {
@Inject
AdminService adminService;
@RequestMapping("login.do")
public String login() {
return "admin/login";
}
@RequestMapping("login_check.do")
public ModelAndView login_check(MemberDTO dto, HttpSession session, ModelAndView mav) {
String name = adminService.loginCheck(dto);
if(name != null) {
session.setAttribute("admin_userid", dto.getUserid());
session.setAttribute("admin_name", name);
session.setAttribute("userid", dto.getUserid());
session.setAttribute("name", name);
mav.setViewName("admin/admin");
mav.addObject("message", "success");
} else {
mav.setViewName("admin/login");
mav.addObject("message", "error");
}
return mav;
}
}
/vies/admin/login.jsp페이지를 만든다. (/admin/login_check.do 호출)
/vies/admin/admin.jsp페이지를 만든다.
로그아웃은 기존 로직을 그대로 쓴다.
10) views/include/admin_menu.jsp
관리자 메뉴페이지는 따로 만든다.
관리자 로그인 후 상품 등록
상품등록시 이미지 처리 문제 - 바로 반영이 안되고 새로고침해야 됨.
개발서버디렉토리
D:\workspace-softlife\spring02
배포 디렉토리
D:\workspace-softlife\.metadata\.plugins\org.eclipse.wst.server.core\tmp5\wtpwebapps\spring02\
D:\workspace-softlife\spring02에 있는 내용을 배포 디렉토리에 옮겨서 배포를 할 수 있다.
이미지를 개발서버 디렉토리에 올리는 것이 아니라
배포 디렉토리에 올리면 새로고침하지 않아도 화면에 바로 반영된다.
배포 디렉토리로 이미지가 바로 올라간다 (개발디렉토리에는 올라가지 않음)
상품명 밑에 편집버튼 추가
편집버튼을 누르면 아래와 같이 호출한다.
http://localhost:8080/spring02/shop/product/edit/6
컨트롤러에서 받을때는
@PathVariable("edit/{product_id}")로 받는다.
'프로그래밍 > JAVA & SPRING' 카테고리의 다른 글
[LifeSoft] spring 12강 Google Chart, JFree Chart (0) | 2020.06.07 |
---|---|
[LifeSoft] spring 11강 itextpdf를 활용한 pdf 파일 만들기 (0) | 2020.06.07 |
[LifeSoft] spring 9강 로그인/로그아웃 처리, 장바구니 기능 만들기 (0) | 2020.06.07 |
[LifeSoft] spring 8강 상품관리(상품목록, 상세화면) (0) | 2020.06.07 |
[LifeSoft] spring 7강 상품테이블 만들기, file upload 테스트 (0) | 2020.06.07 |