2021. 11. 12. 18:16ㆍspring
project facets에서 자바version 맞추기
<dependencies>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
</dependencies>
<dependencies>
<!-- spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.3.RELEASE</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<!-- SPRING JDBC 필요 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
<!-- DBCP 필요 -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
한글 인코딩
↓ WEB-INF web.xml 프로젝트 설정 파일에 한 번만 설정 (클라이언트가 입력한 값을 서버로 끌고 갈 때)
<!-- 한글 인코딩 -->
<filter>
<filter-name>characterEncoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
↓ 매 페이지마다 보여지는 한글 처리
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
↓SqlSessionFactoryBean
package session;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class SqlSessionFactoryBean {
private static SqlSessionFactory sessionFactory = null;
static {
try {
if (sessionFactory == null) {
Reader reader = Resources.getResourceAsReader("session/mybatis-config.xml");
sessionFactory = new SqlSessionFactoryBuilder().build(reader);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSessionInstance() {
return sessionFactory.openSession();
}
}
↓db.properties
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:xe
jdbc.username=scott
jdbc.password=tiger
↓mybatis-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>
<!-- Properties 파일 설정 -->
<properties resource='session/db.properties'/>
<!-- Alias 설정 (별칭)-->
<typeAliases>
<typeAlias alias = "board" type="board.BoardVO" />
</typeAliases>
<!--DB 연결부분-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 매퍼연결 -->
<mappers>
<mapper resource="session/mappings/board-mapping.xml"/>
<mapper resource="session/mappings/emp-mapping.xml"/>
</mappers>
</configuration>
↓board-mapping.xml 기본 형식- 이곳에 쿼리문 작성 ( mapper 엘리먼트 & namespace 설정)
<?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="BoardDAO">
</mapper>
↓DAO 클래스 기본형식1(SqlSession으로 DB 연결)
public class BoardDAO {
private SqlSession sess;
public BoardDAO() {
sess = SqlSessionFactoryBean.getSqlSessionInstance();
}
}
↓DAO 클래스 기본형식2(SqlSessionTemplate 사용)
@Repository("boardDAO")
public class BoardDAOMybatis {
@Autowired
private SqlSessionTemplate mybatis;
}
**db 컬럼명과 VO클래스의 명칭이 다른 경우
[해결법] 별칭 사용하기
SELECT
seq no,
title tname,
writer user,
FROM board
'spring' 카테고리의 다른 글
마리아DB-스프링 연동 (0) | 2021.11.26 |
---|---|
[mybatis] xml 파일에 쿼리문 작성 (0) | 2021.11.12 |
[트랜잭션] (0) | 2021.10.08 |
[스프링JDBC] (0) | 2021.10.08 |
[AOP] 어노테이션 기반 (0) | 2021.10.08 |