스프링 영화코드 구해서 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 |