자바

간단한 게시판 예제

chantleman 2024. 7. 24. 10:52

 

 

 

sqld에서 아래 코드 실행시켰을 때 결과를 복사합니다.

 

SELECT 
    'private '||
   DECODE( DATA_TYPE , 'NUMBER', 'int ', 'String ' )||
    LOWER(COLUMN_NAME)||';'
FROM COLS
WHERE TABLE_NAME = 'BOARD'
ORDER BY COLUMN_ID;

 

 

 

 

BoardVO.java 파일에 붙여넣기 후 getter, setter import 하기 (저는 lombok data import 했습니다) 

import lombok.Data;

@Data
public class BoardVO {
	private int no;
	private String title;
	private String content;
	private String write;
	private String reg_date;
}

 

VO는 DB랑 1:1 매칭해서 데이터를 불러오게 합니다.

 


 

 

CRUD (create, read, update, delete) (insert, select, update, delete)

 

 

<IBoard.java> 인터페이스

public interface IBoard  {

	public BoardVO getBoard(int boardNo);
	
	public void insertBoard(BoardVO board);
	
	public void updateBoard(BoardVO board);
	
	public void deleteBoard(int boardNo);
	
}

 

 

 

 

아래와같이 하면 No를 따로 입력할 필요없고 자동으로 번호가 부여됩니다.

 

자동으로 번호를 부여하는 방법에는 

sequence.nextval()해서 현재값 주는 방법이 있고

select nvl(max(no),0)+1 from board;

위 코드를 해서 부여하는 방법이 있습니다.

두번째 방법의 단점은 데이터가 많으면 그 많은 데이터를 다 조회해야된다는 단점이 있습니다.

 

 

 

insert into board values((select  nvl(max(no),0)+1 from board),'제목','내용','작성자',sysdate);
select * from board;

 

데이터값이 잘 삽입된 것을 확인할 수 있습니다.

 

 

 

<BoardImpl.java>  IBoard 상속받고 데이터 대충 입력해보았습니다.

public class BoardImpl implements IBoard {

	@Override
	public BoardVO getBoard(int boardNo) {
		BoardVO board = new BoardVO();
		board.setNo(1);
		board.setContent("안녕!!");
		board.setTitle("인사드립니다..");
		board.setWriter("홍길동");
		board.setReg_date("2024.07.24");
		return board;
	}

	@Override
	public void insertBoard(BoardVO board) {
			
	}

	@Override
	public void updateBoard(BoardVO board) {
			
	}

	@Override
	public void deleteBoard(int boardNo) {
		
	}
}

 

 

 

<BoardFront.java>

public class BoardFront {
	public static void main(String[] args) {
		IBoard board = new BoardImpl();
		
		System.out.println("1. 게시판 등록");
		System.out.println("2. 게시판 조회");
		
		int sel=ScanUtil.nextInt("선택: ");
		
		if(sel==1) 
		{
			System.out.println("== 게시판 등록 ==");
			String title= ScanUtil.nextLine("제목: ");
			String content = ScanUtil.nextLine("내용: ");
			String writer = ScanUtil.nextLine("작성자: ");
			
			BoardVO bo = new BoardVO();
			bo.setTitle(title);
			bo.setContent(content);
			bo.setWriter(writer);
			
			board.insertBoard(bo);
			
		}
		
		if(sel==2)
		{
			System.out.println("== 게시판 조회 ==");
			int boardNo = ScanUtil.nextInt("게시판 번호: ");
			BoardVO bo = board.getBoard(boardNo);
			
			System.out.println(bo.getTitle());
			System.out.println("========================");
			System.out.println(bo.getNo()+"\t"+bo.getWriter()+"\t"+bo.getReg_date());
			System.out.println("------------------------");
			System.out.println(bo.getContent());
			System.out.println("------------------------");
		}
	}
}

'자바' 카테고리의 다른 글

date, calendar  (0) 2024.07.25
try-catch, throw Exception  (2) 2024.07.24
인터페이스  (2) 2024.07.24
추상 클래스  (0) 2024.07.23
오버라이딩. 다형성  (1) 2024.07.23