[SPRING] Mybatis 프레임워크 시작하기 2

🐷Jinie (juniorDeveloper)·2020년 12월 9일
1

JSP/MVC/SPRING

목록 보기
73/81

1. Mybatis 프로젝트에 설정하기


  • 가장먼저 web.xml이 applicationContext.xml(비즈니스) 와 presentation-layer.xml(뷰)
    xml파일을 실행한다.
  • 이때, applicationContext.xml파일안에는 JDBCTemplate을 설정했던것처럼 Mybatis 설정과 db정보가 설정되어있다. (DB정보 넣어주기)
  • applicationContext.xml에서 test-map-Config.xml을 실행한다. (그래서 DB결과이랑 실행값을 어디에 넣어두고 쓸지 실행할 sql구문이 뭔지 서로 연결해준다.)
  • test-map-Config파일은 board-mapping.xml 을 실행하면서 본격적으로 PsdVo와 board-mapping.xml이 매핑되어 sql 사용준비가 완료된다.
  1. applicationContext.xml
<!-- DataSource 설정하기 -->
<context:property-placeholder location="classpath:config/database.properties" />
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="${jdbc.driver}" />
		<property name="url" value="${jdbc.url}"/>
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
	</bean>
	
<!-- Mybatis 설정하기 -->
	<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation" value="classpath:test-map-Config.xml" />
	</bean>
  1. test-map-Config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
                PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
                "http://mybatis.org/dtd/mybatis-3-config.dtd" >
<configuration>

   <typeAliases>
       <typeAlias type="com.psd.biz.member.common.PsdVo"  alias="PsdVo" />
   </typeAliases>

   <mappers>
    <mapper resource="mappings/board-mapping.xml" />
   </mappers>
 
</configuration>
  1. board-mapping.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="psdDAO">
	<insert id="insertBoard">
	  <![CDATA[
		insert into table_psd (idx, name, fname) 
		values (table_sq.NEXTVAL, #{name} , #{fname})
	  ]]>
	</insert>
	<delete id="deleteBoard">
	  <![CDATA[
		delete from table_psd where idx = #{idx} 
	  ]]>
	</delete>
	<select id="selectAll">
		SELECT * 
		FROM TABLE_PSD 
		ORDER BY IDX DESC

	</select>
	<select id="delete_name">
		SELECT FNAME 
		FROM TABLE_PSD 
		WHERE IDX = #{idx}
	</select>
	<update id="updateBoard">
		UPDATE TABLE_PSD 
			SET NAME = #{name} 
		WHERE IDX = #{idx} 
	</update>
</mapper>

2. DB가 제대로 작동되는지 테스트하기

  • 만들어둔 INSERT 쿼리만 실행해서 일단 제대로 작동되는지 확인해보자

2-1. 사용할 쿼리 board-mapping.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="psdDAO">
	<insert id="insertBoard" parameterType="com.psd.biz.member.common.PsdVo">
	  <![CDATA[
		INSERT INTO TABLE_PSD (IDX, NAME, FNAME) 
		VALUES (table_sq.NEXTVAL, #{name} , #{fname})
	  ]]>
	</insert>
</mapper>
  • 여기서 parameterType은 쿼리문 실행시 사용될 매개변수의 형을 정의해준다.
    나는 나의 Vo형을 넣어서 지정해 줬다. com.psd.biz.member.common.PsdVo

2-2. DAO 만들기

  • MybatisDAOImpl 이라는 새로운 파일을 생성했다.
@Repository
public class MybatisDAOImpl extends SqlSessionDaoSupport implements PsdDAO {
	
	@Autowired
	public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
		super.setSqlSessionFactory(sqlSessionFactory);
	}
	
	@Override
	public void insert(PsdVo vo) {
		getSqlSession().insert("psdDAO.insertBoard", vo);
	}
}


profile
ᴘᴇᴛɪᴛs ᴅᴇ́ᴠᴇʟᴏᴘᴘᴇᴜʀ. ᴘʀᴏɢʀᴀᴍᴍᴀᴛɪᴏɴ = ᴘʟᴀɪsɪʀ 💕

0개의 댓글