반응형
DB 연결
root-context.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<!--
root-context.xml : 스프링 설정 파일
서블릿과 필터가 공유할 수 있는 루트 스프링 컨테이너 설정으로, 공통 빈(Service, Repository(DAO), DB, Log 등)을 설정함.
공통빈을 설정하는 곳으로 주로 View 지원을 제외한 bean을 설정함
스프링 설정?
view와 관련되지 않은 객체를 정의 <-> servlet-context.xml
Service(기능), DAO(Repository : 저장소), DB등 비즈니스 로직과 관련된 설정
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName() = "oracle.jdbc.driver.OracleDriver";
-->
<!-- dataSource : 데이터베이스와 관련된 정보를 설정 -->
<!--
db : database(개념. 공유/저장/통합/운영). RDB(Relational DB.관계형DB)
dbms : database management system(DB관리시스템.오라클)
localhost=127.0.0.1=내ip주소
xe : express(OracleXE11g.r2) => SID(sequence ID)
-->
<!--
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:xe");
에러 생길 시 uploadFolder와 uploadFolderDirect의 경로를 수정하기!!
-->
<bean id="uploadFolder" class="java.lang.String">
<constructor-arg value="C:\\eGovFrameDev-3.10.0-64bit\\workspace\\springProj\\src\\main\\webapp\\resources\\upload"></constructor-arg>
</bean>
<bean id="uploadFolderDirect" class="java.lang.String">
<constructor-arg value="C:\\eGovFrameDev-3.10.0-64bit\\workspace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\webapps"></constructor-arg>
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp2.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver" />
<property name="url"
value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="pc10_2" />
<property name="password" value="java" />
</bean>
<!-- 데이터베이스와 연결을 맺고 끊어질 때까지의
라이프 사이클을 관리해주는 sqlSession 객체를 생성
1) dataSource
2) 매퍼 xml의 위치 지정. / : src/main/resources/ + /sqlmap/**/*_SQL.xml
SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource);
-->
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="mapperLocations"
value="classpath:/sqlmap/**/*_SQL.xml" />
<property name="configLocation"
value="/WEB-INF/mybatisAlias/mybatisAlias.xml" />
</bean>
<bean id="myEmpVO" class="kr.or.ddit.vo.EmployeeVO">
<property name="empNo" value="A000"></property>
<property name="empName" value="김수현"></property>
<property name="empAddress" value="대전 중구 문화동 1"></property>
<property name="empTelno" value="010-111-2222"></property>
<property name="empSalary" value="600000000"></property>
<property name="filename" value="A000.jsp"></property>
</bean>
<!-- 데이터베이스에 개별적으로 쿼리를 실행시키는 객체.
이 객체를 통해 query를 실행함
-->
<bean id="sqlSessionTemplate"
class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
</beans>
EmployeeController.java
package kr.or.ddit.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import com.sun.org.apache.xpath.internal.operations.Mod;
import kr.or.ddit.vo.EmployeeVO;
import lombok.extern.slf4j.Slf4j;
// 스프링 프레임워크에게 컨트롤러임을 알려줌
// 스프링이 빈(bean,객체)으로 등록하여 관리
@Controller
@RequestMapping("/employee")
@Slf4j
public class EmployeeController {
// 의존성 주입(Dependency Injection)
@Autowired
EmployeeVO myEmpVO;
/*
요청URI : /employee/create
요청파라미터 :
요청방식 : get
return 타입 : ModelaNDvIEW
model.addObject("title","직원 등록");
model.setViewName("employee/create");
*/
@RequestMapping(value="/create", method=RequestMethod.GET)
public ModelAndView create() {
ModelAndView mav = new ModelAndView();
mav.addObject("title", "직원 등록");
// 뷰리졸버
// /WEB-INF/views/ + employee/create + .jsp
mav.setViewName("employee/create");
return mav;
}
/*
요청URI : /employee/create
요청파라미터 : {empNo=A011, empName=개똥이, empAddress=세종시 새롬중앙로 11
, empTelno=010-5656-2222, empSalary=5000000, filename=A011.jpg}
요청방식 : post
return 타입 : ModelAndView
model.setViewName("redirect:/employee/create");
*/
@RequestMapping(value="/create", method=RequestMethod.POST)
public ModelAndView createPost(EmployeeVO employeeVO) {
log.info("employeeVO : " + employeeVO);
// 하단의 문장을 사용하지 않아도 root-context.xml에 넣어둘 시 어디서든 접근 가능해짐
// EmployeeVO myEmpVO = new EmployeeVO();
// myEmpVO.setEmpNo("A000");
// myEmpVO.setEmpName("김수현");
// myEmpVO.setEmpAddress("대전 중구 문화동 1");
// myEmpVO.setEmpTelno("010-111-2222");
// myEmpVO.setEmpSalary(600000000);
// myEmpVO.setFilename("A000.jsp");
ModelAndView mav = new ModelAndView();
mav.setViewName("redirect:/employee/create");
return mav;
}
}
blank_SQL.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">
<mapper namespace="blank">
</mapper>
mybatisAlias.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>
<!--
[마이바티스] 스프링에서 "_"를 사용한 컬럼명을 사용 시(BOOK 테이블의 BOOK_ID)
카멜케이스로 읽어줌(bookId)
ex) 테이블 컬러명이 member_id인 경우 jsp화면단에서 이 값을 사용 시 memberId로 사용
-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<!-- 자주 사용하는 타입의 별칭을 세팅 -->
<typeAliases>
<typeAlias type="kr.or.ddit.vo.BookVO" alias="bookVO"/>
<typeAlias type="kr.or.ddit.vo.EmployeeVO" alias="employeeVO"/>
<typeAlias type="kr.or.ddit.vo.LprodVO" alias="lprodVO"/>
</typeAliases>
</configuration>
반응형
'스프링 프레임워크' 카테고리의 다른 글
[스프링 프레임워크] 6장 도서 쇼핑몰 delete (0) | 2024.04.24 |
---|---|
[스프링 프레임워크] 5장 도서 쇼핑몰 detail(상세, 수정) (0) | 2024.04.24 |
[스프링 프레임워크] 4장 도서 쇼핑몰 select (0) | 2024.04.24 |
[스프링 프레임워크] 3장 도서 쇼핑몰 insert (0) | 2024.04.23 |
[스프링 프레임워크] 1장 스프링 프레임워크 (롬복 설치와 기본 설정 추가) (0) | 2024.04.22 |