Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 도커컴포즈
- 엘라스틱서치
- 잔디심기
- 파일비트
- 프론트 면접족보
- 자바 패치노트
- 프론트엔드 면접
- next로 jwt
- java 면접정리
- 자동커밋
- NextJs
- 엘라스틱서치로 로그관리
- 프론트 면접
- 자동잔디
- 키바나
- 리액트 패치
- 자바17
- githubaction
- 리액트 패치노트
- java 신입
- 로그스태쉬
- 자바 패치
- 리액트 버전
- 프론트엔드 신입
- 백엔드 신입
- 리액트 #무한스크롤
- 백엔드 면접
- nextjs와 typescript
- java 신입면접
- 깃허브액션
Archives
- Today
- Total
천쓰의 개발동산
9月 - JDBC 을 활용한 DB관리 미니프로젝트 연습 본문
반응형
9월에 진행한 Java와 DB(오라클)로 진행한 초미니 프로젝트 중 하나입니다 .
JDBC는 DAO VO 로 이루어진 DB의 CRUD를 관리해주는 백엔드입니다 .
오라클 연결부입니다 .
이떄는 오라클로 연습할떄라 SCOTT 계정을 사용하였습니다 .
try chatch구문으로 예외처리를하며, 사용하여 연결후
conn / statement /resultset 을 닫는 메서드를 생성하였습니다 .
public class Common {
final static String ORACLE_URL = "jdbc:oracle:thin:@localhost:1521:xe";
final static String ORACLE_ID = "SCOTT";
final static String ORACLE_PW = "TIGER";
final static String ORACLE_DRV = "oracle.jdbc.driver.OracleDriver"; // 오라클이랑 연결하는것. !
public static Connection getConnection(){
Connection conn =null;
try {
Class.forName(ORACLE_DRV); // 드라이버 로드
// 연결 얻기
conn = DriverManager.getConnection(ORACLE_URL, ORACLE_ID, ORACLE_PW);
}catch (Exception e){
System.out.println("xxxxxx");
e.printStackTrace();
}
return conn;
}
public static void close(Connection conn) {
try {
if(conn != null && !conn.isClosed()) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void close(Statement stmt) {
try {
if (stmt != null && !stmt.isClosed()) {
stmt.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void close(ResultSet rset) {
try {
if(rset != null && !rset.isClosed()) {
rset.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
연결메서드 생성후 VO에서 DB에 들어갈 생성자, getter, setter 를 걸어주어 사용하해주었습니다 .
public class ADUserVo {
private String company;
private String banner;
private Date start_AD;
private Date end_AD;
private int AD_Views;
private int view_Price;
private int company_maony;
public ADUserVo(String banner) {
this.banner = banner;
}
public ADUserVo(String company, String banner, Date start_AD, Date end_AD, int AD_Views, int view_Price, int company_maony) {
this.company = company;
this.banner = banner;
this.start_AD = start_AD;
this.end_AD = end_AD;
this.AD_Views = AD_Views;
this.view_Price = view_Price;
this.company_maony = company_maony;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getBanner() {
return banner;
}
public void setBanner(String banner) {
this.banner = banner;
}
public Date getStart_AD() {
return start_AD;
}
public void setStart_AD(Date start_AD) {
this.start_AD = start_AD;
}
public Date getEnd_AD() {
return end_AD;
}
public void setEnd_AD(Date end_AD) {
this.end_AD = end_AD;
}
public int getAD_Views() {
return AD_Views;
}
public void setAD_Views(int AD_Views) {
this.AD_Views = AD_Views;
}
public int getView_Price() {
return view_Price;
}
public void setView_Price(int view_Price) {
this.view_Price = view_Price;
}
public int getCompany_maony() {
return company_maony;
}
public void setCompany_maony(int company_maony) {
this.company_maony = company_maony;
}
}
Dao문은 메소드를 출력메소드와 저장할 메소드를 나누어 만들어 main에 붙여주었습니다 하나예시를 들어주자면
//광고리스트 출력
public List<ADUserVo> AduserSelect() {
List<ADUserVo> list = new ArrayList<>();
try {
conn = Common.getConnection();
stmt = conn.createStatement();
String sql = "SELECT * FROM ADUSER";
rs = stmt.executeQuery(sql);
//rs.값이 있다면 반복(DB 가져온 값이 있으면 행만큼 반복)
while (rs.next()) {
String company = rs.getString("COMPANY");
String banner = rs.getString("BANNER");
Date start_AD = rs.getDate("START_AD");
Date end_AD = rs.getDate("END_AD");
int AD_Views = rs.getInt("AD_VIEWS");
int view_Price = rs.getInt("VIEW_PRICE");
int company_maony = rs.getInt("PRICE");
list.add(new ADUserVo(company, banner, start_AD, end_AD, AD_Views, view_Price, company_maony));
}
Common.close(rs);
Common.close(stmt);
Common.close(conn);
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
}
return list;
}
public void AduserPrint(List<ADUserVo> list) {
System.out.println("=".repeat(10)+"광고 리스트"+"=".repeat(10));
for (ADUserVo e : list) {
System.out.print("" + e.getCompany() + " ");
System.out.print("" + e.getBanner() + " ");
System.out.print("" + e.getStart_AD() + " ");
System.out.print("" + e.getEnd_AD() + " ");
System.out.print("" + e.getAD_Views() + " ");
System.out.print("" + e.getView_Price() + " ");
System.out.println("" + e.getCompany_maony() + " ");
}
이런식으로 사용하여 리스트 출력을 할수있었습니다 .
이번 초미니 프로젝트는 오라클DB에 총 5개 테이블 사용하였으며, 간단하게 콘솔로 만들수있었습니다 .
(예시 콘솔창)
반응형
'JAVA > SPRINGBOOT' 카테고리의 다른 글
Apache POI 아파치포이로 엑셀 DB업로드, DB 엑셀저장 (1) | 2024.07.23 |
---|---|
SRPING BOOT - 파일 DB 저장 하여 사용하는 방법 (0) | 2024.07.09 |
Spring의 JsonWebToken(JWT)로 안전하게 회원관리하기!! (0) | 2024.01.17 |
10月-JAVA(JDBC) 와 REACT를 활용한 미니프로젝트 -(백엔드편) (0) | 2024.01.11 |