โโ์ฌ์์ ๋ณด ์ญ์ ํ๊ธฐโโ
ํ์์ ๋ณด๋ฅผ ์ญ์ ํ๋ฉด DB์์๋ ํ ์ด๋ธ์์ ๊ฐ์ฒด ์ ๋ณด๋ฅผ ์ญ์ ํ๊ธฐ
empDAO.java
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
|
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class EmpDAO
{
private Connection conn;
private Statement stmt;
private PreparedStatement pstmt;
private ResultSet rs;
private Connection getConn()
{
try {
Class.forName("oracle.jdbc.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "SCOTT", "TIGER");
this.conn = conn;
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public List<EmpVO> getList()
{
getConn();
try {
this.stmt = conn.createStatement();
this.rs = stmt.executeQuery("SELECT * FROM emp2");
List<EmpVO> list = new ArrayList<>();
while(rs.next())
{
int empno = rs.getInt("EMPNO");
String ename = rs.getString("ENAME");
java.sql.Date hiredate = rs.getDate("HIREDATE");
float salary = rs.getFloat("SAL");
EmpVO emp = new EmpVO();
emp.setEmpno(empno);
emp.setEname(ename);
emp.setHiredate(hiredate);
emp.setSal(salary);
list.add(emp);
}
return list;
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return null;
}
public List<EmpVO> getEmpByDeptno(int deptno)
{
getConn();
try {
this.stmt = conn.createStatement();
String sql = "SELECT * FROM emp2 WHERE deptno=" + deptno;
this.rs = stmt.executeQuery(sql);
List<EmpVO> list = new ArrayList<>();
while(rs.next())
{
int empno = rs.getInt("EMPNO");
String ename = rs.getString("ENAME");
java.sql.Date hiredate = rs.getDate("HIREDATE");
float salary = rs.getFloat("SAL");
EmpVO emp = new EmpVO();
emp.setEmpno(empno);
emp.setEname(ename);
emp.setHiredate(hiredate);
emp.setSal(salary);
list.add(emp);
}
return list;
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return null;
}
public EmpVO getEmpByEmpno(int empno)
{
getConn();
try {
this.stmt = conn.createStatement();
String sql = "SELECT * FROM emp2 WHERE empno="+empno;
this.rs = stmt.executeQuery(sql);
if(rs.next())
{
int eno = rs.getInt("EMPNO");
String ename = rs.getString("ENAME");
int deptno = rs.getInt("DEPTNO");
java.sql.Date hiredate = rs.getDate("HIREDATE");
float salary = rs.getFloat("SAL");
EmpVO emp = new EmpVO();
emp.setEmpno(eno);
emp.setEname(ename);
emp.setDeptno(deptno);
emp.setHiredate(hiredate);
emp.setSal(salary);
return emp;
}
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return null;
}
public EmpVO getEmpByEname(String ename)
{
getConn();
try {
String sql = "SELECT * FROM emp2 WHERE ename=?";
this.pstmt =conn.prepareStatement(sql);
pstmt.setString(1, ename);
this.rs = pstmt.executeQuery();
if(rs.next())
{
int eno = rs.getInt("EMPNO");
String insertename = rs.getString("ENAME");
int deptno = rs.getInt("DEPTNO");
java.sql.Date hiredate = rs.getDate("HIREDATE");
float salary = rs.getFloat("SAL");
EmpVO emp = new EmpVO();
emp.setEmpno(eno);
emp.setEname(insertename);
emp.setDeptno(deptno);
emp.setHiredate(hiredate);
emp.setSal(salary);
return emp;
}
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return null;
}
public boolean updateEmp(EmpVO emp)
{
getConn();
try {
String sql = "UPDATE emp2 SET sal=?, deptno=? WHERE empno=?";
this.pstmt = conn.prepareStatement(sql);
pstmt.setFloat(1, emp.getSal());
pstmt.setInt(2, emp.getDeptno());
pstmt.setInt(3, emp.getEmpno());
int rows = pstmt.executeUpdate();
return rows>0 ? true : false;
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return false;
}
public boolean deleteEmp(int empno)
{
getConn();
try {
String sql = "DELETE FROM emp2 WHERE empno=?";
this.pstmt = conn.prepareStatement(sql);
pstmt.setInt(1,empno);
int rows = pstmt.executeUpdate();
return rows>0 ? true : false;
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return false;
}
public List<Integer> getDeptnoList()
{
getConn();
try {
this.stmt = conn.createStatement();
String sql = "SELECT distinct deptno FROM emp2 ORDER BY deptno";
this.rs = stmt.executeQuery(sql);
List<Integer> list = new ArrayList<>();
while(rs.next())
{
int deptno = rs.getInt("DEPTNO");
list.add(deptno);
}
return list;
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return null;
}
private void closeAll()
{
try {
if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
if(pstmt!=null) pstmt.close();
if(conn!=null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
|
cs |
180~199 ํ : ํ๋ผ๋ฏธํฐ๋ก ๋์ด์จ ์ฌ์ ๋ฒํธ๋ก DB์ ์๋ ํ ์ด๋ธ์์ ์ฌ์๋ฒํธ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ DELETE ํด์ค๋ค.
ํ ์ด๋ธ์ ํ์ ๋ณํ๊ฐ int rows = stmt.executeUpdate(sql); ์ด ๋ก์ง์์ ๋ํ๋๋๋ฐ ๋ณํ๊ฐ ์๋ค๋ฉด 1์ด ๋์จ๋ค.
์ผํญ์กฐ๊ฑด์์ ์จ์ boolean๊ฐ์ ๋ฆฌํดํด์ค๋ค.
EmpService.java
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
import java.io.*;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
public class EmpService
{
private HttpServletRequest request;
private HttpServletResponse response;
private String viewPath = "/WEB-INF/jsp/emp";
public EmpService(HttpServletRequest request, HttpServletResponse response)
{
this.request = request;
this.response = response;
}
public String exec()
{
String cmd = request.getParameter("cmd");
if(cmd==null || cmd.equals("list"))
{
List<EmpVO> list = getList();
request.setAttribute("list", list);
return viewPath + "/empList.jsp";
}
else if(cmd.equals("findByDeptno"))
{
int deptno = Integer.valueOf(request.getParameter("deptno"));
List<EmpVO> list = getEmpByDeptno(deptno);
request.setAttribute("list", list);
return viewPath + "/empList.jsp";
}
else if(cmd.equals("getEmpByEmpno"))
{
int empno = Integer.valueOf(request.getParameter("empno"));
EmpVO emp = getEmpByEmpno(empno);
request.setAttribute("emp", emp);
return viewPath + "/empDetail.jsp";
}
else if(cmd.equals("findByEname"))
{
String ename = request.getParameter("ename");
EmpVO emp = getEmpByEname(ename);
System.out.println("์๋น์ค์ฌ๋ฒ:"+emp.getEmpno());
request.setAttribute("emp", emp);
return viewPath + "/empDetail.jsp";
}
else if(cmd.equals("editEmp"))
{
int empno = Integer.valueOf(request.getParameter("empno"));
EmpVO emp = getEmpByEmpno(empno);
request.setAttribute("emp", emp);
return viewPath + "/empEdit.jsp";
}
else if(cmd.equals("updateEmp"))
{
boolean updated = updateResult();
JSONObject jsObj = new JSONObject();
Map<String, Object> map = new HashMap<>();
map.put("updated", updated);
sendJSONStr(map);
}
else if(cmd.equals("deleteEmp"))
{
boolean deleted = deleteResult();
JSONObject jsObj = new JSONObject();
Map<String, Object> map = new HashMap<>();
map.put("deleted", deleted);
sendJSONStr(map);
}
else if(cmd.equals("getDeptList"))
{
String strDeptlist = getDeptList();
try {
PrintWriter out = response.getWriter();
out.print(strDeptlist);
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
public List<EmpVO> getList()
{
EmpDAO dao = new EmpDAO();
List<EmpVO> list = dao.getList();
return list;
}
public List<EmpVO> getEmpByDeptno(int deptno)
{
EmpDAO dao = new EmpDAO();
List<EmpVO> list = dao.getEmpByDeptno(deptno);
return list;
}
public EmpVO getEmpByEmpno(int empno)
{
EmpDAO dao = new EmpDAO();
EmpVO emp = dao.getEmpByEmpno(empno);
return emp;
}
public EmpVO getEmpByEname(String ename) {
EmpDAO dao = new EmpDAO();
EmpVO emp = dao.getEmpByEname(ename);
return emp;
}
public boolean updateResult() {
String sEmpno = request.getParameter("empno");
String sSal = request.getParameter("sal");
String sDeptno = request.getParameter("deptno");
EmpVO emp = new EmpVO();
emp.setEmpno(Integer.parseInt(sEmpno));
emp.setSal(Float.parseFloat(sSal));
emp.setDeptno(Integer.parseInt(sDeptno));
EmpDAO dao = new EmpDAO();
return dao.updateEmp(emp);
}
public boolean deleteResult()
{
int empno = Integer.valueOf(request.getParameter("empno"));
EmpDAO dao = new EmpDAO();
return dao.deleteEmp(empno);
}
public String getDeptList()
{
EmpDAO dao = new EmpDAO();
List<Integer> list = dao.getDeptnoList();
JSONArray jsArr = new JSONArray();
for(int i=0;i<list.size();i++)
{
jsArr.add(list.get(i));
}
return jsArr.toJSONString();
}
public void sendJSONStr(Map<String, Object> map){
JSONObject jsobj = new JSONObject(map);
String jsStr = jsobj.toJSONString();
try {
PrintWriter out = response.getWriter();
out.print(jsStr);
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
|
cs |
68 ~ 76 ํ : cmd๊ฐ deleteEmp์ด๋ฉด ์๋๋๋ ๋ก์ง์ผ๋ก 129 ~134ํ์์ ๋์ด์จ ๊ฐ์ ๋ฐ์ deleted์ ์ ์ฅํ๊ณ json๋ฌธ์์ด ๋ฐฐ์ด๋ก ๋ณด๋ด์ค๋ค. ์ด๊ฑด jsp์์ response์์ ๋ฐ์์ ์ญ์ ์ฑ๊ณตํ๋์ง ์คํจํ๋์ง ๋ฐ๋๋ค.
129 ~134 ํ : request๊ฐ์ฒด์์ ํ๋ผ๋ฏธํฐ๋ก ๋์ด์จ ์ฌ๋ฒ์ ์ ์ฅํ์ฌ EmpDAO ํด๋์ค์ deleteEmp์ ํ๋ผ๋ฏธํฐ์ ๋ฃ์ด์ค๋ค.
empDetail.jsp
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
|
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>์ฌ์์ ๋ณด ์์ธ๋ณด๊ธฐ</title>
<style>
main { width: fit-conent; padding:1em; }
h3 { width:fit-content; text-align: center; }
label { display:inline-block; margin-right:1em; width:3em;
background-color:rgb(200,255,200); text-align:right; padding:0.5em;
}
div { margin-top:0.5em; }
</style>
<script src="https://code.jquery.com/jquery-3.6.1.min.js"
integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous">
</script>
<script type="text/javascript">
function deleteEmp(empno)
{
if(!confirm("์ ๋ง๋ก ํ์ฌ ์ฌ์์ ๋ณด๋ฅผ ์ญ์ ํ๊ฒ ์ต๋๊น?")) return;
$.ajax({
url:'oracle',
method:'post',
data: {'cmd':'deleteEmp','empno':empno},
cache : false,
dataType: 'json',
success: function(res){
if(res.deleted){
alert(res.deleted ? '์ญ์ ์ฑ๊ณต':'์๋ฌ');
location.href ='oracle?cmd=list';
}
},
error : function(xhr,status,err){
alert(err);
}
});
return false;
}
</script>
</head>
<body>
<main>
<h3>์ฌ์์ ๋ณด ์์ธ๋ณด๊ธฐ</h3>
<div><label>์ฌ๋ฒ</label> ${emp.empno}</div>
<div><label>์ด๋ฆ</label> ${emp.ename}</div>
<div><label>๋ถ์</label> ${emp.deptno}</div>
<div><label>๊ธ์ฌ</label> ${emp.sal}</div>
<div><label>์
์ฌ</label> ${emp.hiredate}</div>
<a href="oracle?cmd=editEmp&empno=${emp.empno}">[์์ ]</a>
<a href="javascript:deleteEmp(${emp.empno});">[์ญ์ ]</a>
</main>
</body>
</html>
|
cs |
EmpService.java 74ํ์์ ๋์ด์จ json ๋ฌธ์์ด ๊ฐ์ 29ํ res ์์ ๋ฐ๋๋ค. ๋์ด์จ ๊ฐ์ด ์ฐธ์ด๋ฉด ์ญ์ ์ฑ๊ณต์ ๊ฑฐ์ง์ด๋ฉด ์๋ฌ๋ฅผ alert์ฐฝ์ ๋์ด๋ค.
์คํ๊ฒฐ๊ณผ :
โโ์ฌ์ ์ ๋ณด ์ถ๊ฐํ๊ธฐโโ
์ด์ฉ์์๊ฒ ์ ๋ ฅ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์๋ ์ ์ฅํ๋ฉด์ DB์๋ ์ ์ฅํ๊ธฐ
EmpDAO.java
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
|
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class EmpDAO
{
private Connection conn;
private Statement stmt;
private PreparedStatement pstmt;
private ResultSet rs;
private Connection getConn()
{
try {
Class.forName("oracle.jdbc.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "SCOTT", "TIGER");
this.conn = conn;
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public List<EmpVO> getList()
{
getConn();
try {
this.stmt = conn.createStatement();
this.rs = stmt.executeQuery("SELECT * FROM emp2");
List<EmpVO> list = new ArrayList<>();
while(rs.next())
{
int empno = rs.getInt("EMPNO");
String ename = rs.getString("ENAME");
java.sql.Date hiredate = rs.getDate("HIREDATE");
float salary = rs.getFloat("SAL");
EmpVO emp = new EmpVO();
emp.setEmpno(empno);
emp.setEname(ename);
emp.setHiredate(hiredate);
emp.setSal(salary);
list.add(emp);
}
return list;
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return null;
}
public List<EmpVO> getEmpByDeptno(int deptno)
{
getConn();
try {
this.stmt = conn.createStatement();
String sql = "SELECT * FROM emp2 WHERE deptno=" + deptno;
this.rs = stmt.executeQuery(sql);
List<EmpVO> list = new ArrayList<>();
while(rs.next())
{
int empno = rs.getInt("EMPNO");
String ename = rs.getString("ENAME");
java.sql.Date hiredate = rs.getDate("HIREDATE");
float salary = rs.getFloat("SAL");
EmpVO emp = new EmpVO();
emp.setEmpno(empno);
emp.setEname(ename);
emp.setHiredate(hiredate);
emp.setSal(salary);
list.add(emp);
}
return list;
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return null;
}
public EmpVO getEmpByEmpno(int empno)
{
getConn();
try {
this.stmt = conn.createStatement();
String sql = "SELECT * FROM emp2 WHERE empno="+empno;
this.rs = stmt.executeQuery(sql);
if(rs.next())
{
int eno = rs.getInt("EMPNO");
String ename = rs.getString("ENAME");
int deptno = rs.getInt("DEPTNO");
java.sql.Date hiredate = rs.getDate("HIREDATE");
float salary = rs.getFloat("SAL");
EmpVO emp = new EmpVO();
emp.setEmpno(eno);
emp.setEname(ename);
emp.setDeptno(deptno);
emp.setHiredate(hiredate);
emp.setSal(salary);
return emp;
}
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return null;
}
public boolean addEmp(EmpVO emp)
{
getConn();
try {
String sql = "INSERT INTO emp2 "
+ "(empno, ename, deptno, sal, hiredate) VALUES(?,?,?,?,?)";
this.pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, emp.getEmpno());
pstmt.setString(2, emp.getEname());
pstmt.setInt(3, emp.getDeptno());
pstmt.setFloat(4, emp.getSal());
pstmt.setDate(5, emp.getHiredate());
int rows = pstmt.executeUpdate();
return rows>0 ? true : false;
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return false;
}
public EmpVO getEmpByEname(String ename)
{
getConn();
try {
String sql = "SELECT * FROM emp2 WHERE ename=?";
this.pstmt =conn.prepareStatement(sql);
pstmt.setString(1, ename);
this.rs = pstmt.executeQuery();
if(rs.next())
{
int eno = rs.getInt("EMPNO");
String insertename = rs.getString("ENAME");
int deptno = rs.getInt("DEPTNO");
java.sql.Date hiredate = rs.getDate("HIREDATE");
float salary = rs.getFloat("SAL");
EmpVO emp = new EmpVO();
emp.setEmpno(eno);
emp.setEname(insertename);
emp.setDeptno(deptno);
emp.setHiredate(hiredate);
emp.setSal(salary);
return emp;
}
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return null;
}
public boolean updateEmp(EmpVO emp)
{
getConn();
try {
String sql = "UPDATE emp2 SET sal=?, deptno=? WHERE empno=?";
this.pstmt = conn.prepareStatement(sql);
pstmt.setFloat(1, emp.getSal());
pstmt.setInt(2, emp.getDeptno());
pstmt.setInt(3, emp.getEmpno());
int rows = pstmt.executeUpdate();
return rows>0 ? true : false;
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return false;
}
public boolean deleteEmp(int empno)
{
getConn();
try {
String sql = "DELETE FROM emp2 WHERE empno=?";
this.pstmt = conn.prepareStatement(sql);
pstmt.setInt(1,empno);
int rows = pstmt.executeUpdate();
return rows>0 ? true : false;
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return false;
}
public List<Integer> getDeptnoList()
{
getConn();
try {
this.stmt = conn.createStatement();
String sql = "SELECT distinct deptno FROM emp2 ORDER BY deptno";
this.rs = stmt.executeQuery(sql);
List<Integer> list = new ArrayList<>();
while(rs.next())
{
int deptno = rs.getInt("DEPTNO");
list.add(deptno);
}
return list;
}catch(Exception ex) {
ex.printStackTrace();
}finally {
closeAll();
}
return null;
}
private void closeAll()
{
try {
if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
if(pstmt!=null) pstmt.close();
if(conn!=null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
|
cs |
125 ~ 149 ํ : ํ๋ผ๋ฏธํฐ๋ก emp ๊ฐ์ฒด๋ฅผ ๋ฐ์์ emp ๊ฐ์ฒด ๋ด์ ์๋ ์ฌ๋ฒ, ์ด๋ฆ, ๋ถ์๋ฒํธ, ๊ธ์ฌ, ์ ์ฌ์ผ์ preparestatment์ ์ ์ฅํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด DB์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๊ณ , ํ์ ๋ณํ๋ฅผ 0๋ณด๋ค ํฐ์ง ํ์ธํ์ฌ boolean๊ฐ์ผ๋ก ๋ฆฌํดํด์ค๋ค.
(ํ์ ๋ณํ๊ฐ ์๋ค๋ฉด rows๊ฐ 1์ด๋ค.)
EmpService.java
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
|
import java.io.*;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
public class EmpService
{
private HttpServletRequest request;
private HttpServletResponse response;
private String viewPath = "/WEB-INF/jsp/emp";
public EmpService(HttpServletRequest request, HttpServletResponse response)
{
this.request = request;
this.response = response;
}
public String exec()
{
String cmd = request.getParameter("cmd");
if(cmd==null || cmd.equals("list"))
{
List<EmpVO> list = getList();
request.setAttribute("list", list);
return viewPath + "/empList.jsp";
}
else if(cmd.equals("addEmp"))
{
return viewPath + "/empAdd.jsp";
}
else if(cmd.equals("addResultEmp"))
{
boolean added = addEmp();
JSONObject jsObj = new JSONObject();
Map<String, Object> map = new HashMap<>();
map.put("added", added);
sendJSONStr(map);
}
else if(cmd.equals("findByDeptno"))
{
int deptno = Integer.valueOf(request.getParameter("deptno"));
List<EmpVO> list = getEmpByDeptno(deptno);
request.setAttribute("list", list);
return viewPath + "/empList.jsp";
}
else if(cmd.equals("getEmpByEmpno"))
{
int empno = Integer.valueOf(request.getParameter("empno"));
EmpVO emp = getEmpByEmpno(empno);
request.setAttribute("emp", emp);
return viewPath + "/empDetail.jsp";
}
else if(cmd.equals("findByEname"))
{
String ename = request.getParameter("ename");
EmpVO emp = getEmpByEname(ename);
System.out.println("์๋น์ค์ฌ๋ฒ:"+emp.getEmpno());
request.setAttribute("emp", emp);
return viewPath + "/empDetail.jsp";
}
else if(cmd.equals("editEmp"))
{
int empno = Integer.valueOf(request.getParameter("empno"));
EmpVO emp = getEmpByEmpno(empno);
request.setAttribute("emp", emp);
return viewPath + "/empEdit.jsp";
}
else if(cmd.equals("updateEmp"))
{
boolean updated = updateResult();
JSONObject jsObj = new JSONObject();
Map<String, Object> map = new HashMap<>();
map.put("updated", updated);
sendJSONStr(map);
}
else if(cmd.equals("deleteEmp"))
{
boolean deleted = deleteResult();
JSONObject jsObj = new JSONObject();
Map<String, Object> map = new HashMap<>();
map.put("deleted", deleted);
sendJSONStr(map);
}
else if(cmd.equals("getDeptList"))
{
String strDeptlist = getDeptList();
try {
PrintWriter out = response.getWriter();
out.print(strDeptlist);
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
public List<EmpVO> getList()
{
EmpDAO dao = new EmpDAO();
List<EmpVO> list = dao.getList();
return list;
}
public List<EmpVO> getEmpByDeptno(int deptno)
{
EmpDAO dao = new EmpDAO();
List<EmpVO> list = dao.getEmpByDeptno(deptno);
return list;
}
public EmpVO getEmpByEmpno(int empno)
{
EmpDAO dao = new EmpDAO();
EmpVO emp = dao.getEmpByEmpno(empno);
return emp;
}
public EmpVO getEmpByEname(String ename) {
EmpDAO dao = new EmpDAO();
EmpVO emp = dao.getEmpByEname(ename);
return emp;
}
public boolean updateResult() {
String sEmpno = request.getParameter("empno");
String sSal = request.getParameter("sal");
String sDeptno = request.getParameter("deptno");
EmpVO emp = new EmpVO();
emp.setEmpno(Integer.parseInt(sEmpno));
emp.setSal(Float.parseFloat(sSal));
emp.setDeptno(Integer.parseInt(sDeptno));
EmpDAO dao = new EmpDAO();
return dao.updateEmp(emp);
}
public boolean deleteResult()
{
int empno = Integer.valueOf(request.getParameter("empno"));
EmpDAO dao = new EmpDAO();
return dao.deleteEmp(empno);
}
public boolean addEmp() {
String sEmpno = request.getParameter("empno");
String sEname = request.getParameter("ename");
String sDeptno = request.getParameter("deptno");
String sSal = request.getParameter("sal");
String sHiredate = request.getParameter("hiredate");
java.sql.Date hiredate = java.sql.Date.valueOf(sHiredate);
EmpVO emp = new EmpVO();
emp.setEmpno(Integer.parseInt(sEmpno));
emp.setEname(sEname);
emp.setDeptno(Integer.parseInt(sDeptno));
emp.setSal(Float.parseFloat(sSal));
emp.setHiredate(hiredate);
EmpDAO dao = new EmpDAO();
return dao.addEmp(emp);
}
public String getDeptList()
{
EmpDAO dao = new EmpDAO();
List<Integer> list = dao.getDeptnoList();
JSONArray jsArr = new JSONArray();
for(int i=0;i<list.size();i++)
{
jsArr.add(list.get(i));
}
return jsArr.toJSONString();
}
public void sendJSONStr(Map<String, Object> map){
JSONObject jsobj = new JSONObject(map);
String jsStr = jsobj.toJSONString();
try {
PrintWriter out = response.getWriter();
out.print(jsStr);
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
|
cs |
33~39ํ : ๋์ด์จ boolean๊ฐ์ json ๋ฌธ์์ด๋ก jsp๋ก ๋ณด๋ด์ค๋ค.
147~164ํ : ํ๋ผ๋ฏธํฐ๋ก ๋์ด์จ ๋ชจ๋ ๊ฐ๋ค์ emp๊ฐ์ฒด์ ๋ด์์ EmpDAO์ addEmp() ๋ฉ์๋์ ๋ฃ์ด์ค๋ค.
empAdd.jsp
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
|
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>์ฌ์ ์ ๋ณด ์ถ๊ฐ</title>
<script src="https://code.jquery.com/jquery-3.6.1.min.js" integrity=
"sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous">
</script>
<script type="text/javascript">
function addEmp()
{
var empno = $('#empno').val();
var ename = $('#ename').val();
var deptno = $('#deptno').val();
var sal = $('#sal').val();
var hiredate = $('#hiredate').val();
if(empno==''|| ename==''|| deptno==''|| sal==''|| hiredate==''){
alert('๋ชจ๋ ํญ๋ชฉ ์
๋ ฅ์ ํ์์
๋๋ค.');
return false;
}
alert('์ ์์ ์ผ๋ก ์
๋ ฅํ์ฌ ํผ์ ์ ์กํฉ๋๋ค.');
var obj = $('#addEmp').serialize();
$.ajax({
url : 'oracle',
method: 'post',
data: obj,
cache : false,
dataType:'json',
success:function(res){
alert(res.added ? '์ถ๊ฐ ์ฑ๊ณต' : '์ถ๊ฐ ์คํจ');
location.href="oracle?cmd=list";
},
error : function(xhr,status,err){
alert('์๋ฌ:' + err);
}
});
return false;
}
</script>
</head>
<body>
<main>
<h3>์ฌ์ ์ ๋ณด ์ถ๊ฐ</h3>
<form id="addEmp" onsubmit="return addEmp();">
<input type="hidden" name="cmd" value="addResultEmp">
<div><label>์ฌ๋ฒ</label>
<input id="empno" type="number" name="empno" value="">
</div>
<div>
<label for="ename">์ด๋ฆ</label>
<input id="ename" type="text" name="ename" value="">
</div>
<div>
<label for="deptno">๋ถ์</label>
<select id="deptno" name="deptno">
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
</div>
<div><label>๊ธ์ฌ</label>
<input id="sal" type="number" name="sal" value="">
</div>
<div><label>์
์ฌ</label>
<input id="hiredate" type="date" name="hiredate" value="">
</div>
<div class="btn">
<button type="reset">์ทจ์</button>
<button type="submit">์ ์ฅ</button>
</div>
</form>
</main>
</body>
</html>
|
cs |
๋ฐ์ดํฐ๋ค์ด ๋์ด๊ฐ๊ธฐ ์ ์ ํผ ์ฒดํฌ๋ฅผ ํด์ฃผ๊ณ ์๋ฒ์์ ๋์ด์จ json ๋ฌธ์์ด์ response์์ ๋ฐ์ ์ถ๊ฐ๊ฐ ์ฑ๊ณตํ๋์ง ์คํจํ๋์ง alert ์ฐฝ์ผ๋ก ์๋ ค์ค๋ค.
์คํ ๊ฒฐ๊ณผ :
โโDB์์ ํ ์ด๋ธ ์์ฑโโ
์๋ก์ด board ํ ์ด๋ธ์ ์์ฑ
DB์ Constraints : ์ ์ฝ์กฐ๊ฑด
- not null : ์ปฌ๋ผ๊ฐ์ผ๋ก null์ ๊ฑฐ๋ถ
- DEFAULT : ์ปฌ๋ผ๊ฐ์ ์ง์ ํ์ง ์์ผ๋ฉด ๋์ ์ฌ์ฉ๋๋ ๊ฐ
- UNIQUE : ํด๋น ์ปฌ๋ผ์ ๊ฐ๋ด์์๋ ์ค๋ณต๋์ง ์์์ผํ๋ค.
- PRIMARY KEY : NOT NULL + UNIQUE
- FOREIGN KEY : ์ธ๋ถ ํค(์ฐธ์กฐ ํค) ๋ค๋ฅธ ํ
์ด๋ธ์ ํน์ ์ปฌ๋ผ ์์ ์๋ ๊ฐ๋ง ์ฌ์ฉ
ํ์ฌ ์์คํ ์ ๋ ์ง DB์ ๊ฐ์ ธ์ค๊ธฐ
SELECT SYSDATE AS today FROM dual;
์ค๋ผํด์์ SELECT๋ฌธ์์ from์ ์๋ตํ ์ ์๋ค. dual์ด๋ ํ์์ ์ธ ํ
์ด๋ธ(1ํ๊ณผ 1์ด)
SELECT๋ฌธ์ FROM์ ํ์ ์๋งํผ ๋ฐ๋ณตํ์ฌ ๊ฐ์ ๊ฐ์ ธ์ค๋ ํน์ง์ด ์๋ค.
dual ํ
์ด๋ธ์ด 1ํ๋ง ์์ผ๋ฏ๋ก 1๊ฐ ๊ฐ๋ง ๊ฐ์ ธ์จ๋ค.
today๋ ์ปฌ๋ผ ๋ช
์ ํ์ฌ ์ปดํจํฐ์ ๋ ์ง ๋ถ๋ฌ์ค๊ธฐ
DB์์ ๊ธ์ ์์ฑํ๋ฉด ์๋์ผ๋ก ๋ณด๋์์ด๋์ +1์ฉ ์ฆ๊ฐ์์ผ์ฃผ๊ธฐ ์ํ์ฌ ์ค๋ผํด์ ์๋ ๊ธฐ๋ฅ์ค์ ์ํ์ค ์ฐ๊ธฐ
๊ธฐ๋ณธ ๊ฐ์ 1๋ก ์ค์ ํ๊ณ ์ฆ๋ถ์ 1๋ก ๋๊ณ ์บ์๋ ์์์ผ๋ก ์ค์ ํด์ฃผ์๋ค.
๊ฒ์ํ ๊ธ ์์ฑํ ๋ ๋ณด๋ ์์ด๋ ์ค์ ๋ฃ๋ ๋ฒ
DB์์ ํ ์ด๋ธ ์ญ์ & ์ํ์ค ์ญ์ ๋ฐฉ๋ฒ
DROP TABLE ํ ์ด๋ธ ๋ช ;
DROP SEQUENCE ์ํ์ค ๋ช ;
๋๊ธ