자바23일차

달달한스위츠·2024년 3월 6일

자바배우기

목록 보기
23/43

오늘의코드

CREATE TABLE ADMIN (
    ADMIN_CODE NUMBER PRIMARY KEY,
    ADMIN_ID VARCHAR2(100) UNIQUE,
    ADMIN_PASSWORD VARCHAR2(100)
);

CREATE TABLE USERS (
    USER_CODE NUMBER PRIMARY KEY,
    USER_ID VARCHAR2(100) NOT NULL,
    USER_NAME VARCHAR2(100) NOT NULL,
    USER_PASSWORD VARCHAR2(100) NOT NULL,
    USER_PHONE VARCHAR2(100),
    USER_EMAIL VARCHAR2(100),
    USER_GENDER VARCHAR2(10),
    USER_BIRTH_DATE VARCHAR2(100)
);

CREATE TABLE BOOKLIST (
    BOOK_ID  NUMBER PRIMARY KEY,
    BOOK_NAME VARCHAR2(100) NOT NULL,
    BOOK_CATEGORY_ID NUMBER,
    CONSTRAINT fk_booklist_category
        FOREIGN KEY (BOOK_CATEGORY_ID)
        REFERENCES BOOKCATEGORY(BOOK_CATEGORY_ID)
);

CREATE TABLE BOOKCATEGORY (
    BOOK_CATEGORY_ID NUMBER PRIMARY KEY,
    BOOK_CATEGORY VARCHAR2(100) UNIQUE
);

CREATE TABLE BOOKSERVICE (
    USER_CODE NUMBER,
    BOOK_SERVICE_INOUT VARCHAR2(100),
    BOOK_SERVICE_OUTTIME DATE,
    BOOK_SERVICE_INTIME DATE,
    CONSTRAINT fk_bookservice_user
        FOREIGN KEY (USER_CODE)
        REFERENCES USERS(USER_CODE)
);

COMMIT;
/*
시퀀스 생성하기
HW1_SEQ
시작값 1
증가값 1
최대값 10000
NOCYCLE
NOCACHE
*/
CREATE SEQUENCE HW1_SEQ
    INCREMENT BY 1
    START WITH 1
    MAXVALUE 10000
    NOCYCLE
    NOCACHE;
SELECT HW1_SEQ.NEXTVAL FROM DUAL;
-------------------------------------- 시퀀스 생성
CREATE SEQUENCE USER_SEQ
    INCREMENT BY 1
    START WITH 2
    MAXVALUE 10000
    NOCYCLE
    NOCACHE;
SELECT USER_SEQ.NEXTVAL FROM DUAL;
----------------------------------------유저 회원가입
INSERT INTO EX_MEMBER (ID, PW)
VALUES('test', 'test1234');

INSERT INTO  USERS (USER_CODE, USER_ID, USER_PASSWORD, USER_NAME)
VALUES (USER_SEQ.nextval, ?, ?, ?);

COMMIT;

db 만드는 중...

package edu.java.booklist;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JLabel;

import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class BookslistMain {

	private JFrame frame;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					BookslistMain window = new BookslistMain();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public BookslistMain() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	
	private void initialize() {
		frame = new JFrame();
		frame.setBounds(600, 200, 811, 629);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);

		JLabel lblNewLabel = new JLabel("New label");
		lblNewLabel.setBounds(36, 14, 57, 15);
		frame.getContentPane().add(lblNewLabel);

		JButton btnLogin = new JButton("로그인");
		btnLogin.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// 일반적으로 새로운 프레임이나, 다이얼로그를 생성할 때는
				// 각 클래스들을 상속받는 자식 클래스를 만들어서 사용하는 것이
				// 편의성 면에서 더 좋음
				LoginFrame loginframe = new LoginFrame(); // Myframe작업이 다끝나고 출력
				loginframe.setVisible(true);
//				frame.setVisible(false); // 메인 프레임을 안보이게
				TEST test = new TEST();
				test.setVisible(true);
			}
		});
		btnLogin.setBounds(686, 10, 97, 23);
		frame.getContentPane().add(btnLogin);
		
		JButton btnmembership = new JButton("회원가입");
		btnmembership.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				MembershipFrame membershipframe = new MembershipFrame(frame);
				frame.setVisible(false);
				membershipframe.setVisible(true);
				
			}
		});
		btnmembership.setBounds(577, 10, 97, 23);
		frame.getContentPane().add(btnmembership);
	}
}

메인 만드는 중

아래부턴 명세서 만든것

도서 대여 명세서

주제 : 도서를 대여할 수 있는 프로그램 구현

기능 :

  • 로그인
  • 로그아웃
  • 회원가입
  • 회원 수정
  • 회원 등록
  • 회원 삭제
  • 관리자 페이지
  • 도서 리스트 검색
  • 도서 리스트 추가
  • 도서 리스트 수정
  • 도서 리스트 삭제
  • 도서 대여
  • 도서 반납
  • 전체 도서 정보 출력
  • 도서 대여 시간 기록
  • 도서 반납 시간 기록
  • 도서 리스트 대여한 ID 확인
  • 페이징 처리

데이터 구조 - DB 테이블
테이블명: ADMIN
컬럼 :
ADMIN_CODE(NUMBER) : 관리자 인덱스 - PK
ADMIN_ID(VARCHAR2) : 관리자 아이디 - PK
ADMIN_PASSWORD(VARCHAR2) : 관리자 비밀번호 - PK

테이블명 : USERS
컬럼 :
USER_CODE(NUMBER) : 유저 인덱스 - PK
USER_ID(VARCHAR2) : 유저 아이디 - NOT NULL
USER_NAME(VARCHAR2) : 유저 이름 - NOT NULL
USER_PASSWORD(VARCHAR2) : 유저 비밀번호 - NOT NULL
USER_PHONE(VARCHAR2) : 유저 전화번호
USER_EMAIL(VARCHAR2) : 유저 이메일
USER_GENDER(VARCHAR2) : 유저 성별
USER_BIRTH_DATE(VARCHAR2) : 유저 생년월일

테이블명 : BOOKLIST
컬럼 :
BOOK_ID(NUMBER) : 도서 인덱스 - PK
BOOK_NAME(VARCHAR2) : 도서 이름 - NOT NULL
BOOK_CATEGORY_ID(NUMBER) : 도서 카테고리 id - PK

테이블 : BOOKCATEGORY
컬럼 :
BOOK_CATEGORY_ID(NUMBER) : 도서 카테고리 id - PK
BOOK_CATEGORY(VARCHAR2) : 도서 카테고리 - UNIQUE

테이블명 : BOOKSERVICE
컬럼 :
USER_CODE(NUMBER) : 유저 인덱스 - PK
BOOK_SERVICE_INOUT(NUMBER) : 도서 대여상태 - NOT NULL
BOOK_SERVICE_OUTTIME(DATETIME) : 도서 대여시간 - PK
BOOK_SERVICE_INTIME(DATETIME) : 도서 반납시간 - PK

데이터 구조 - AdminVO
admincode(int) : 관리자 인덱스
adminId(String) : 관리자 아이디
adminpassword(String) : 관리자 비밀번호

UserVO
usercode(int) : 유저 인덱스
userId(String) : 유저 아이디
userpassword(String) : 유저 비밀번호
username(String) : 유저 이름
userphone(String) : 유저 전화번호
useremail(String) : 유저 이메일
usergenser(String) : 유저 성별
userbirthdate(String) : 유저 생년월일

BookListVO
BookId(int) : 도서 인덱스
BookName(String) : 도서 이름
BookCategory(int) : 도서 카테고리

bookcategroyVO
BookCategory(int) : 도서 카테고리

bookserviceVO
usercode(int) : 유저 인덱스
BookServiceInout(int) : 도서 대여상태
BookServiceOuttime(String) : 도서 대여시간
BookServiceIntime(String) : 도서 반납시간

클래스 명세서
BooklistDAO.java : DAO Interface. 도서 검색 기능 메서드 정의
BooklistDAOImple.java
: DAO Implement 클래스. 도서 검색 기능 메서드 구현
DB에 접근하여 데이터 검색 수행

AdminDAO.java : DAO Interface. 관리자 기능 메서드 정의
AdminDAOImple.java
: DAO Implement 클래스. 유저 관리 기능 메서드 구현
DB에 접근하여 데이터 등록/검색/수정/삭제 수행

UserDAO.java : DAO Interface. 유저 관리 기능 메서드 정의
UserDAOImple.java
: DAO Implement 클래스. 유저 관리 기능 메서드 구현
DB에 접근하여 데이터 등록/검색/수정/삭제 수행

BookserviceDAO.java : DAO Interface. 도서 대여/관리 기능 메서드 정의
BookserviceDAO.java
: DAO Implement 클래스. 도서 대여/관리 기능 메서드 구현
DB에 접근하여 데이터 등록/검색/수정/삭제 수행

BooklistVO.java : Model 클래스. 데이터 송수신 클래스

AdminVO.java : Model 클래스. 데이터 송수신 클래스

UserVO.java : Model 클래스. 데이터 송수신 클래스

BookserviceVO.java : Model 클래스. 데이터 송수신 클래스(카테고리도 같이)

OracleQuery.java : Oracle DB 정보 인터페이스. DB 연결을 위한 상수. 사용자 정보
테이블 및 컬럼 정보. 쿼리 작성

BooklistMain.java : Bookslist UI 클래스. GUI로 화면 구현

LoginPanel.java : LoginPanel UI 클래스. GUI로 화면 구현

새롭게 창을 열 클래스
AdminFrame.java : Admin UI 클래스. GUI로 화면 구현
UserFrame.java : User UI 클래스. GUI로 화면 구현
LoginFrame.java : Login UI 클래스. GUI로 화면 구현
BookserviceFrame.java : Bookservice UI 클래스. GUI로 화면 구현

0개의 댓글