728x90
기본 파일 5개
DB 생성 시 PK(Primary Key) 가 있어야 한다.
A 테이블에서 PK는 unique and not null이어야 한다.
A 테이블에서 FK는 다른 B테이블에서 PK이다.
A 테이블의 이 FK로 B테이블과 관계를 맺을 수 있다.
1. CMD 관리자 권한으로 들어감 (hr/rootoor) - 데이터 입력
create table dept (
deptno number(3) primary key,
dname varchar2(10),
loc varchar2(10)
);
insert into dept values(10,'총무부',101);
insert into dept values(20,'영업부',202);
insert into dept values(30,'전산실',303);
insert into dept values(40,'관리부',404);
insert into dept values(50,'경리부',505);
create table gogaek(
gobun number(3) primary key,
goname varchar2(30),
goaddr varchar2(30),
gojumin varchar2(14),
godam number(3)
);
insert into gogaek values (1,'송강','서울 강남구','660123-1234567',3);
insert into gogaek values (2,'정철','대전 유성구','760123-1333567',4);
insert into gogaek values (3,'무송','부산 강서구','912123-1557567',10);
insert into gogaek values (4,'진평','인천 계양구','660123-4567567',1);
insert into gogaek values (5,'소하','서울 동작구','960123-3314567',10);
insert into gogaek values (6,'장량','서울 강북구','801215-1345783',2);
insert into gogaek values (7,'한신','서울 영등포구','911114-2345678',4);
insert into gogaek values (8,'영포','서울 강남구','960123-2034123',15);
insert into gogaek values (9,'팽월','대전 유성구','952345-1033765',4);
insert into gogaek values (10,'임충','서울 강북구','942278-1237815',3);
create table sawon(
sabun number(3) primary key,
saname varchar2(20),
sagene varchar2(10),
dpetno number(3),
sajob varchar2(10),
sahire date,
samgr number(3),
sapay number(8)
);
insert into sawon values(1, '손권', '남자', 40, '부장', '1993-07-25', null, 4000);
insert into sawon values(2, '조조', '남자', 20, '부장', '1988-02-25', null, 4000);
insert into sawon values(3, '순욱', '여자', 20, '대리', '1998-03-25', 2, 3500);
insert into sawon values(4, '유비', '남자', 20, '사원', '2001-03-15', 3, 2400);
insert into sawon values(5, '관우', '남자', 10, '부장', '1984-07-25', null, 4000);
insert into sawon values(6, '장비', '남자', 10, '사원', '2001-04-30', 4, 2000);
insert into sawon values(7, '마초', '여자', 30, '과장', '2004-05-25', 10, 3900);
insert into sawon values(8, '황충', '남자', 40, '과장', '1993-08-15', 1, 3000);
insert into sawon values(9, '조인', '여자', 20, '대리', '1997-11-25', 8, 3200);
insert into sawon values(10, '하우연', '남자', 10, '대리', '1998-05-25', 4, 3300);
commit;
select * from dept;
select * from gogaek;
select * from sawon;
2. Java Resources 에서 DeptVO.java 생성
model 1
: 데이터를 처리하는 로직과 화면을 출력하는 로직이 한 페이지있어서 동시에 실행되는 것을 말한다.
=> ScriptLet에서는 DB연결, ArrayList에서는 값을 추가하는 작업을 함과 동시에 <body>영역에서 html코드로 화면을 구성하는 경우이다.
package vo;
public class DeptVO { // DB(table)에서 만든 열_명이 변수처리가 된다.
int deptNo;
String dName;
String loc;
// public DeptVO() {
// }
public int getDeptNo() {
return deptNo;
}
public void setDeptNo(int deptNo) {
this.deptNo = deptNo;
}
public String getdName() {
return dName;
}
public void setdName(String dName) {
this.dName = dName;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
}
3. jdbs_dept.jsp 작성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="vo.DeptVO"%>
<%@ page import="java.util.ArrayList"%>
<%@ page import="java.sql.ResultSet"%>
<%@ page import="java.sql.PreparedStatement"%>
<%@ page import="java.sql.Connection"%>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.Context"%>
<%@ page import="javax.naming.InitialContext"%>
<%
InitialContext ic = new InitialContext();
Context ctx = (Context) ic.lookup("java:comp/env");
DataSource dataSource = (DataSource) ctx.lookup("jdbc/oracle_test");
Connection conn = dataSource.getConnection();
// out.println("-----get connection!!------");
//System.out.println("--- get connection!!! ---");
String sql = "select * from dept";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
ArrayList<DeptVO> dept_list = new ArrayList<>();
while (rs.next()) {
DeptVO vo = new DeptVO();
vo.setDeptNo(rs.getInt("deptno"));
vo.setdName(rs.getString("dname"));
vo.setLoc(rs.getString("loc"));
dept_list.add(vo);
}
rs.close();
pstmt.close();
conn.close();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table border="1">
<caption>::부서목록::</caption>
<tr> <th>부서번호</th>
<th>부서명</th>
<th>부서위치</th>
</tr>
<% for (int i=0; i<dept_list.size(); i++) {
DeptVO dv = dept_list.get(i); %>
<tr> <td> <%= dv.getDeptNo() %> </td>
<td> <%= dv.getdName() %> </td>
<td> <%= dv.getLoc() %> </td>
</tr>
<% } %>
</table>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="vo.SawonVO"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="javax.naming.Context"%>
<%@page import="javax.sql.DataSource"%>
<%@page import="java.sql.Connection"%>
<!DOCTYPE html>
<% request.setCharacterEncoding("utf-8"); %>
<% int deptno = Integer.parseInt(request.getParameter("deptno"));
InitialContext ic = new InitialContext();
Context ctx = (Context) ic.lookup("java:comp/env");
DataSource dataSource = (DataSource) ctx.lookup("jdbc/oracle_test");
Connection conn = dataSource.getConnection(); //연결 객체 얻어오기
String sql = "select * from sawon where deptno=" + deptno;
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
ArrayList<SawonVO> sawon_list = new ArrayList<>();
while (rs.next()) {
SawonVO vo = new SawonVO();
vo.setDeptNo(rs.getInt("deptno"));
vo.setSabun(rs.getInt("sabun"));
vo.setSaJob(rs.getString("sajob"));
vo.setSaName(rs.getString("saname"));
sawon_list.add(vo);
}
rs.close();
pstmt.close();
conn.close();
%>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table border="1">
<caption>::부서목록::</caption>
<tr><th>부서번호</th>
<th>사원번호</th>
<th>직책</th>
<th>이름</th>
</tr>
<% for (int i=0; i<sawon_list.size(); i++){
SawonVO dv = sawon_list.get(i); %>
<tr><td><%=dv.getDeptNo() %></td>
<td><%=dv.getSabun() %></td>
<td><%=dv.getSaJob() %></td>
<td><%=dv.getSaName() %></td>
</tr>
<% } %>
</table>
</body>
</html>
■ Templete : 쉽고 간편하게 작업할 수 있도록 미리 만들어 놓은 파일인데 이를 이용해서 간단하게 작업할 수 있다.
1. window - Preferences - Java - Editor - Templates - import - xml 파일 넣기
'일단 해보는 코딩 > JSP' 카테고리의 다른 글
[JSP] 성적프로그램 (추가,수정,삭제) (0) | 2022.08.19 |
---|---|
[JSP] VO(Value Object), 내장객체 (0) | 2022.08.16 |
[JSP] JSP이란? (0) | 2022.08.16 |
[JSP] 작업설정하기 (0) | 2022.08.16 |
[JSP] 서블릿2 (0) | 2022.08.12 |