Java/자바 기반 웹 개발자 과정 필기
[200619.80일차] Spring 10 - MyBatis
༚
2020. 6. 19. 08:55
반응형
MyBatis 기본틀
pom.xml
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.3</version>
</dependency>
<!-- JDBC Template -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
jdbc-config.xml
<bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="spring" />
<property name="password" value="1234" />
</bean>
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation"
value="classpath:mybatis/mybatis-config.xml" />
<property name="mapperLocations"
value="classpath:mybatis/mapper.xml" />
</bean>
<bean id="sqlSession"
class="org.mybatis.spring.SqlSessionTemplate"
destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory"
ref="sqlSessionFactory"></constructor-arg>
</bean>
web.xml
<filter>
<filter-name>encodingFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
mybatis-config.xml & mapper.xml
<!-- mybatis-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>
<typeAliases>
</typeAliases>
</configuration>
<!-- 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="com.care.mybatis.myMapper">
</mapper>
Table 생성
create table mybatis_test(
num number,
name varchar2(30),
mydate date
);
insert into mybatis_test values(1,'홍길동',sysdate);
insert into mybatis_test values(2,'김개똥',sysdate);
commit;
select *
=> 전체 리스트 가져오기
TestDTO
mybatis-config.xml
=> 별칭을 지정해서 mapper에서 사용
mapper.xml
=> sql문 결과값을 dto타입 listAll에 저장
(dto는 mybatis-config.xml에서 TestDTO 타입의 별칭 )
나중에 DAO에서 namespace에 명시된 경로(sql문이 있는 경로)로 접근하게 변수를 만듬
namespace는 아무거나 써도 되지만, 서로 같아야 한다.
TestController
servlet-context.xml
TestService
TestDAO
test.jsp
실행
select
=> 결과값이 하나일때
input.jsp
TestController
TestService
TestDAO
mapper.xml
list.jsp
실행
더보기

숫자가 아닌 문자를 입력했을때 => 500 오류

/* 실행되지 않아도 오류가 뜨지 않을것 같은 문장은 try-catch문으로 묶음 */
insert
inputuser.jsp
TestController
TestService
TestDAO
mapper.xml
Update & Delete
더보기
Service 인터페이스 안에
@Select("sql문") /@Insert 를 직접 써서 사용하는 방식도 있다.
public void testtt();
반응형