분류 전체보기
-
학원 day92. 트랜잭션, 태그, 첨부파일기록 2023. 1. 12. 12:55
스프링의 트랜잭션 처리 - spring framework는 선언적 트랜잭션 처리, 프로그래밍적 트랜잭션 처리를 지원한다. (프로그래밍적 트랜잭션 처리는 사용하지 않음) - spring-tx.jar 라이브러리는 트랜잭션 처리를 지원하는 라이브러리다. 트랜잭션 - 여러 번의 데이터베이스 엑세스 작업을 하나의 논리적인 작업그룹으로 묶는 것이다. 트랜잭션의 사용 목적 - 여러번의 데이터베이스 엑세스 작업이 실행될 때마다 데이터베이스에 직접 반영시키지 않고, commit/rollback 명령을 실행할 때 한꺼번에 반영/취소 시키는 것이다. - 데이터베이스 엑세스 작업에 대한 부분적인 성공을 허용하지 않게하기 위함이다. - 부분적인 성공을 허용하지 않기 때문에 데이터의 일관성을 유지할 수 있다. - 트랜잭션의 시작..
-
학원 day91. 스프링 실습2기록 2023. 1. 11. 21:32
요청핸들러메소드 매개변수에 page를 작성했다는 것은 page가 무조건 와야하는데 오지 않아서 오류가 난 것임. @RequestParam(name = "page", required = false, defaultValue = "1") int page 라고 적어주면 page가 없어도 기본값으로 문자 1이 int타입 1로 변환되어 대입된다. 스프링 MVC의 어노테이션 @PathVariable의 예시로, 기사의 번호가 URL에 붙여진다. @GetMapping("/post/list/{postNo}") public String detail(@PathVariable("postNo") int postNo) { } -> postNo에 해당하는 값을 불러오겠다는 의미이다. mybatis의 어노테이션 요청파라미터이름과 변수..
-
-
학원 day89. 어노테이션 만들기, 사용자정보가져오기, 인터셉터기록 2023. 1. 9. 17:14
어노테이션 - 편집기, 컴파일러, 프레임워크, 애플리케이션에게 부가적인 정보를 전달하기 위해 사용된다. - 구성요소 (Retention은 하나만 지정가능하고, Target은 복수개 지정 가능하다.) @Retention - 어노테이션이 사용되는 시점을 정의한다. * Source 소스코드작성시 사용된다.(문법검사) * Class 컴파일시에 사용된다. * Runtime 프로그램 실행시에 사용된다. 거의 대부분의 어노테이션은 프로그램 실행시에 사용된다. 개발자가 정의하는 어노테이션도 프로그램 실행시에 사용된다. @Target - 어노테이션이 적용되는 대상을 정의한다. * Type : 클래스, 인터페이스 예시 @Taget(ElementType.TYPE) public @interface Controller { } ..
-
학원 day88. @RequestParam, URL 매핑, SessionUtils기록 2023. 1. 6. 21:18
스프링을 사용하는 이유. 1. 스프링이 제공하는 의존성 주입을 사용하기 위해서 도입한다. 2. 웹 어플리케이션 프로그램을 쉽게 개발할 수 있다. 3. 다양한 db엑세스 기술과 연동해서 개발할 수 있다. 객체마다 의존성을 갖고 있다. 클라이언트의 요청이 실행되기 위해서는 업무로직이 필요하고, 업무로직이 실행되기 위해서는 DB엑세스가 필요하다. 컨트롤러 객체 - 사용자의 요청을 처리, 사용자에게 데이터 제공 서비스 객체 - 업무로직 수행 매퍼객체(DAO) - 데이터베이스 엑세스 수행 스프링에게 객체의 생성을 위임했다. web-context.xml에 코드를 통해서 com.sample.web 패키지 및 그 하위 패키지에서 @Controller, @ControllerAdivice, @RestController, ..
-
학원 day87. 폼 입력값 전달하기, 예외처리기록 2023. 1. 5. 17:03
1.컨트롤러, 서비스, 매퍼 연동하기 2.폼입력값을 전달받는 방법 (클래스를 통해서) 3.예외처리하는 방법 Web Project Settings에서 context root / 로 바꿔주기 web.xml에 위와 같은 코드 추가하기. 모든 jsp의 첫부분에 tag.jsp가 포함되는 것이다. c:set을 이용해서 속성을 추가한다. PageContext객체에 menu라는 이름으로 home이라는 값을 담았다. navbar.jsp는 home.jsp에 코드가 그대로 들어가기 때문에 menu라는 이름으로 값을 찾을 수 있는 것이다. * navbar.jsp는 지정된 위치가 있기 때문에 tags.jsp처럼 넣지 않는다. 매퍼는 테이블당 하나씩 만드는게 편한데 서비스는 UserService랑 UserRoleService를 ..
-
학원 day86. 스프링 웹 구축하기기록 2023. 1. 4. 12:53
지금 사용하는건 스프링 5.3.6버전인데 스프링 6부터는 톰캣 10을 지원한다. 자바 17을 사용하는데 현장에서는 자바8이다. 톰캣 9버전(9.0.70)을 다운받을 것이다. 이클립스 Preference 열어서 톰캣을 등록한다. eGovFrame Web Project를 클릭하고 톰캣 9로 설정 - 개발자가 만드는 것 : JSP, Controller, Service, Mapper - DispatcherServlet이 생성하는 건 자식 스프링 컨테이너이고, ContextLoadListener가 생성하는 건 루트 스프링 컨테이너이다. - 자식 스프링 컨테이너에는 주로 웹과 관련된 것들이 등록되어 있다. (컨트롤러, 뷰, 인터셉트, 리졸브) - 자식 스프링 컨테이너는 의존성 주입에 필요한 객체가 자식 스프링 컨테..
-
학원 day85. mybatis-spring 연동시키기기록 2023. 1. 3. 13:03
mybatis의 주요 API * 개발자가 직접 mybatis의 주요 API를 사용해서 코딩하는 경우는 없다. * SqlSessionFactoryBuilder - mybatis 환경설정 파일을 읽어서 SqlSessionFactory 객체를 생성한다. * SqlSessionFactory - SqlSession 객체를 제공한다. - 애플리케이션이 실행되는동안 싱글턴 객체로 관리되어야 한다. - 주요메소드 Sqlsession openSession() : 새로운 SqlSession 객체를 반환한다. * SqlSession - SQL를 실행하는 메소드를 제공하는 객체다. - Sql를 실행할 때마다 SqlSessionFactory의 openSession() 메소드를 실행해서 새로운 SqlSession객체를 획득해서 ..