db에 테이블 생성
create table tbl_member (
userid varchar2(50) constraint tbl_member_userid_PK primary key,
userpw varchar2(50) not null,
username varchar2(50) not null,
email varchar2(100),
regdate timestamp default sysdate,
updatedate timestamp default sysdate
);
src/main/java 경로에 있는 domain 폴더에 MemberDTO 파일 생성 후 작성
@AllArgsConstructor
@NoArgsConstructor
@Data
public class MemberDTO {
private String userid;
private String userpw;
private String username;
private String email;
private Timestamp regdate;
private Timestamp updatedate;
}
src/main/java 경로에 persistence 패키지 생성 후 IMemberDAO 인터페이스 작성
public interface IMemberDAO {
public String getTime();
public void insertMember(MemberDTO mDto);
}
src/main/resources경로에 mappers 폴더를 생성하고 memberMapper.xml 파일 생성 후 작성
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hanul.springstudent.memberMapper">
<select id="getTime" resultType="string">
SELECT sysdate
FROM dual
</select>
<insert id="insertMember">
INSERT INTO tbl_member(userid, userpw, username, email)
VALUES(#{userid}, #{userpw}, #{username}, #{email})
</insert>
</mapper>
root-context.xml 파일로 가서 sqlSessionFactory bean에 property 한 줄 추가
<property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml"></property>
그 밑에 sqlSession bean과 component-scan 추가
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<context:component-scan base-package="com.hanul.springstudent.persistence"></context:component-scan>
아까 생성한 persistence 패키지 안에 impl 패키지를 생성하고 MemberDAOImpl 클래스 생성 후 작성
@Repository // 인터페이스 구현 시 필수로 작성해야함
public class MemberDAOImpl implements IMemberDAO {
@Autowired
private SqlSession sqlSession;
private static final String namespace = "com.hanul.springstudent.memberMapper";
@Override
public String getTime() {
return sqlSession.selectOne(namespace + ".getTime");
}
@Override
public void insertMember(MemberDTO mDto) {
sqlSession.insert(namespace + ".insertMember", mDto);
}
}
src/test/java 경로에 JUnit Test Case 생성 후 작성
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class IMemberDAOtest {
@Autowired
private IMemberDAO mDao;
@Test
public void testTime() throws Exception {
log.info("mDao.getTime() : " + mDao.getTime());
}
@Test
public void testInsertMember() throws Exception {
MemberDTO mDto = new MemberDTO();
mDto.setUserid("user01");
mDto.setUserpw("aa1234");
mDto.setUsername("홍길동");
mDto.setEmail("hong@naver.com");
mDao.insertMember(mDto);
}
}
빈공간 우클릭하여 JUnit Test 실행
우측 JUnit탭에 초록색으로 표시되고 하단 콘솔창에 출력이 잘 된다면 테스트 성공!
그리고 처음에 만들어둔 DB 테이블 가서 잘 등록되어있는지 확인!!!
'Programming > Spring' 카테고리의 다른 글
[STS3] Mapper를 활용하여 DB에 데이터 조회하기 (0) | 2024.04.15 |
---|---|
[STS3] Log4Jdbc Log4j2 JDBC 4 설치 (0) | 2024.04.15 |
[STS3] Java Servlet API 설치 (0) | 2024.04.12 |
[STS3] Controller 예제(5) - 예외처리 (0) | 2024.04.12 |
[STS3] Controller 예제(4) - Apache Commons FileUpload 설치 (0) | 2024.04.11 |