반응형
Spring 프로젝트 진행 전 방명록 페이지를 간단하게 만들어 보았습니다.
Oracle 버전과 MySql 버전 두 가지 방식을 사용해서 제작했습니다.
코드는 깃허브에서 확인하실 수 있습니다 : https://github.com/Heegene/personal_projects/tree/master/guestbook
Heegene/personal_projects
personal projects. Contribute to Heegene/personal_projects development by creating an account on GitHub.
github.com
Spring으로 구현된 것은 아니고, MVC 패턴을 이용하여
jsp, servlet, dao/dto를 이용하여 작성하였습니다.
구현 화면:
리스트 페이지에 진입하면 기존에 작성된 방명록(guestbook 테이블)의 목록이 나타납니다.
번호는 방명록의 작성순번이며, 자동으로 매겨집니다.
방명록은 번호 내림차순으로 정렬되어 보여집니다.
이름과 내용을 입력한 후 등록 버튼을 누르면 새 번호가 부여되어 최상단에 나타나게 됩니다. (id = autoincrement)
dao 구현부:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
package org.edwith.webbe.guestbook.dao;
import org.edwith.webbe.guestbook.dto.Guestbook;
import org.edwith.webbe.guestbook.util.DBUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class GuestbookDao {
public List<Guestbook> getGuestbooks() {
List<Guestbook> list = new ArrayList<>();
String sql = "SELECT * FROM guestbook ORDER BY id DESC";
try ( // try-with-resources 사용(automatic close 처리용 - meomry leak 방지 )
Connection conn = DBUtil.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql); )
{ // try 절 시작
while (rs.next()) {
Long id = rs.getLong(1);
String name = rs.getString(2);
String content = rs.getString(3);
Date regdate = rs.getDate(4);
Guestbook guestbook = new Guestbook(id, name, content, regdate);
list.add(guestbook);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
public void addGuestbook(Guestbook guestbook) throws SQLException {
// GuestBook 형태의 argument guestbook을 받아서 진행할 것
// MySQL 버전으로할때는 sysdate 안되므로 참고 및 수정
String sql = "INSERT INTO guestbook VALUES (id, ?, ?, now())";
try ( // try-with-resources 사용(automatic close 처리용)
Connection conn = DBUtil.getConnection();
PreparedStatement ps = conn.prepareStatement(sql);
)
{ // try 절 시작
int resultcount = 0;
// Mysql 버전은 auto increment 가 id에 적용되었으므로
// 그냥 id를 넣어주고, Oracle로 적용했을 때는
// max 값에서 +1 이런식으로 설정해도 됨
ps.setString(1, guestbook.getName());
ps.setString(2, guestbook.getContent());
resultcount = ps.executeUpdate();
if ( resultcount > 0 ) {
System.out.println("입력에 성공하였습니다. ");
} else {
System.out.println("입력에 실패하였습니다. ");
}
}
}
}
|
cs |
느낀 것:
아 이건 쉽지 ! 30분이면 끝나지 ! --> 3시간 걸렸음;;;;;;
Oracle 버전을 MySQL로 바꿀 때도 우당탕 뚝딱거렸고..^^.. 뚝딱거림 잔치..
Autoincrement 를 처음으로 써봤다는 데 의의가 있는 것 같습니다^^...
반응형
'Developments' 카테고리의 다른 글
[이럴땐이렇게] org.mockito import가 안 될 때 (org.mockito cannot be resolved) (0) | 2020.07.30 |
---|---|
200729 Spring MVC 기반 방명록 (0) | 2020.07.29 |
[이럴땐이렇게] UiPath - Not all generic types could be resolved 에러 대처법 (0) | 2020.07.22 |
200720 RPA 도입 프로세스 (0) | 2020.07.20 |
200718 JDBC를 이용한 간단한 명함관리 프로그램 (0) | 2020.07.19 |