국비지원

22/05/30 수업정리

야생늑대 2022. 5. 30. 17:05
반응형

스프링 영화코드 구해서 DB에 Insert

 

MovieService

	
		for(int i = 0; i < cgvMvList.size(); i++) {			
 			int mvCheck = mvdao.selectMvcheck(cgvMvList.get(i).getMvname(), cgvMvList.get(i).getMvopen());
 			if(mvCheck ==0 ) { 			
 				String mvcode = "MV";
 				String mvSelect = mvdao.getMvSelect();
 				
 				if (mvSelect == null) {
 					
 					mvcode = mvcode +"001"; 
 				}
 					else {
 						System.out.println("mvSelect : " + mvSelect);
 						
 						mvSelect = mvSelect.substring(2);
 						int mvcode_ = Integer.parseInt(mvSelect)+1;
 						
 						if(mvcode_ <10) {
 							mvcode =  mvcode + "00" + mvcode_; 
 						}else if(mvcode_<100) {
 							mvcode = mvcode + "0" + mvcode_;			  
 						}else if(mvcode_ <1000) {
 							mvcode =  mvcode + mvcode_;
 						}
 				} 		 				
 				cgvMvList.get(i).setMvcode(mvcode);			
 				mvdao.getInsertMovie(cgvMvList.get(i));
 				 			}		 
		}

 

MovieDao

package com.spring_movie01.dao;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.spring_movie01.dto.MovieDto;

public interface MovieDao {

	

	@Select("SELECT COUNT(*) FROM MOVIES WHERE MVNAME = #{mvname} AND TO_CHAR(MVOPEN, 'YYYY.MM.DD') = #{mvopen}")
	int selectMvcheck(@Param("mvname") String mvname, @Param("mvopen") String mvopen);
	
	@Select("SELECT MAX(MVCODE) FROM MOVIES")
		String getMvSelect() ;
	
	
	@Insert("INSERT INTO MOVIES(MVCODE, MVNAME, MVPD, MVACTOR, MVGENRE, MVAGE, MVTIME, MVOPEN, MVPOSTER) "
			+ "VALUES(#{mvcode}, #{mvname}, #{mvpd}, #{mvactor}, #{mvgenre}, #{mvage}, #{mvtime}, "
			+ "TO_DATE(#{mvopen},'YYYY.MM.DD'), #{mvposter})")
	void getInsertMovie(MovieDto movieDto);
	
}

 

Mapper  맵퍼사용

 

https://mybatis.org/mybatis-3/

 

mybatis – MyBatis 3 | Introduction

What is MyBatis? MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use

mybatis.org

 

 

src/main/resources 폴더에

매퍼를 사용할 dao가 있는 경로와 동일한 순서로 폴더를 생성한다.

여기선 매퍼를 사용할 dao파일이    com.spring_movie01.dao 패키지에  MovieDao.java  로 들어가있으므로

src/main/resources 폴더 -->  com 폴더 --> spring_movie01 폴더  -->   dao 폴더 -->  MovieDao.xml 을 만들어준다.

 

그리고 MovieDao.xml 파일안에  

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 파일지정 -->
  <mapper namespace = "com.spring_movie01.dao.MovieDao">
   
  </mapper>

이렇게 매퍼를 사용할 패키지와 파일을 namespace에 지정해준다.

 

SQL문을 사용할 때.

<!--select문  -->
  	<select id="selectMovieList" resultType="com.spring_movie01.dto.MovieDto">
  	SELECT MVCODE, MVNAME, MVPD, MVACTOR, MVGENRE, MVAGE, MVTIME, MVTIME, 
  	TO_CHAR(MVOPEN, 'YYYY.MM.DD'), MVPOSTER 
  	FROM MOVIES 
  	ORDER BY MVCODE	
  	</select>

id =" 매핑될 메소드이름"   resultType="반환타입"

 

MovieDao.java 

package com.spring_movie01.dao;

import java.util.ArrayList;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.spring_movie01.dto.MovieDto;

public interface MovieDao {


	ArrayList<MovieDto> selectMovieList();

	
	MovieDto selectMovieInfo(String mvcode);

MovieDao.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 파일지정 -->
  <mapper namespace = "com.spring_movie01.dao.MovieDao">
  
  
<!--select문  -->
  	<select id="selectMovieList" resultType="com.spring_movie01.dto.MovieDto">
  	SELECT MVCODE, MVNAME, MVPD, MVACTOR, MVGENRE, MVAGE, MVTIME, TO_CHAR(MVOPEN, 'YYYY.MM.DD')AS MVOPEN, MVPOSTER 
  	FROM MOVIES 
  	ORDER BY MVCODE	
  	</select>
  

 <select id="selectMovieInfo" resultType ="com.spring_movie01.dto.MovieDto">
   	SELECT MVCODE, MVNAME, MVPD, MVACTOR, MVGENRE, MVAGE, MVTIME, TO_CHAR(MVOPEN, 'YYYY.MM.DD')AS MVOPEN, MVPOSTER
 	FROM MOVIES
 	WHERE MVCODE = #{mvcode}
 </select>

 

 

 

반응형

'국비지원' 카테고리의 다른 글

프로젝트 에러 - Uncaught ReferenceError: clickZzim is not defined  (0) 2022.07.28
22/05/25 수업정리  (0) 2022.05.25
22/05/24 수업정리  (0) 2022.05.24
스프링 다운받고 설정하기  (0) 2022.05.20
22/05/18 수업정리  (0) 2022.05.18