코딩이 쉬워진다!/02. spring

spring 6일차

javajin 2018. 1. 23. 21:26
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