Springboot 와 Mybatis 연동

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

댓글

Designed by JB FACTORY