728x90
반응형
SMALL
# Spring framework 6일차 #
★
spring32. 마이바티스(MyBATIS, iBATIS)
spring33. 라이브러리 추가
spring34. src/main/webapps/spring/appServlet/servlet-context.xml 추가
spring35. 패키지 구성하기
spring36. mapper.xml에 들어갈 파일은 MyBATIS 홈페이지에서 가져오기.
spring37. 쿼리문 작성
spring38. Service 객체 등록해서 사용하기
★
spring32. 마이바티스(MyBATIS, iBATIS)
. 마이바티스 설정 xml 파일
. 마이바티스 매퍼 xml 파일
이 두개의 파이을 이용해서 자바 어플리케이션이나
웹 어플리케이션에서 데이터베이스를 연동해서 사용하는 방식인데
jdbc에서 처리하는 복잡하고, 반복적인 부분을 줄여서 간단하게
처리할 수 있는 프레임워크다.
spring33. 라이브러리 추가
. pom.xml에 추가할 거다.
[lib]
spring-jdbc.jar
mybatis-spring.jar
mybatis.jar
ojdbc6.jar(webapps->lib->ojdbc6.jar)
lib 에 ojdbc를 붙여넣기 해주었다.
spring34. src/main/webapps/spring/appServlet/servlet-context.xml 추가
<!-- 데이터 소스 설정 -->
<beans:bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<beans:property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<beans:property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
<beans:property name="username" value="hr" />
<beans:property name="password" value="hr" />
</beans:bean>
<!-- SqlSessionFactory 설정 -->
<beans:bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<beans:property name="dataSource" ref="dataSource"></beans:property>
<beans:property name="mapperLocations" value="classpath:com/nz/spring18/mapper/mapper.xml"></beans:property>
</beans:bean>
<!-- SqlSession 설정 -->
<beans:bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<beans:constructor-arg index="0" ref="sqlSessionFactory"></beans:constructor-arg>
</beans:bean>
spring35. 패키지 구성하기
com.nz.spring20.IndexController.java
com.nz.spring20.controller.BoardController.java
com.nz.spring20.dao.BoardDAO.java
com.nz.spring20.dto.BoardDTO.java
com.nz.spring20.mapper.mapper.xml
com.nz.spring20.service.BoardService.java
src/main/java 아래에 패키지를 만들어 준다.
spring36. mapper.xml에 들어갈 파일은 MyBATIS 홈페이지에서 가져온다.
MyBATIS 홈페이지에서 Handling Enums 를 찾는다.
아래와 같이 전체 복사를 하여 mapper에 붙여넣기 한다.
붙여넣은 부분중에 아래 부분만 남기고 삭제했다.
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
spring37. 쿼리문 작성
<mapper namespace="com.nz.spring18.dao.AIBoardDAO">
<!-- 게시물 전체 가져오기 -->
<select id="listDAO" resultType="com.nz.spring18.dto.AIBoard">
SELECT * FROM AIBOARD ORDER BY SEQ DESC
</select>
<!-- 게시물 작성하기 -->
<insert id="writeDAO">
insert into aiboard values(aiboard_seq.nextval,#{param1},#{param2},#{param3},0)
</insert>
<!-- 게시물 삭제하기 -->
<delete id="deleteDAO">
delete from aiboard where seq=#{param1}
</delete>
<!-- 게시물 한건보기 -->
<select id="getAIBoard" resultType="com.nz.spring18.dto.AIBoard">
select * from aiboard where seq=#{param1}
</select>
</mapper>
<mapper>안에 select , insert, delete, 를 작성한 것을 확인할 수 있다.
spring38. Service 객체 등록해서 사용하기
. 서비스 객체(@Service)는 단순한게 crud중에 하나를 사용하는 것이 아닌
insert, update를 같이 사용한다던지, 여러가지 기능을 구현해야 할경우
사용하는 클래스 이다.
. 사용방법은 XXXService라고 클래스 이름을 주고,
. 클래스 위에 @Service라고 명기를 해주고 사용을 하면된다.
package com.nz.spring20.service;
@Service
class BoardService{
}
.
.
.
.
.
.
spring35. 패키지 구성하기 에서 구현하였던 패키지를 좀 더 자세하게 살펴보려고 한다.
▶com.nz.spring20.controller.BoardController.java
- 게시물 전체를 가져오는 aiboard/list
- 게시물 작성을 할수 있는 aiboard/writeForm
- 게시물 삭제 할 수 있는 aiboard/delete
- 게시물 한 건 만 읽을 수있는 aiboard/read
- 게시물 수정할 수있는 aiboard/modifyForm
- 게시물 수정 완료 하게 하는 aiboard/modify
▶com.nz.spring20.dao.BoardDAO.java
▶com.nz.spring20.dto.BoardDTO.java
▶com.nz.spring20.mapper.mapper.xml
controller 와 dao를 jsp 와 비교하면 spring이 간결하게 표현되는 것을 느낄수 있다.
.
.
.
.
.
.
.
.
.
.
.
.
간단히 살펴보면,
write페이지에서 작성하면 등록하면 아래와 같이 list를 통해 등록된 게시글을 확인 할수 있다.
작성자에 링크를 걸어서 한건 읽기로 연결시켰다.
작성자를 클릭하면 등록한 게시글을 한 건 볼 수 있다.
.
.
.
마이바티스 연결도 해줬으니 당연히 DB에도 데이터가 들어간 것을 확인 할수 있다.
▼crom으로 list 페이지와 read 페이지를 확인해본 것이다.
▼Sql Developer 에서 table 만들어준 쿼리문 과 확인 해본 결과 이다.
JAVA기반 AI인공지능 spring 6일차 끝............!
내일부터는 프로젝트를 할 예정이다.........!
뚜둥 ..........
728x90
반응형
LIST
'코딩이 쉬워진다! > 02. spring' 카테고리의 다른 글
부서별로 문서조회 권한 부여하기 (0) | 2018.09.11 |
---|---|
spring 5일차 (2) | 2018.01.22 |
spring 4일차 (2) | 2018.01.19 |
spring 3일차 (0) | 2018.01.19 |
spring 2일차 (0) | 2018.01.17 |