일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 자바제너릭
- jpa
- Open EntityManager
- springbootproxy
- JPA프록시
- dockercmd
- 이해와 원리
- 에이치투데이터베이스
- sql
- JPAmapping
- 데이터베이트h2
- JPA값타입
- httppie
- jpqlquery
- 임베디드타입
- spring
- springbootH2
- JPA Hint & Lock
- OSIV
- MySqlType
- JDBC connection pool
- 스프링부트기본설정
- gitinitial
- 제이피큐엘쿼리
- embededtype
- JPAproxy
- javageneric
- 스프링부트
- Git
- springboot기본설정
- Today
- Total
빡코
스프링 3.0 + MyBatis 셋팅 본문
[ SpringMyBatis 프로젝트 생성]
1. 프로젝트 생성
2.SpringJdbcTemplate 아래 Class 파일들을 복사해서 붙여넣어 준다
3.SpringJdbcTemplate 의 pom.xml 파일을 SpringMyBatis 프로젝트위에 덮어씌운다.
4.CustomMain.java Dao2 이름을 Dao로 변경!!
[Maven 라이브러리 추가해주기]
주소
Maven 라이브러리 태그를 pom.xml에 추가해준다.
1. https://mvnrepository.com/artifact/org.mybatis/mybatis/3.4.6
2.https://mvnrepository.com/artifact/org.mybatis/mybatis-spring/1.3.2
pom.xml에서 Tag 설정을 살펴보면 아래와 같다
mvnrepository.com 사이트에서 복사해온 Tag를 pom.xml에서 추가해주면서, 동시에 spring - jdbc의 version ${spring.framework.version}으로 설정하고, 저장을 눌러준다.
<!-- Spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.framework.version}</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.2</version>
</dependency>
</dependencies>
<!-- ojdbc6 관련 주소 별도지정 -->
<repositories>
<repository>
<id>oracle</id>
<name>Oracle JDBC Repository</name>
<url>https://repo.spring.io/plugins-release/</url>
</repository>
</repositories>
com.exe.springmybatis 하위에 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">
<!-- 지금 쓰는 것은 스프링에서는 사용하지 않아도 된다. 그런데 mybatis를 가지고 다른
프레임에 사용할 경우 아래의 configuration을 작성해 줘야 한다. -->
<configuration>
<properties>
<property name="driver"
value="oracle.jdbc.driver.OracleDriver"/>
<property name="url"
value="jdbc:oracle:thin:@192.168.16.16:1521:TestDB"/>
<property name="username" value="SUZI"/>
<property name="password" value="A123"/>
</properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="#{url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 현재 실제로 필요한 것! -->
<mappers>
<mapper resource="com/exe/mapper/customMapper.xml"/>
</mappers>
</configuration>
src/main/java 폴더 아래 com.exe.mapper 패키지를 생성후 cutomerMapper.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">
<!-- 실제 회사에서는 namespace는 패키지 이름을 사용한다. -->
<mapper namespace="com.exe.mapper">
<!-- 2.0의 parameterClass >> 3.0에서는 parameterType으로 변경!!-->
<insert id="insert" parameterType="com.exe.springmybatis.CustomDTO">
insert into custom (id,name,age)
values (#{id},#{name},#{age})
</insert>
<!-- resultType은 반환값 -->
<select id="list" resultType="com.exe.springmybatis.CustomDTO">
select id,name,age from custom
</select>
<!-- id를 받아서 한개의 데이터 가지고 오기 -->
<select id="listOne" parameterType="int"
resultType="com.exe.springmybatis.CustomDTO">
select id,name,age from custom
where id=#{id}
</select>
<!-- 수정 -->
<update id="update" parameterType="com.exe.springmybatis.CustomDTO">
update custom set name=#{name}, age=#{age}
where id=#{id}
</update>
<delete id="delete" parameterType="int">
delete custom where id=#{id}
</delete>
</mapper>
이제부터 app-context.xml 파일을 설정해보면, 아래와 같다. 기존에 존재하던 app-context.xml 파일을
src/main/java 폴더에 덮어씌우면 씌우고 진행한다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context-3.0.xsd">
<description>Example configuration to get you started.</description>
<context:component-scan base-package="com.exe.springmybatis" />
<bean id="customDAO" class="com.exe.springmybatis.CustomDAO">
<property name="sessionTemplate" ref="sessionTemplate"></property>
</bean>
<bean id="sessionTemplate"
class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg ref="sessionFactory"/>
</bean>
<bean id="sessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation"
value="classpath:/com/exe/springmybatis/mybatis-config.xml"/>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close"
p:driverClassName="oracle.jdbc.driver.OracleDriver"
p:url="jdbc:oracle:thin:@192.168.16.16:1521:TestDB"
p:username="SUZI"
p:password="A123"/>
</beans>
CustomDAO
//mybast DAO
package com.exe.springmybatis;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.sql.DataSource;
import org.mybatis.spring.SqlSessionTemplate;
public class CustomDAO {
/*
//이전 메소드로 초기화 방법
private DataSource dataSource;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
*/
//app-context에서 sessionTemplate 을 받아야 한다.
private SqlSessionTemplate sessionTemplate;
public void setSessionTemplate(SqlSessionTemplate sessionTemplate) {
this.sessionTemplate = sessionTemplate;
}
public void insertData(CustomDTO dto) {
sessionTemplate.insert("com.exe.mapper.insert",dto);
}
public List<CustomDTO> getList(){
List<CustomDTO> lists =
sessionTemplate.selectList("com.exe.mapper.list");
return lists;
}
public CustomDTO getReadData(int id){
CustomDTO dto =
sessionTemplate.
selectOne("com.exe.mapper.listOne",id);
return dto;
}
public void updateData(CustomDTO dto) {
sessionTemplate.update("com.exe.mapper.update",dto);
}
public void deleteData(int id) {
sessionTemplate.delete("com.exe.mapper.delete",id);
}
}
CustomDTO
package com.exe.springmybatis;
public class CustomDTO {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
CustomMain
package com.exe.springmybatis;
import java.util.List;
import org.springframework.context.support.GenericXmlApplicationContext;
public class CustomMain {
public static void main(String[] args) {
//app-context.xml을 먼저 읽어와야한다.
GenericXmlApplicationContext context =
new GenericXmlApplicationContext("app-context.xml");
CustomDAO dao = (CustomDAO)context.getBean("customDAO");
CustomDTO dto;
//insert
dto = new CustomDTO();
dto.setId(888);
dto.setName("김수지666");
dto.setAge(888);
dao.insertData(dto);
System.out.println("입력 완료!!");
//select
List<CustomDTO> lists = dao.getList();
for(CustomDTO dto1 : lists) {
System.out.printf("%d %s %s \n",
dto1.getId(),dto1.getName(),dto1.getAge());
}
System.out.println("select 완료!!");
//One select
dto = dao.getReadData(666);
if(dto!=null) {
System.out.printf("%d %s %d \n",
dto.getId(),dto.getName(),dto.getAge());
}
//update
dto = new CustomDTO();
dto.setId(666);
dto.setName("으악");
dto.setAge(33);
dao.updateData(dto);
System.out.println("업데이트 완료");
//delete
dao.deleteData(888);
System.out.println("삭제완료");
}
}
'Java' 카테고리의 다른 글
Spring 3.0 View 셋팅 실습하기 (0) | 2019.11.15 |
---|---|
Spring 3.0 + Mybatis 셋팅 && 실습 (0) | 2019.11.15 |
Spring 3.0 + jdbc 셋팅 && 실습 (0) | 2019.11.15 |
스프링 3.0 + 웹 개발 (0) | 2019.11.14 |
스프링 3.0 + APO 셋팅 및 실습 (0) | 2019.11.14 |