실전편: SSM 기반 스톱워치 시스템의 DAO 계층 구축
솔리드 클래스 설계
이 시스템은 주로 두 가지 주요 실체류를 포함하는데 그것이 바로 Seckill[초살 상품의 실체류]와 Seckilled[초살 성공 실체류]이다.
Seckill(솔리드 클래스 초살)
// ID
private long seckillId;
//
private String name;
//
private int number;
//
private Date startTime;
//
private Date endTime;
//
private Date createTime;
Seckilled(솔리드 클래스 초살)
// ID
private long seckillId;
//
private long userPhone;
//
private short state;
//
private Date creteTime;
//
private Seckill seckill;
스톱킬에 성공한 실체류에는 복합적인 속성이 포함되어 있다. 디자인표에서 알 수 있듯이seckillId는 외부 키이기 때문에 전시할 때 선택한 스톱킬에 성공한 실체류에 상품의 정보를 포함할 수 있도록 Seckill의 대상을 설정하여 관련 정보를 저장한다.
DAO 레이어 인터페이스 설계
Mybatis를 사용하기 때문에 먼저 인터페이스를 설계해야 한다. 주로 두 개의 인터페이스를 포함한다. 하나는 상품을 조작하는 것이고 하나는 초살 성공 관련 정보를 조작하는 것이다.
SeckillDao
/**
*
*
* @param seckillId
* @param killTime
* @return >1,
*/
int reduceNumber(@Param("seckillId") long seckillId, @Param("killTime") Date killTime);
/**
* id
*
* @param seckillId
* @return
*/
Seckill queryById(long seckillId);
/**
*
*
* @param offset
* @param limit
* @return
*/
List queryAll(@Param("offset") int offset, @Param("limit") int limit);
SuccessKilledDao
/**
* ,
*
* @param seckillId
* @param userPhone
* @return
*
*/
int insertSuccessKilled(@Param("seckillId") long seckillId, @Param("userPhone") long userPhone);
/**
* id SuccessKilled
*
* @param seckillId
* @param userPhone
* @return
*/
SuccessKilled queryByIdWithSeckill(@Param("seckillId") long seckillId, @Param("userPhone") long userPhone);
여기서 주요한 것은 모두 소개했습니다. 다음은 몇 가지 설정 파일의 작성입니다. 마퍼 파일의 작성과 Spring Spring MVC Mybatis의 일부 설정을 포함합니다. 모두 대체적으로 같은 설정이기 때문에 원본 코드의 구체적인 주소와 상세한 설명을 드리겠습니다. 만약에 모르는 것이 있으면 댓글로 해답을 남겨주세요.
Mapper 파일 구성
SeckillDao.xml
UPDATE seckill
SET number = number - 1
WHERE
seckill_id = #{seckillId}
AND start_time #{killTime}
AND end_time >= #{killTime}
AND number > 0
SuccessKilledDao.xml
INSERT ignore INTO success_killed (seckill_id, user_phone, state)
VALUES (#{seckillId}, #{userPhone}, 0)
Mybatis 구성 파일
데이터베이스 구성 파일
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/seckill?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=
로그 프로파일
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
Spring 구성 파일
여기까지만 하면 DAO층 구축이 끝났습니다. 여러분의 의견을 환영합니다.
구체적인 코드 주소는https://github.com/lctiter/seckill
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.