Backend/Spring

Spring Mybatis 기본 세팅 1 DB, Driver 세팅

쏠솔랄라 2023. 5. 23. 17:53

 

 

Mybatis Spring Legacy Project 생성

 

 

 

 

SpringMybatis

스프링 레가시 프로젝트 > Spring MVC Project 생성

com.increpas.db

 

 


 

 

DB 세팅

 

 

12C부터 사용자용 계정을 만들 때 c##을 붙여 만들어주어야 한다

 

=> 계정 룰 삭제

alter session set"_ORACLE_SCRIPT"=true;

 

user : spring01

password : spring

 

 

 

 

시스템 접속
conn/as sysdba

계정 생성
create user spring01 identified by spring;

유저 권한 생성
grant connect,resource to spring01;

table에 대한 입력, 수정, 삭제 권한 부여
alter user spring01 default tablespace users quota unlimited on users;

로그인
conn spring01/spring

 

샘플 테이블 생성

create table dept(
deptno number,
dname varchar2(20),
loc varchar2(50)
);

샘플 데이터 입력
INSERT INTO DEPT (DEPTNO, DNAME, LOC) VALUES ('1', '관리부', '101호');
INSERT INTO DEPT (DEPTNO, DNAME, LOC) VALUES ('2', '강사부', '201호');
INSERT INTO DEPT (DEPTNO, DNAME, LOC) VALUES ('3', '행정부', '202호');

 

 


 

 

mybatis사용을 위한 기본 패키지 세팅

 

 

src/main/java > resources > new > package

 

 

src/main/resources에 하위 2개 패키지 생성

 

config.spring.context

config.spring.mvc

 

 

root-context.xml 파일을

config.spring.context 패키지로 복사한 후

context-1-datasource.xml 로이름 변경

 

 

servlet-context.xml 파일을

config.spring.mvc 패키지로 복사

servlet-context.xml 파일명 변경

 

 

context 복사 파일 datasource/mybatis/dao/service 생성

servlet 복사 파일 생성

 

 

config.mybatis 패키지 생성

 

config.mybatis.mapper 패키지 생성

 

 

config.maybatis

config.mybatis.mapper

config.spring.context

config.spring.mvc

 

resources에 4개 패키지 생성

 

 

src > main > webapp > WEB-INF > Spring > web.xml

 

 

1) 한글 필터 삽입

https://developernew.tistory.com/175

 

Spring 한글 필터 설정 방법

: web.xml > 필터 설정 코드 붙여넣기 encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 encodingFilter /*

developernew.tistory.com

 

2) root-context.xml 경로 변경

<!-- <param-value>/WEB-INF/spring/root-context.xml</param-value> -->
<param-value>classpath*:config/spring/context/context-*.xml</param-value>

 

3) servlet-context.mxl 경로 변경

<!-- <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> -->
<param-value>classpath:config/spring/mvc/servlet-context.xml</param-value>

 

 


 

 

드라이버 세팅

 

 

db.properties의 user / password 정보 변경 (로그인 정보)

 

 

context-1-datasource.xml에 데이터소스 객체 생성 (user 정보 불러오기)

 

 

<!-- 데이터소스 객체 생성 : user 정보를 불러와야 함 -->  
<!-- db.properties 파일 불러오기 -->

 

<context:property-placeholder location="classpath:config/mybatis/db.properties"/>

 

 

context-1-datasource.xml > Namespaces > context

 

 

context-1-datasource.xml의 Namespaces의 context를 체크해 주어야

코드 오류가 나지 않는다

 

 

sql문 사용을 위한 mapper 연결

 

 

src/main/resources > config.mybatis > mybatis-config.xml

 

sql문 사용을 위해 (mapper) 아래 코드 입력

<mapper resource="config/mybatis/mapper/dept.xml"/>

 

 

jar 파일 추가

 

 

jar 파일 : 일반적으로 사람들이 가장 많이 사용한 것으로 사용

https://mvnrepository.com/

 

 

Ojdbc8 검색

21.1.x

 

code는 버전에 따라 고를 수 있음

 

// maven 버전으로 코드 복사

 

<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8 -->
<dependency>
     <groupId>com.oracle.database.jdbc</groupId>
   <artifactId>ojdbc8</artifactId>
    <version>21.1.0.0</version>
</dependency>

 

 

 

 

복사한 태그를 pom.xml의 <dependencies></dependencies>안에 붙여넣으면

Maven Dependencies안에 ojdbc파일이 자동으로 생성된다

 

 

//

 

 

commons DBCP 검색

 

 

가장 많이 다운로드 받은 파일이 있는데

2010버전으로 너무 오래 되었으니 2버전으로 받기

 

 

src/main/resources > config.spring.context > context-1-datasource.xml

 

 

복사한 코드를 context-1-datasource.xml에 입력

 

 

<bean id="ds" class="org.apache.commons.dbcp2.BasicDataSource"> 
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${user}" />
<property name="password" value="${password}" />
<property name="defaultAutoCommit" value="false" />
<property name="maxTotal" value="10" />
</bean>

 

 

* Mac용 설정 추가 (윈도우는 설정 필요 없음)

 

 

<bean id="ds" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="defaultAutoCommit" value="false"></property>
<property name="maxTotal" value="10"></property> // 최대 객체 생성 가능한 수 = maxActive
</bean>

 

: ${}안의 값에 [jdbc.]을 붙여준다

 

 

src/main/resources > config.mybatis > db.properties

 

 

db.propertise 파일 내 정보도 동일하게 jdbc. 를 추가해 통일시켜준다

 

 


 

 

mybatis 설정

: mybatis 설정을 위한 jar 파일 추가

 

 

mybatis

mybatis-spring

 

 

mybatis

3.4.6 버전으로 코드 복사

 

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>

 

 

MyBatis Spring

1.3.1버전으로 코드 복사

 

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.1</version>
</dependency>

 

 

 

 

복사한 태그를 pom.xml의 <dependencies></dependencies>안에 붙여넣으면

Maven Dependencies안에 ojdbc파일이 자동으로 생성된다

 

 

Spring JDBC

spring jdbc 4.3.14 버전으로 코드 복사

 

 

 

 

복사한 태그를 pom.xml의 <dependencies></dependencies>안에 붙여넣으면

Maven Dependencies안에 ojdbc파일이 자동으로 생성된다

 

 

<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>4.3.14.RELEASE</version>
</dependency>

 

 

 

 

pom.xml에서 자바 버전 11로 고치고

spring framework 버전 4.3.14.RELEASE로 // SPRING JDBC 다운받은 버전과 일치시킴

 

<java-version>11</java-version>
<org.springframework-version>4.3.14.RELEASE</org.springframework-version>

 

 

Properties > Project Facets

 

Dynamic Web Module -> 4.0

Java -> 11

 

버전 변경 세팅

 

 

src/main/resources > config.spring.context > context-2-mybatis.xml

 

 

// context 2-mybatis.xml에 코드 추가

 

<bean id="factoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="ds" />
<property name="configLocation" 
          value="classpath:config/mybatis/mybatis-config.xml"/>
</bean>

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg ref="factoryBean" />
</bean>

 

<!-- 
Mybatis 설정을 위한 jar파일 추가
- mybatis
- mybatis-spring
- spring-jdbc

factoryBean객체
factoryBean은 처리한 sql문의 결과값을 뽑아주는 역할 (통로)
dao에서 실질적으로 실행시키는 것 sqlSession

constructor : 객체 생성
ref="ds" : ds를 참조하는 중간 통로
-->