본문 바로가기

프로그래밍 기초/SPRING

(14)
[Spring]custom exception만들고 사용하기 /404,500에러 처리페이지만들기 custom exception만들고 사용하기 NoDeliveryException-커스텀익셉션 클래스 만들기. DataAccessexception을 상속받는다. public class NoDeliveryException extends DataAccessException{ //생성자의 인자로 예외메세지를 전달받아서 public NoDeliveryException(String msg) { //부모생성자에 전달하면 super(msg); //message 필드에 저장된다. } } exception controller NoDeliveryException이 발생되면 exception이라는 이름으로 NoDeliveryException이 전달되게하고 error/data_access로 포워드이동시킨다. @Controlle..
[Spring]트랜잭션과 예외 처리 트랜잭션(transaction)이란? 데이터베이스는 다수의 사용자가 동시에 사용하더라도 항상 모순이 없는 정확한 데이터를 유지해야 한다. 그리고 데이터베이스에 장애가 발생하더라도 빠른 시간 내에 원래의 상태로 복구할 수 있어야 한다. 데이터베이스 관리 시스템은 데이터베이스가 항상 정확하고 일관된 상태를 유지할 수 있도록 다양한 기능을 제공하는데, 그 중심에는 트랜잭션이 있다. 트랜잭션이라는 것을 관리함으로써 데이터베이스의 회복과 병행 제어가 가능해져 결과적으로 데이터베이스가 일관된 상태를 유지할 수 있게 되는 것이다. 트랜잭션(transaction)은 하나의 작업을 수행하기 위해 필요한 데이터베이스의 연산들을 모아놓은 것으로, 데이터베이스에서 논리적인 작업의 단위가 된다. 트랜잭션은 장애가 발생했을 때 ..
[Spring]게시판에 댓글 기능 구현 댓글 테이블,시퀀스 만들기 Quantum DB-댓글을 담을 테이블과 시퀀스 생성 -- 댓글 정보를 저장할 테이블 CREATE TABLE board_cafe_comment( num NUMBER PRIMARY KEY, -- 댓글의 글번호 writer VARCHAR2(100), -- 댓글 작성자 content VARCHAR2(500), -- 댓글 내용 target_id VARCHAR2(100), -- 댓글의대상이되는아이디(글작성자) ref_group NUMBER, -- 댓글 그룹번호 comment_group NUMBER, -- 원글에 달린 댓글 내에서의 그룹번호 deleted CHAR(3) DEFAULT 'no', -- 댓글이 삭제 되었는지 여부 regdate DATE -- 댓글 등록일 ); CREATE bo..
[Spring]게시물 이전글,다음글 보기 기능 구현 목표 글 목록보기에서 제목을 누르면 들어가지는 detail(카페 글 상세보기)에서 이전글과 다음글을 볼 수 있는 링크를 단다. 이 때 글 목록에 검색조건이 있는 상태라면 detail에서도 적용시킨다. 게시물 이전글,다음글 보기 기능 구현 DTO DTO에 이전글과 다음글을 담을 변수 추가한다. private int prevNum; //이전글의 글번호를 담을 필드 private int nextNum; //다음글의 글번호를 담을 필드 detail.jsp 글자세히 보기인 detail.jsp에 이전글과 다음글이 있는 경우 보이는 링크를 추가한다.이때 condition과 keyword parameter값을 넘겨준다. 이전글 다음글 Controller Controller에서 datail의 요청을 어떻게 처리할지 정의..
[spring]Anotation모음 @Configuration: 설정의 역할을 하는 클래스를 지정. ​ @ComponentScan: spring 어노테이션을 찾을 패키지 지정. ​ @PostConstruct: Configuration에서 메소드 생성 시 void init() 이라는 메소드 위에 붙이면 초기 spring boot 실행 시 자동으로 코드 수행을 진행합니다. ​ @Component: spring 객체로 사용할 클래스를 지정. 이를 상속하는 @Service, @Repository, @Controller가 있음. (호출되는 순서가 다름) ​ @Bean: configuration시 초기에 한번씩 수행됨. autowired를 통해 사용할 수 있는 메소드. ​ @Qualifier: 상속된 클래스가 여러개인 경우 어떤 클래스를 이용할 것인..
[Spring]Mapper에서 별칭(Aliase)지정해주기 Mapper에서 자주 사용하는 Dto의 주소를 별칭을 이용하여 편하게 사용할 수 있다. 별칭지정은 Configuration.xml에서 해준다. 1.Configuration.xml에 아래와 같이 configuration을 추가하여 별칭을 지정한다. 2.MemberMapper.xml의 resultType과 prameterType에서 지정한 별칭을 사용해줄 수 있다. SELECT num,name,addr FROM member ORDER BY num ASC INSERT INTO member (num,name,addr) VALUES(member_seq.NEXTVAL,#{name},#{addr}) alias사용 전에는 "com.gura.spring05.member.dto.MemberDto" 을 전부 입력해야 했는데..
[SPRING] mybatis를 활용한 요청 응답 구조와 dao,service,controller의 역활 mybatis를 활용한 요청 응답 구조 dao가 service기능까지 할 때 service를 구분했을 때 DAO dao,service,controller의 역활 signupform을 통하여 입력받은 dto정보를 post방식으로 전송받은 signup.do를 처리한다고 가정해서 아래의 예시를 진행하겠다. Contorller : 컨트롤러는 어플리케이션이 제공하는 기능과 사용자 요청을 연결하는 매개체로서 기능제공을 위한 로직 을 직접 수행하지는 않는다. 컨트롤러의 주요 역할은 다음과 같다. 1. 클라이언트가 요구한 기능을 실행 2. 응답 결과를 생성하는데 필요한 모델 생성 3. 응답결과를 생성할 뷰 선택 //POST방식 /users/signup.do 요청처리 @RequestMapping(value = "/use..
[SPRING]eclipse에서 mybatis다운 및 환경설정 1.Help->eclipse marketplace->mybatis검색->mybatis generator,mybatise 두개 다 install 2.새로운 패키지 생성하고 Configuration.xml만들어서 위의 코드를 복사 붙여넣기 3.만들어놓은 패키지 오른클릭->뉴->아더->MyBatis XML Mapper 해서 MemberMapper.xml만들기 4.Configuration.xml에서 아래의 코드 작성 5. servlet-context.xml에 MyBais관련 설정을 할 것인데 참고로 Severs/context.xml문서에 아래주석안의 글과 같은 db접속 정보가 있어야지 동작한다. servlet-context.xml의 다음영역에 코드를 작성한다. 6.