application.properties
# 톰캣 서버의 Http port 변경
server.port=9095
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
#JSP페이지가 수정이 되면 자동으로 서버 재시작
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521/xe
spring.datasource.username=system
spring.datasource.password=1234
#파일 업로드 용량 제한
spring.servlet.multipart.max-file-size=500MB
spring.servlet.multipart.max-request-size=500MB
produc.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="product">
<select id="list" resultType="java.util.Map">
<![CDATA[
select *
from product
order by product_name
]]>
</select>
</mapper>
Application.java 파일 수정
mapper 등록
package kr.co.itwill;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
@SpringBootApplication
public class Spring09MyshopApplication {
public static void main(String[] args) {
SpringApplication.run(Spring09MyshopApplication.class, args);
}
////////////////////////////////////////////////////////////////
//db 연결 환경설정 파일 불러오기
//spring mybatis프로젝트 MemTest클래스
//mapper 등록
@Bean //내부적으로 객체를 생성해라
//template에서 만든 정보를 데이터소스에 가져온다
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean=new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
Resource[] res=new PathMatchingResourcePatternResolver().getResources("classpath:mappers/*.xml");
bean.setMapperLocations(res);
return bean.getObject();
// spring boot +my batis 그대로 사용하면 된다
}
////////////////////////////////////////////////////////
/////////mapper에서 sql 쿼리문을 가져오면 자동으로 변환시켜 준다
@Bean
public SqlSessionTemplate sqlSession(SqlSessionFactory factory) {
return new SqlSessionTemplate(factory);
}
}
productDAO
package kr.co.itwill.product;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class ProductDAO {
public ProductDAO() {
System.out.println("---ProductDAO() 생성");
}
//스프링 빈으로 생성된 객체를 가져와서 연결
@Autowired
SqlSession sqlSession;
public List<Map<String, Object>> list(){
return sqlSession.selectList("produc.list");
}
}
package kr.co.itwill.product;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@Controller
public class ProductController {
public ProductController() {
System.out.println("----------ProductController() 생성");
}
//이미 생성된 객체 @Autowired
@Autowired
ProductDAO productDAO;
}