일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- C언어 표준 라이브러리
- 메이븐업데이트
- C#접근제어자
- Oracle SQL Developer
- 자바
- 접근제한자
- java
- 오라클
- DAO
- O(n)
- break
- oracle developer
- 데이터베이스
- oracle db
- o(log n)
- 빅오표기법
- DTO
- mvc디자인패턴
- Vo
- Oracle
- JSP
- JavaSwing
- DB
- sql
- 자바연산자
- java접근제어자
- DATABASE
- C#접근제한자
- DB 제약조건
- DEFAULT
성장일기 : 문과생의 개발 여정 (งᐖ)ว ( ᐛ )و
Data Model Class 본문
package database;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class J06_DataModelClass {
/*
# 데이터 모델 클래스
- db에서 꺼낸 데이터를 담아놓는 용도로 사용하는 클래스
- 데이터를 매개변수 등으로 활용하기 편리한 상태
- DTO 또는 VO 등으로 불린다
*/
// 사원정보를 다른 메서드에 반환하고 싶다.
public static void main(String[] args) {
String sql ="SELECT * FROM employees";
try (
Connection conn = JdbcConnection.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
){
//컬럼개수
int columnCount = rs.getMetaData().getColumnCount();
while(rs.next()) {
System.out.println(rs.getInt("employee_id"));
System.out.println(rs.getString("first_name"));
System.out.println(rs.getString("last_name"));
System.out.println(rs.getString("email"));
System.out.println(rs.getString("phone_number"));
System.out.println("---------------------");
// for(int i = 1; i <= columnCount; ++i) {
// System.out.printf(
// //%s 들어 갈 수 있는데. 그 자리수가 metadata안에 있기 때문에 %-s 로 만든것.
// "%-"+ rs.getMetaData().getColumnDisplaySize(i)+"s",
// rs.getObject(i) + "\t");
//}
}
System.out.println();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
=============>
package database;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import database.model.Employee;
public class J06_DataModelClass {
public static void main(String[] args) {
String sql ="SELECT * FROM employees";
try (
Connection conn = JdbcConnection.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
){
//컬럼개수
int columnCount = rs.getMetaData().getColumnCount();
// 테이블의 한 행을 인스턴스화 해놓으면 Collection에서도 활용할 수 있다.
List<Employee> employees = new ArrayList<>();
while(rs.next()) {
// 꺼낸 데이터를 인스턴스화 해놓으면 여기저기 사용하기 편리해진다.
Employee emp = new Employee(
rs.getInt("employee_id"),
rs.getString("first_name"),
rs.getString("last_name"),
rs.getString("email"),
rs.getString("phone_number")
);
//System.out.println(emp);
// database.model.Employee@17aad511 toString()이 안된상태
// package database.model => Employee => toString()오버라이드 하면 -> William Gietz출력
employees.add(emp);
}
System.out.println(employees);
System.out.println();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
package database.model;
// 데이터모델 클래스
public class Employee {
// DB로 부터 null이 나올수 있음으로 기본타입보다 Wrapper 클래스 사용하는것이 좋다
Integer employee_id;
String first_name;
String last_name;
String email;
String phone_number;
public Employee(
Integer employee_id,
String first_name,
String last_name,
String email,
String phone_number
) {
this.employee_id = employee_id;
this.first_name = first_name;
this.last_name = last_name;
this.email = email;
this.phone_number = phone_number;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return String.format("%s %s", first_name, last_name);
}
}
'백엔드개발 > JDBC' 카테고리의 다른 글
quiz (1) | 2023.11.13 |
---|---|
DB와 연동되는 경품 추첨 이벤트 구현 QUIZ (0) | 2023.11.13 |
Meta data (1) | 2023.11.13 |
Transaction (0) | 2023.11.13 |
Execute Update (0) | 2023.11.13 |