스프링 MVC 기초 - 4
* 회원 테이블
CREATE TABLE `wsuser` (
`useridx` int(11) NOT NULL AUTO_INCREMENT COMMENT '회원 고유번호',
`userid` varchar(255) NOT NULL COMMENT '회원 아이디',
`userpw` varchar(255) NOT NULL DEFAULT '' COMMENT '회원 비밀번호',
`username` varchar(255) NOT NULL DEFAULT '' COMMENT '회원 이름',
`useremail` varchar(255) NOT NULL DEFAULT '' COMMENT '회원 이메일',
`userdatereg` datetime NOT NULL COMMENT '회원 등록 날짜',
PRIMARY KEY (`useridx`) USING BTREE,
KEY `userid` (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
* domain 패키지 생성
* UserVO 클래스 생성
package com.ps.wsol.domain; public class UserVO { private String userid; private String userpw; private String useremail; public String getUserId() { return userid; } public void setUserId(String userid) { this.userid = userid; } public String getUserPw() { return userpw; } public void setUserPw(String userpw) { this.userpw = userpw; } public String getUserEmail() { return useremail; } public void setUserEmail(String useremail) { this.useremail = useremail; } @Override public String toString() { return "UserVO [userid=" + userid + ", userpw=" + userpw + ", useremail=" + useremail + "]"; } } |
* dao 패키지 생성
* UserDAO 인터페이스 생성
package com.ps.wsol.dao; import com.ps.wsol.domain.UserVO; public interface UserDAO { public void insertUser(UserVO vo); } |
* Mapper 파일 생성
src/main/resources 폴더 밑에 mapper라는 패키지 생성 - userMapper.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="com.ps.wsol.mapper.UserMapper"> <insert id="insertUser"> INSERT INTO wsuser ( userid, userpw, useremail, userdatereg ) VALUES ( #{userid}, #{userpw}, #{useremail}, now() ) </insert> </mapper> |
* root-context.xml 수정
<!-- Mybatis와 스프링 연동 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <!-- 스프링 시작시 mybatis-config.xml이 같이 실행되도록 설정 --> <property name="configLocation" value="classpath:/mybatis-config.xml"></property> <property name="mapperLocations" value="classpath:mapper/**/*Mapper.xml"></property> </bean> |
* SqlSessionTemplate 설정 : root-context.xml 수정
<!-- SQLSessionTemplate 설정 --> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache"> <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg> </bean> |
* DAO인터페이스에게 주입 : UserDAOImp 생성
package com.ps.wsol.dao; import org.apache.ibatis.session.SqlSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import com.ps.wsol.domain.UserVO; @Repository public class UserDAOImp implements UserDAO { @Autowired private SqlSession sqlSession; private static final String namespace = "com.ps.wsol.mapper.UserMapper"; @Override public void insertUser(UserVO vo) { sqlSession.insert(namespace + ".insertUser", vo); } } |
* root-context.xml 수정
<context:component-scan base-package="com.ps.wsol.dao"></context:component-scan> |
* Controller 생성
- web 패키지 생성
- UserController 생성
package com.ps.wsol.web; 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 com.ps.wsol.dao.UserDAO; import com.ps.wsol.domain.UserVO; @Controller public class UserController { @Autowired private UserDAO dao; @RequestMapping(value = "/userList", method = RequestMethod.GET) public void userList() { UserVO vo = new UserVO(); vo.setUserId("111"); vo.setUserPw("222"); vo.setUserEmail("333"); dao.insertUser(vo); } } |
기초 끝