// 파일명 : pom.xml
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
---------------------------------
// 파일명 : MyBatisConfig.java
package com.example.mybatis;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
// mybatis 환경설정파일
// WAS를 구동했을때 오류가 발생되면 서버 중지
@Configuration
public class MyBatisConfig {
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
System.out.println("datasource configuration");
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
//mappers 위치 설정
Resource[] arrResource = new PathMatchingResourcePatternResolver().getResources("classpath:mappers/*Mapper.xml");
sqlSessionFactoryBean.setMapperLocations(arrResource);
return sqlSessionFactoryBean.getObject();
}
}
-----------------------------------------
// 파일명 : Member.java
package com.example.dto;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/*
// 미리 DDL수행되어야 함.
CREATE TABLE MEMBER(
userid varchar(100) PRIMARY KEY,
userpw varchar(100),
username varchar(100)
);
*/
@Data
@Getter
@Setter
@NoArgsConstructor
@ToString
public class Member {
private String userid = null;
private String userpw = null;
private String username = null;
}
------------------------------------------
// 파일명 : MemberMapper.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="Member">
<delete id="deleteMember" parameterType="String">
DELETE FROM MEMBER WHERE USERID=#{userid}
</delete>
<update id="updateMember"
parameterType="com.example.dto.Member">
UPDATE MEMBER SET USERPW=#{userpw}, USERNAME=#{username}
WHERE USERID=#{userid}
</update>
<insert id="insertMember"
parameterType="com.example.dto.Member">
INSERT INTO MEMBER(USERID, USERPW, USERNAME)
VALUES (#{userid}, #{userpw}, #{username})
</insert>
<select id="selectMemberOne"
parameterType="String" resultType="com.example.dto.Member">
SELECT * FROM MEMBER WHERE USERID=#{userid}
</select>
</mapper>
----------------------------------------
// 파일명 : MemberService.java
package com.example.service;
import com.example.dto.Member;
import org.springframework.stereotype.Service;
@Service
public interface MemberService {
public int insertMember(Member member);
public Member selectMemberOne(String userid);
public int deleteMember(String userid);
public int UpdateMember(Member member);
}
-------------------------------
// 파일명 : MemberServiceImpl.java
package com.example.service;
import com.example.dto.Member;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
public class MemberServiceImpl implements MemberService{
// mapper를 호출하기 위한 객체 생성
@Autowired
SqlSessionFactory sqlFactory;
@Override
public int deleteMember(String userid) {
return sqlFactory.openSession()
.delete("Member.deleteMember", userid);
}
@Override
public int UpdateMember(Member member) {
return sqlFactory.openSession()
.update("Member.updateMember", member);
}
@Override
public int insertMember(Member member) {
return sqlFactory.openSession()
.insert("Member.insertMember", member);
}
@Override
public Member selectMemberOne(String userid) {
return sqlFactory.openSession()
.selectOne("Member.selectMemberOne", userid);
}
}
-------------------------
// 컨트롤러에서 사용하기
public class TestController{
@AutoWired
MemberService mService;
}