코딩 노트

데이터베이스 조회 최종 형태1(member) 본문

Database

데이터베이스 조회 최종 형태1(member)

newbyeol 2023. 7. 24. 18:47

예제는 Member 테이블 사용(회원가입 프로그램)

0. 자바와 데이터베이스를 연결해 주는 도구 클래스 형태로 편하게 구현

public class JdbcUtils {

//연결 정보를 상수로 저장

public static final String driver = "oracle.jdbc.OracleDriver";

public static final String url = "jdbc:oracle:thin:@localhost:1521:xe";

public static final String username = "C##KH";

public static final String password = "KH";

 

//실행도구 생성 메소드

public static JdbcTemplate getJdbcTemplate() {

DriverManagerDataSource dataSource = new DriverManagerDataSource();

dataSource.setDriverClassName(driver);

dataSource.setUrl(url);

dataSource.setUsername(username);

dataSource.setPassword(password);

 

JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

return jdbcTemplate;

 

}

1. 조회 결과 중 한 줄을 담을 객체 (DTO) 생성 

멤버필드, setter/getter, 기본 생성자, toString();

package jdbc.dto;

 

import java.sql.Date;

 

public class MemberDto {

private String memberId;

private String memberPw;

private String memberNinkname;

private String memberBirth;

private String memberEmail;

private String memberContact;

private String memberLevel;

private int memberPoint;

private Date memberJoin;

public MemberDto() {

super();

}

public String getMemberId() {

return memberId;

}

 

public void setMemberId(String memberId) {

this.memberId = memberId;

}

 ~~~

 ~~~

 ~~~

public Date getMemberJoin() {

return memberJoin;

}

 

public void setMemberJoin(Date memberJoin) {

this.memberJoin = memberJoin;

}

@Override

public String toString() {

return "MemberDto [memberId=" + memberId + ", memberPw=" + memberPw + ", memberNinkname=" + memberNinkname

+ ", memberBirth=" + memberBirth + ", memberEmail=" + memberEmail + ", memberContact=" + memberContact

+ ", memberLevel=" + memberLevel + ", memberPoint=" + memberPoint + ", memberJoin=" + memberJoin + "]";

}

}

2. 조회 결과를 DTO에 옮겨 담는 방법을 가진 객체(Mapper) 생성

public class MemberMapper implements RowMapper<MemberDto> {

 

@Override

public MemberDto mapRow(ResultSet rs, int idx) throws SQLException {

MemberDto dto = new MemberDto();

dto.setMemberId(rs.getString("member_id"));

dto.setMemberPw(rs.getString("member_pw"));

dto.setMemberNinkname(rs.getString("member_nickname"));

dto.setMemberBirth(rs.getString("member_birth"));

dto.setMemberEmail(rs.getString("member_email"));

dto.setMemberContact(rs.getString("member_contact"));

dto.setMemberLevel(rs.getString("member_level"));

dto.setMemberPoint(rs.getInt("member_point"));

dto.setMemberJoin(rs.getDate("member_join"));

return dto;

}

 

}

3. 데이터에 접근하도록 DB접근 관련 로직을 모아둔 객체(DAO) 생성

public class MemberDao {

//등록

public void insert(MemberDto dto) {

// String sql = "insert into member("

// + "member_id, member_pw, member_nickname,"

// + "member_birth, member_email, member_contact,"

// + "member_level, member_point, member_join"

// + ") values(?, ?, ?, ?, ?, ?, '일반', 0, sysdate)";

String sql = "insert into member("

+ "member_id, member_pw, member_nickname,"

+ "member_birth, member_email, member_contact"

+ ") values(?, ?, ?, ?, ?, ?)";

Object[] data = {

dto.getMemberId(), dto.getMemberPw(),

dto.getMemberNinkname(), dto.getMemberBirth(),

dto.getMemberEmail(), dto.getMemberContact()

};

 

JdbcTemplate jdbcTemplate = JdbcUtils.getJdbcTemplate();

jdbcTemplate.update(sql, data);

}

}

4. 메인 클래스에 구현

public static void main(String[] args) {

//회원 가입

MemberDto dto = new MemberDto();

dto.setMemberId("testuser5");

dto.setMemberPw("Testuser5!");

dto.setMemberNinkname("테스트유저5");

dto.setMemberBirth("2022-05-05");

dto.setMemberEmail(null);

dto.setMemberContact("01055555555");

 

MemberDao dao = new MemberDao();

dao.insert(dto);

 

System.out.println("회원 가입 완료");

}

'Database' 카테고리의 다른 글

데이터베이스 - 수정  (0) 2023.07.25
데이터베이스 조회 최종 형태2(product)  (0) 2023.07.24
데이터베이스6 - 모듈화  (0) 2023.07.24
데이터베이스5 - JDBC  (0) 2023.07.21
데이터베이스4 - Top N Query  (0) 2023.07.20