Springboot 와 Mybatis 연동
- 📕 Programing/Spring
- 2020. 5. 19. 17:22
IntelliJ에서는 기본적으로 xml파일이 포함되지 않는 것 같다.
그래서 pom.xml의 <build> 태그 안에 아래내용을 추가해야 한다.
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
@Configuration 을 통한 설정
package com.kyhslam;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration
@MapperScan(basePackages = "com.kyhslam.dao")
public class MybatisConfig {
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
sqlSessionFactoryBean.setTypeAliasesPackage("com.kyhslam.domain");
return sqlSessionFactoryBean.getObject();
}
@Bean
public SqlSessionTemplate sqlSession(SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
application.properties에 database 설정값 셋팅
# application.properties
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@10.111.11.11:1521:PLMDB
spring.datasource.username=wcadmin
spring.datasource.password=1234
PjtMapper.java
package com.kyhslam.dao;
import com.kyhslam.domain.Board;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface BoardMapper {
public List<Board> selectAll();
}
PjtMapper.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.kyhslam.dao.BoardMapper">
<select id="selectAll" resultType="Board">
SELECT content, writer
FROM a_board
</select>
</mapper>
Board.java
package com.kyhslam.domain;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@Setter @Getter
public class Board {
private String writer;
private String content;
}
BoardDao.java
package com.kyhslam.dao;
import com.kyhslam.domain.Board;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class BoardDao {
protected static final String NAMESPACE = "com.kyhslam.dao.BoardMapper";
@Autowired private SqlSession sqlSession;
public List<Board> selectAll(){
return sqlSession.selectList(NAMESPACE + ".selectAll");
}
}
boardController.java
package com.example.demo;
import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import com.example.demo.dao.PjtMapper;
import com.example.demo.dto.PjtDto;
@Controller
public class boardController {
@Autowired
PjtMapper pjtMapper;
@GetMapping("/list")
public String list(Model model) {
//model.addAttribute("name", "kyhslam");
ArrayList<PjtDto> pjtList = (ArrayList<PjtDto>)pjtMapper.selectAllBoard();
model.addAttribute("pjtList", pjtList);
return "projectList";
}
}
'📕 Programing > Spring' 카테고리의 다른 글
Springboot + JPA + Summernote 예제 - 1 (0) | 2021.03.08 |
---|---|
[Intellij] JSP 연동 후 한글깨짐 현상 (0) | 2021.01.21 |
톰캣에 JNDI 설정 (0) | 2014.10.12 |
큐브리드 DB설정 (0) | 2014.01.23 |
@Autowired (0) | 2013.12.20 |