Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

JAVA Developer Training

mybatis 본문

트레이닝

mybatis

Romenest 2021. 11. 3. 15:32
// 파일명 : 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;
    
}