단순 코드 기록/Spring

Spring_MVC

일일일코_장민기 2024. 2. 8. 15:10
728x90
DTO

package com.dto;

import org.apache.ibatis.type.Alias;

@Alias("DeptDTO") //com.dto.DeptDTO --> DeptDTO
public class DeptDTO {

private int deptno;
private String dname;
private String loc;
@Override
public String toString() {
return "DeptDTO [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc + "]";
}
public DeptDTO() {
super();
// TODO Auto-generated constructor stub
}
public DeptDTO(int deptno, String dname, String loc) {
super();
this.deptno = deptno;
this.dname = dname;
this.loc = loc;
}
public int getDeptno() {
return deptno;
}
public void setDeptno(int deptno) {
this.deptno = deptno;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}



}

 

 

jdbc.properties

 

jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:xe
jdbc.userid=scott
jdbc.passwd=tiger

 

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="DeptMapper">

<select id="selectAll" resultType="DeptDTO">
select deptno, dname, loc
from dept
order by deptno desc
</select>

<insert id="insert" parameterType="DeptDTO">
insert into dept
values (#{deptno}, #{dname}, #{loc})
</insert>

<update id="update" parameterType="DeptDTO">
update dept
set dname = #{dname}, 
loc = #{loc}
where deptno = #{deptno}
</update>

<delete id="delete" parameterType="int">
delete from dept
where deptno = #{deptno}
</delete>

</mapper>

 

 

Main

 


import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;

import com.dto.DeptDTO;
import com.service.DeptService;

public class Main {

public static void main(String[] args) {
ApplicationContext ctx = new GenericXmlApplicationContext("classpath:com/config/dept.xml");

//6번 Service GetBean
DeptService serv = (DeptService)ctx.getBean("deptService");

//7번 Service 함수 호출
List<DeptDTO> list = serv.select();
System.out.println("=========== CDM 전 ============");
for (DeptDTO deptDTO : list) {
System.out.println(deptDTO);
}
System.out.println("\n============ CDM =============");

// DeptDTO dto = new DeptDTO(50, "회계", "서울");
// int num1 = serv.insert(dto);

// DeptDTO dto2 = new DeptDTO(50, "경영", "강원");
// int num2 = serv.update(dto2);

// int num3 = serv.delete(50);


System.out.println("\n=========== CDM 후 ============");
for (DeptDTO deptDTO : list) {
System.out.println(deptDTO);
}


}
}

 

 

Service

 

 

package com.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import com.dao.DeptDAO;
import com.dto.DeptDTO;

public class DeptService {

@Autowired
DeptDAO dao;

///////////// Getter, Setter 함수 ////////////////////

public DeptDAO getDao() {
return dao;
}

public void setDao(DeptDAO dao) {
this.dao = dao;
}

///////////// Getter, Setter 함수 ////////////////////


public List<DeptDTO> select(){
return dao.select();
}

public int insert(DeptDTO dto) {
return dao.insert(dto);
}

public int update(DeptDTO dto) {
return dao.update(dto);
}

public int delete(int deptno) {
return dao.delete(deptno);
}



}

 

 

DAO

 

package com.dao;

import java.util.List;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;

import com.dto.DeptDTO;

public class DeptDAO {

@Autowired
SqlSessionTemplate session; //기본 Sqlsession과 동일

///////////// Getter, Setter 함수 ////////////////////

public SqlSessionTemplate getSession() {
return session;
}

public void setSession(SqlSessionTemplate session) {
this.session = session;
}

///////////// Getter, Setter 함수 ////////////////////


public List<DeptDTO> select(){
return session.selectList("selectAll");
}

public int insert(DeptDTO dto) {
int i = session.insert("insert", dto);
if(i > 0) {
System.out.println("insert 행 수 : "+i);
}
return i;
}

public int update(DeptDTO dto) {
int i =  session.update("update", dto);
if(i > 0) {
System.out.println("update 행 수 : "+i);
}
return i;

}

public int delete(int deptno) {
int i = session.delete("delete", deptno);
if(i > 0) {
System.out.println("delete 행 수 : "+i);
}
return i;
}





}

 

 

dept.xml

 

 

<?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:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">

<!-- 0번: annotation 활성화 ****************************************************-->
<context:annotation-config />

<!-- 1번: JDBC Properties 등록 ************************************************-->
<context:property-placeholder
location="classpath:com/config/jdbc.properties" />

<!-- 2번: DataSource생성(4가지 정보)(Configuration 역할) **************************-->
<bean id="myDataSource"
class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.userid}"/>
<property name="password" value="${jdbc.passwd}"/>
</bean>

<!-- 3번: SqlSessionFactoryBean 생성 (Configuration 역할) ********************-->
<!-- DataSource / Mapper / Alias 지정 -->
<bean id="mySqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="myDataSource"/>
<property name="mapperLocations">
<list>
<value>classpath:com/config/DeptMapper.xml</value>
</list>
</property>
<property name="typeAliases">
<list>
<value>com.dto.DeptDTO</value>
</list>
</property>
</bean>

<!-- 4번: SqlSessionTemplate 생성******************************************* -->
<!-- 실제 DAO에서 사용하는 객체(SqlSession과 동일한 기능) -->
<bean id="mySqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="mySqlSessionFactory"/>
</bean>

<!-- 5번: DAO, Service Bean생성 *********************************************-->
<!-- 6번은 메인에서  -->
<bean class="com.dao.DeptDAO" id="deptDAO"/>
<bean class="com.service.DeptService" id="deptService"/>



</beans>

 

 

'단순 코드 기록 > Spring' 카테고리의 다른 글

Spring_MVC_Autowired  (0) 2024.02.08
Spring_MVC_Annotation  (0) 2024.02.08
Spring_context-scan  (0) 2024.02.08
Spring_SpEL  (0) 2024.02.08
Spring_Value  (0) 2024.02.08