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 |