DROP TABLE FP_MEMBER;
CREATE TABLE FP_MEMBER(
member_no INT,
member_id VARCHAR(20),
member_pw VARCHAR(100),
member_nick VARCHAR(20),
member_gender VARCHAR(1),
member_birth DATE,
member_phone VARCHAR(30),
member_email VARCHAR(100),
member_createdate DATE
);
DROP SEQUENCE FP_MEMBER_seq;
CREATE SEQUENCE FP_MEMBER_seq;
public class MemberVo {
private int member_no;
private String member_id;
private String member_pw;
private String member_nick;
private String member_gender;
private Date member_birth;
private String member_phone;
private String member_email;
private Date member_createdate;
}
public class MemberVo {
private int member_no;
private String member_id;
private String member_pw;
private String member_nick;
private String member_gender;
private Date member_birth;
private String member_phone;
private String member_email;
private Date member_createdate;
//기본 생성자 - 필수
public MemberVo() {
super();
}
//생성자 - 필수 아님
public MemberVo(int member_no, String member_id, String member_pw, String member_nick, String member_gender,
Date member_birth, String member_phone, String member_email, Date member_createdate) {
super();
this.member_no = member_no;
this.member_id = member_id;
this.member_pw = member_pw;
this.member_nick = member_nick;
this.member_gender = member_gender;
this.member_birth = member_birth;
this.member_phone = member_phone;
this.member_email = member_email;
this.member_createdate = member_createdate;
}
//Getter, Setter - 필수
public int getMember_no() {
return member_no;
}
public void setMember_no(int member_no) {
this.member_no = member_no;
}
public String getMember_id() {
return member_id;
}
public void setMember_id(String member_id) {
this.member_id = member_id;
}
public String getMember_pw() {
return member_pw;
}
public void setMember_pw(String member_pw) {
this.member_pw = member_pw;
}
public String getMember_nick() {
return member_nick;
}
public void setMember_nick(String member_nick) {
this.member_nick = member_nick;
}
public String getMember_gender() {
return member_gender;
}
public void setMember_gender(String member_gender) {
this.member_gender = member_gender;
}
public Date getMember_birth() {
return member_birth;
}
public void setMember_birth(Date member_birth) {
this.member_birth = member_birth;
}
public String getMember_phone() {
return member_phone;
}
public void setMember_phone(String member_phone) {
this.member_phone = member_phone;
}
public String getMember_email() {
return member_email;
}
public void setMember_email(String member_email) {
this.member_email = member_email;
}
public Date getMember_createdate() {
return member_createdate;
}
public void setMember_createdate(Date member_createdate) {
this.member_createdate = member_createdate;
}
}
java.sql.Date 는 java.util.Date 를 상속받은 클래스이다.
출력 형태의 차이로 에러가 발생할 수 있다.
form 태그로 데이터 전송시 날짜가 1997-01-01 형태로 전송된다.
DateTimeFormat 어노테이션으로 변환해준다.
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date member_birth;
@Autowired
private MemberService memberService;
Autowired 를 사용해 의존성 주입한다.
<!-- Mybatis 관련 라이브러리 추가.. -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- DataSource 인스턴스 생성 및 등록 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
//dbcp 방식 공부 추천
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver"></property>
//오라클 연동, 다른 db 연동 가능, OracleDriver 의존성 추가 필요
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>
<property name="username" value="오라클 사용자이름"></property>
<property name="password" value="오라클 비밀번호"></property>
</bean>
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
</bean>
<mybatis-spring:scan base-package="com.example.finalproject.*.mapper"/>
//"com.example.finalproject.member.mapper" 라는 패키지를 생성하고 mapper 인터페이스를 생성해야 함
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>21.1.0.0</version>
</dependency>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<?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.example.finalproject.member.mapper.MemberSqlMapper">
<insert id="joinMember">
INSERT INTO FP_MEMBER VALUES(
FP_MEMBER_seq.nextval,
#{member_id},
#{member_pw},
#{member_nick},
#{member_gender},
#{member_birth},
#{member_phone},
#{member_email},
SYSDATE
)
</insert>
</mapper>