TIL 2021.10.08(금) Spring JDBC 연결하기

개발중·2021년 10월 9일
0

Spring

목록 보기
8/11


1. pom.xml 파일에 오라클 설치 구문 추가하여 설치하기 (Maven project update)

<dependency>
         <groupId>com.oracle</groupId>
         <artifactId>ojdbc14</artifactId>
         <version>10.2.0.4.0</version>
         <scope>system</scope>
         <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/ojdbc8.jar</systemPath>
      </dependency>
  1. WEB/INF에 본인에게 맞는 ojdbc jar 파일 추가하기 (꼭 WEB/INF가 아니어도 된다)
  2. Jsp 파일 열어서 오류 없는지 확인해 보기

Servlet-Context.xml

<beans:bean id="database" class="org.apache.commons.dbcp.BasicDataSource"> <!-- 핸들링할 수 있는 클래스를 지정해 준다 -->
		<beans:property name="driverClassName" value="oracle.jdbc.OracleDriver"/> <!-- 내가 사용하는 데이터베이스에 맞게 설정 -->
		<beans:property name="url" value="오라클 경로"/> <!-- 내 오라클 경로를 작성해 주면 되는데 나는 현재 mac을 사용하고 있기 때문에 연결이 되지 않는다 -->
        <beans:property name="username" value="아이디"/>
        <beans:property name="password" value="비밀번호"/>
	</beans:bean>
	   <beans:bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 데이터베이스의 연결과 SQL 구문 실행을 위함 -->
      <beans:property name="dataSource" ref="database"/> <!-- DataSource를 참조하여 MyBatis와 데이터베이스 서버를 연동시켜 준다. -->
      <beans:property name="configLocation" value="/WEB-INF/Config.xml"> </beans:property><!-- 내가 작성한 컨피그 파일 설정에 따라 매퍼로 넘어가 SQL문을 실행함 -->
   </beans:bean>
   <beans:bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
      <beans:constructor-arg>
        <beans:ref bean="sqlSessionFactory"/>
      </beans:constructor-arg>
   </beans:bean>
	<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
      <beans:property name="defaultEncoding" value="UTF-8"></beans:property>
      <beans:property name="maxUploadSize" value="300000000"></beans:property>
   </beans:bean>
	<context:component-scan base-package="sist.com.web" />
	<context:component-scan base-package="sist.com.di.basic6"/>
	<context:component-scan base-package="sist.com.controller"/>
	<context:component-scan base-package="sist.com.dao"/>

사이트에서 파일을 전송받을 수 있게 하는 방법

<form action="/web/boardInsert.do" method="post" name="insertFrm" enctype="multipart/form-data"> <!-- 이미지나 동영상일 경우 -->
	<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
      <beans:property name="defaultEncoding" value="UTF-8"></beans:property>
      <beans:property name="maxUploadSize" value="300000000"></beans:property>
   </beans:bean>
  • Multipart는 Spring에서 지원해 주고 있으므로 bean 이름을 multipartResolver로 객체 등록하여 사용한다.
  • maxUploadSize는 최대 업로드할 수 있는 파일의 크기를 지정해 주는 것이다. 바이트 크기이며, 기본 크기는 10240이다.

Config

<?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><!-- DB설정(Connection) -->
   <typeAliases><!-- vo객체의 별칭을 모아서 관리 -->
      <typeAlias type="sist.com.vo.MvcBoardVO" alias="board" />
   </typeAliases>
   <mappers>
      <mapper resource="sist/com/dao/mapper.xml" />
   </mappers> <!-- mapper 파일의 경로 -->
</configuration>
  • VO의 경로와 Mapper의 경로를 가지고 있다.

Mapper

<?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="sist.com.vo.apple">
	<insert id="insertBoard" parameterType="board">
		INSERT INTO BOARDMVC(NO, AUTHOR, TITLE, PASSWORD, CONTENTS, HIT, REGDATE, FILENAME)
		VALUES(BOARDMVC_SEQ.NEXTVAL, #{author}, #{title}, #{password}, #{contents}, 0, sysdate, #{fileName})
	</insert>	
</mapper>
  • SQL 명령문을 모아 관리한다.

SqlSessionTemplate

  • SqlSessionTemplate은 스프링 연동 모듈의 핵심이다.
  • SqlSession을 구현하고 코드에서 SqlSession을 대체한다.
  • 쓰레드에 안전하고 여러 개의 DAO, Mapper에서 공유할 수 있다.
   <beans:bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
      <beans:constructor-arg>
        <beans:ref bean="sqlSessionFactory"/>
      </beans:constructor-arg>
   </beans:bean>

참고한 사이트 : https://linked2ev.github.io/mybatis/2019/09/08/MyBatis-4-DAO와-SqlSessionTemplate,-SqlSessionDaoSupport/

profile
공부한 것 정리하는 개발 입문자

0개의 댓글