2018. 5. 21. 23:40 개발

MemberDTO

public class MemberDTO {

private String userid;

private String passwd;

private String name;

private String email;

private Date join_date;

}


public interface MemberDAO {

public boolean loginCheck(MemberDTO dto);

public MemberDTO viewMember(String userid);

}


public interface MemberService {

public boolean loginCheck(MemberDTO dto, HttpSession session);

public void logout(HttpSession session);

public MemberDTO viewMember(String userid); 

}




create table cart (

cart_id number not null primary key,

userid varchar2(50) not null,

product_id number not null,

amount number default 0

);


alter table cart add constraint cart_userid_fk

foreign key(userid) references member(userid);


alter table cart add constraint cart_productid_fk

foreign key(product_id) references product(product_id);



public class CartDTO {

private int cart_id;

private String userid;

private String name;

private int product_id;

private String product_name;

private int price;

private int money;

private int amount;

}


public interface CartDAO {

public List<CartDTO> cartMoney();

public void insert(CartDTO dto);

public List<CartDTO> listCart(String userid);

public void delete(int cart_id);

public void deleteAll(String userid);

public void update(int cart_id);

public int sumMoney(String userid);

// 장바구니에 이미 상품이 담겼는지 확인

public int countCart(String userid, int product_id);

// 장바구니 수량 변경

public void updateCart(CartDTO dto);

public void modifyCart(CartDTO dto);

}


select cart_id, m.userid, m.name, p.product_id, product_name, amount, price*amount money

from member m, cart c, product product_id

where m.userid=c.userid and p.product_id=c.product_id

and m.userid = #{userid}

'개발' 카테고리의 다른 글

admin table  (0) 2018.05.25
여러값을 배열로 받아서 처리  (0) 2018.05.24
spring 파일 업로드  (0) 2018.05.21
Spring 흐름  (0) 2018.05.21
부모 추상 인터페이스  (0) 2018.04.03
Posted by 커다란꼬꼬마

2018. 5. 21. 16:02 개발

spring 파일 업로드

<!-- 파일 업로드 관련 라이브러리 -->

<dependency>

<groupId>commons-fileupload</groupId>

<artifactId>commons-fileupload</artifactId>

<version>1.3.3</version>

</dependency>

<!-- 이미지 썸네일을 만들어주는 라이브러리 -->

<dependency>

<groupId>org.imgscalr</groupId>

<artifactId>imgscalr-lib</artifactId>

<version>4.2</version>

</dependency>



상품

public class ProductDTO {

private int productId;

private String productName;

private int price;

private String description;

private String pictureUrl;

private MultipartFile file1; // 첨부 파일

}


public interface ProductDAO {

List<ProductDTO> listProduct();

ProductDTO detailProduct(int productId);

void updateProduct(ProductDTO dto);

void deleteProduct(int productId);

void insertProduct(ProductDTO dto);

String fileInfo(int productId);

}


<td><fmt:formatNumber value="${row.price}" pattern="#,###" /></td>


<select name="amount">

<c:forEach begin="1" end="10" var="i">

<option value="${i}">${i}</option>

</c:forEach>

</select>

'개발' 카테고리의 다른 글

여러값을 배열로 받아서 처리  (0) 2018.05.24
MemberDTO  (0) 2018.05.21
Spring 흐름  (0) 2018.05.21
부모 추상 인터페이스  (0) 2018.04.03
Garbage Collector  (0) 2018.03.27
Posted by 커다란꼬꼬마

2018. 5. 21. 12:19 개발

Spring 흐름

MemberController -> MemberService -> MemberDAO -> SqlSession -> memberMapper.xml


@Inject

MemberDAO memberDao;


MemberDAO memberDao = new MemberDAOImpl();


위의 두 코드가 같은 의미


public class MemberController {

@Inject

MemberService memberService;

}


// @ModelAttribute : 폼에서 전달된 값을 저장하는 객체

@RequestMapping("member/insert.do")

public String insert(@ModelAttribute MemberDTO dto) {

return "redirect:/member/list.do";

}


@ModelAttribute 생략가능, insert.jsp에서 폼에서 넣긴 값을 받아서 넘기는 것.


public String insert(@RequestParam String userid,

@RequestParam String passwd) {

return "redirect:/member/list.do";

}


// 이런식으로도 사용가능 하지만 @ModelAttribute가 코드의 양을 줄일수 있어


insert.do -> MemberController -> MemberService -> MemberServiceImpl 

-> MemberDAO -> MemberDAOImpl -> memberMapper.xml


service는 계좌이체, 상품구매, 결제 등 제공되는 서비스의 단위


@Transactional

void method(){

memberDao.insertMember(dto);

memberDao.deleteMemberMember(dto.getUserid());

}

// 이렇게 되면 deleteMemberMember하다가 오류가 뜨면 전체가 rollback


<td><a href="${path}/member/view.do?userid=${row.userid}">${row.name}</a></td>


<input name="userid" value="${dto.userid}" readonly>


비밀번호 체크 sql
select count(*) from member
where userid = #{userid} and passwd = #{passwd}

컨트롤러 : @Controller, @RestController
서비스 : @Service 
모델(dao) : @Repository

dto -> json opensource lib
https://www.lesstif.com/pages/viewpage.action?pageId=24445183

servlet-conn
<resources location="/WEB-INF/views/include" mapping="/include/**"></resources>
<resources location="/WEB-INF/views/images" mapping="/images/**"></resources>

base-package = "com.example.spring02"
com.example.spring02 패키지 포함
base-package = "com.example.spring02.*"
com.example.spring02 패키지 제외

com.example.spring02.HomeController.java
com.example.spring02.memo.HomeController.java


<td><fmt:formatDate value="${row.post_date}" pattern="yyyy-MM-dd HH:mm:ss"/></td>


restful 주소 처리시
@RequestMapping("view/{idx}")
public ModelAndView view(@PathVariable int idx, ModelAndView mav) {
mav.setViewName("memo/view");
mav.addObject("dto", memoService.memo_view(idx));
return mav;
}



public interface MemoService {

public List<MemoDTO> list();

public void insert(MemoDTO dto);

public MemoDTO memo_view(int idx);

public void update(MemoDTO dto);

public void delete(int idx);

}

'개발' 카테고리의 다른 글

MemberDTO  (0) 2018.05.21
spring 파일 업로드  (0) 2018.05.21
부모 추상 인터페이스  (0) 2018.04.03
Garbage Collector  (0) 2018.03.27
TDD와 BDD 차이점  (0) 2018.03.24
Posted by 커다란꼬꼬마

블로그 이미지
커다란꼬꼬마

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.4
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

최근에 올라온 글

최근에 달린 댓글

글 보관함