일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 프로젝트생성
- Hibernate
- paging
- javascriptcalendar
- jQuery값전송
- 제너릭
- JPA
- 제네릭
- fullcalendar
- 대량쿼리
- 벌크연산
- 스프링데이터흐름
- calendar
- jscalendar
- jQueryUI
- values()
- springflow
- 엔티티직접사용
- javaservlet
- LIST
- JPQL
- 자바서블릿
- 페이징
- JQuery
- jQuery값전달
- 페치조인
- fetchjoin
- namedQuery
- Generic
- joinfetch
- Today
- Total
가자공부하러!
4. Spring Boot Oracle DB 연동(JSP, MyBatis) 본문
3차 시도 ( 성공 )
참고사이트 : https://www.youtube.com/watch?v=3tWkcJOI-uo
결과 : 성공
5_JSP_oracleDBConnectTestWithMybatis.zip
결과 : 프로젝트는 잘 작동하지만 DB값을 받아오지 못하는 상태
- DAO쪽에 문제가 있는 듯
- @Select 공부 필요 (참고 : https://daitso.kbhub.co.kr/44499/)
* 중요 : dependency 확인 필수
> JSP : tomcat-embed-jasper, javax-inject, jstl
0. 개발 환경
> jdk 8(1.8)
> sts3 (:: Spring Boot :: (v2.1.6.))
> oracle 11g
1. 프로젝트 생성
> spring starter project
- project name : 4_oracleDBConnectTestWithMybatis
- artifact : oracleTest4
- package : com.example.mybatisTest
- boot version : 2.1.6(강의:2.1.2)
- dependencies
- SQL : MySQL Driver, JDBC API, MyBatis Framework
- Template Engines : ThymeLeaf
- Web : Spring Web Starter (00:04:55)
2. 디렉토리 구조
> pom.xml 확인
- 숨어있는 설정이 꽤 있다.
> src/main/java
- src/main/java/com/example/mybatisTest : 자동으로 메인메서드가 생성된 클래스가 있는 경로(시작클래스)
- Run 해보자! -> Spring Boot App -> 세팅이 완료되지 않아서 오류가 발생한다.
- Reason: Failed to determine a suitable driver class
- Tomcat이 내장되어 있음을 확이할 수 있다.
- 기존 실행중이던 톰캣은 종료시켜야 한다.
> src/main/resources/static
- js, images, css 등 리소스가 들어감
> src/main/resources/templates
- JSP를 대체하는 template들이 들어감
> [설정파일] src/main/resources/application.properties
3. Thyme leaf?
> Spring Boot는 JSP 대신 template을 사용하는 것을 권장함.
> Thyme leaf는 template의 일종이며 JSP를 완전히 대체할 수 있음.
> JSP를 사용하기 위한 추가 작업이 필요
4. JSP를 먼저 시작해봅니다.
> JSP를 사용하기 위한 추가 작업
- src/main 하위에 디렉토리 추가
- src/main/webapp
- src/main/webapp/WEB-INF
- src/main/webapp/WEB-INF/views
- application.properties 설정
- pom.xml에서 thymeleaf 라이브러리 주석 처리
5. oracle DB 연동을 위한 사전 작업
> properties 아래에, dependencies 위에 repositories 추가
- maven저장소에 잘 안올라옴... 오라클ㅆ
- maven 표준 저장소 외에 oracle dependency를 다운로드 할 수 있는 경로를 추가한 것
> dependencies 수정
- javax.inject
- spring-boot-starter-thymeleaf
- spring-boot-devtools : java source가 변경되면 auto restart가 안되는 boot의 단점을 잡아줌(가능하게끔)
- tomcat-embed-jasper : tomcat에서 JSP를 사용할 수 있게끔 해주는lib
- JSTL
- ojdbc6
- spring-boot-starter-jdbc
- mybatis : 3.5.0
- mybatis-spring : mybatis와 spring을 연결해서 사용할 수 있게끔 해주는 lib
- mybatis-spring-boot-starter
- mysql-connector-java
- spring-boot-starter-web
- spring-boot-starter-test
> application.properties (#이 주석이고, 파일 우클릭-properties->encoding을 UTF-8로 바꿔주면 한글주석 가능)
#db connection(oracle) - 연결정보
spring.datesource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:this:@localhost:1521/xe
spring.datasource.username=hr
spring.datasource.password=1234
#http port set
server.port=18086
#view resolver(템플릿 대신 JSP 사용할 경우)
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
server.servlet.jsp.init-parameters.development=true
#custom error page
server.error.whitelabel.enabled=false
6. 시작 클래스
> Application.java
- mapper 설정 (방법 2 사용)
- 방법1 : Bean 어노테이션을 추가한 sqlSessionFactory 메소드를 정의하고 src/main/resources/mapper.xml에 따라 설정을 하는 방법
- 방법2 : Spring Boot Application에 Bean 어노테이션을 추가한 SqlSessionFactory ~ SqlSessionTemplate ~ SqlSession 작성
- SqlSessionFactory를 만들고, SqlSessionFactory가 SqlSessionTemplate을 만들고, SqlSessionTemplate이 SqlSession을 만드는 절차
7. 컨트롤러 작성
> src/main/java/com.example.mybatisTest.controller.HelloController.java
> ModelAndView 타입을 매개변수로 받고 추가 설정(setViewName, addObjec)을 해준 후 리턴
- setViewName : 뷰(페이지)의 이름을 설정
- addObject : ModelAndView 객체에 데이터 저장
- return : 데이터 전달(화면 출력)
8. 뷰 작성
> hello.jsp
9. 현재까지 상태 확인 (Run)
> 실행 성공
- localhost:포트 -> 스프링 부트 애플리케이션
10. DB준비 - 방명록 페이지 DB 생성 및 설정
> CREATE TABLE GUESTBOOK
> CREATE SEQUENCE GUESTBOOK_SEQ
> INSERT INTO GUESTBOOK
11. Model 작성 (DTO, DAO, Service)
> DTO : com.example.mybatisTest.model.dto.GuestbookDTO.java
- 변수 선언 : DB TABLE의 컬럼명과 동일하게 작성해야 함
- getter/setter 작성
> DAO : com.example.mybatisTest.model.dao.GuestbookDAO.interface
- interface를 호출할 때 interface의 메소드에 sql어노테이션이 선언되어 있으면 해당 sql이 실행됨
- Spring Boot Application에 MapperScan 경로를 설정해줬기 때문에 인식 가능
> Service : com.example.mybatisTest.service.GuestbookService.java
- Service.impl : com.example.mybatisTest.service.GuestbookServiceImpl.java
- @Service를 통해 Bean으로 등록
12. Contoller 작성 : com.example.mybatisTest.controller.GuestbookController
> @Controller를 통해 Controller Bean으로 등록
> @Inject로 Service 등록
> @RequestMapping으로 요청신호 받음
> Service에서 List 받아옴
> ModelAndView 설정(setViewName, addObject(list))
> ModelAndView return
13. Thymeleaf 템플릿 활성화
> application.properties JSP설정 주석처리, thymeleaf 설정 주석 해제
> pom.xml thymeleaf 주석 해제
> html작성 (src/main/templates)
- 작성한 html은 최종 결과물이 아니고 한번 가공해서 보여줌
- xml문법을 따름
- 태그 잘 설정해줘야 함(단독태그 슬래시 등)
14. 정적 요소 적용(css, js)
> src/main/resources/static/css, js/파일
> html에 적용
- css : <link rel="stylesheet" type="text/css" th:href="@{/css/my.css}">
- js :
> include header : src/main/resoutces/templates/include 경로에 header 작성
2차 시도
참고사이트 : https://offbyone.tistory.com/18
참고사이트 : https://nemew.tistory.com/16
0. 개발 환경
> jdk 8(1.8)
> sts3
> oracle 11g
1. 프로젝트 생성...
실패
1차 시도
참고사이트 : https://mainia.tistory.com/5634
0. 개발 환경
> jdk 8(1.8)
> sts3
> oracle 11g
1. 프로젝트 생성
> Project Name : oracleDBConnectTestWithMybatis
> spring starter project
> maven
> dependencies
- Spring Web Starter, Spring REST Docs, MySQL Driver, MyBatis Framework, Lombok
- tomcat-embed-jasper
> application.properties
- port : 18084
- db :
- spring.datasource.url=jdbc:mysql://localhost/hr/hr
> 여기까지 하고 임시 Controller 생성해서 작업완료 확인(시간찍어보기)
> DB연결이 안된다?
- Failed to load class of driverClassName com.mysql.cj.jdbc.Driver 처럼 뜨지?
- application properties에 cj.을 지워봅시다 (com.mysql.jdbc.Driver)
- src/main/webapp/WEB-INF/lib에 ojdbc를 추가합시다
2. MyBatis 연동 설정
> DatabaseConfiguration.java
- 위에서 미리 성정한 datasource를 실제로 사용하기 위한 코드 작성
- Mapper나 DAO 레벨에서 쿼리xml을 인식할 수 있도록 위치를 지정
> DAO 작성
> query.xml 작성
> 실행 오류
- UnsatisfiedDependencyException
- DatabaseConfiguration.java에 classpath:부분을 classpath*:로 변경
- Run 성공
- [WARN] No MyBatis mapper was found in '[com.mybatisTest]' package. Please check your configuration.
실패
'공부 > Spring Boot' 카테고리의 다른 글
6. Thymeleaf 활용 방법(Spring Boot) (0) | 2019.07.19 |
---|---|
5. Spring Boot 자유게시판 만들기 (0) | 2019.07.18 |
3. Spring Boot 어노테이션 관련 정보 모음 (0) | 2019.07.13 |
2. Spring Boot Controller 작성 (0) | 2019.07.12 |
1. Spring Boot Maven 프로젝트 생성 방법(1.5.21) (0) | 2019.07.12 |