일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 반다이몰
- java
- 일본어
- Python
- 비즈니스일본어
- メソッド
- 연습문제
- CSS
- 디지몬
- 인프런
- Flutter
- DART
- javascript
- 日本語
- springboot
- C로 시작하는 컴퓨터 프로그래밍4판
- jsp
- vscode
- 건담
- rails7
- 건담베이스
- 一日一つメソッド
- html
- 자바
- nico
- Web
- Spring
- 単語
- rails
- ruby
- Today
- Total
AR삽질러
JSP - Student관리프로그램(1) - 학생등록 본문
JSP연습용 - 학생관리프로그램
JSP : Java Server Page
jsp에서 java코드를 사용시
<%! %>
<% %>
<%= %>
jsp 지시어
<%@ page : page지시어 -
<%@ include : include지시어
<%@ taglib : taglib지시어
view : index, top, bottom, company,
model : StudentDAO, StudentDTO
DAO : Data Access Object, DB와 상호작용을 담당
DTO : Data Transfer Object, 데이터 전송을 위한 객체
SQL의 개요
- Structured Query Language
- DBMS상에서 데이타를 읽고 쓰고 삭제하는 등 데이타를 관리하기 위한 일종의
프로그램 언어
- 집합적 언어(데이타를 특정 집합 단위로 분류해 이 단위별로 한번에 처리하는 언어)
- 1980년대 후반 RDBMS의 표준언어로 SQL을 채택
- DDL, DML, DCL등으로 구별하여 사용
DDL(Data Definition Language)
- CREATE : 테이블이나 인텍스, 뷰등 데이타베이스 객체를 생성
- DROP : 생성된 데이타베이스 객체를 삭제
- ALTER : 이미 생성된 데이타베이스 객체를 수정
- TRUNCATE : 테이블이나 클러스터의 데이터를 통째로 삭제
DML(Data Manipulation Language)
- SELECT : 테이블이나 뷰에 있는 데이터 조회
- INSERT : 데이터를 추가
- UPDATE : 이미 생성된 데이터를 수정
- DELETE : 데이터를 삭제
DCL(Data Control Language)
- GRANT : 사용자에게 특정 권한을 부여
- REVOKE : 사용자에게 부여된 권한을 회수
트랜잭션 제어
- COMMIT : 트랙잭션 처리, 변경된 데이터를 최종 적용
- ROLLBACK : 트랙잭션 처리, 변경된 데이터를 적용하지 않고 이전으로 되돌림
- SAVEPOINT : rollback 위치 지정
PL/SQL
- SQL을 절차적으로 사용할 수 있게 해주는 언어
- 코드와 문법이 존재하지만, 그 중심은 SQL에 있다
- DB프로그래밍이라는 것은 PL/SQL을 이용해 함수나 프로시저를 만들어
여러 작업을 처리하는 것을 말한다
create table studentex
(id varchar2(10),
pass varchar2(15),
name varchar2(15),
cname varchar2(25));
index
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!-- index.jsp -->
<%@ include file="top.jsp" %>
<h3>제 홈페이지에 오신 걸 환영합니다.</h3>
<ul>
<li><a href="student.jsp">학생관리프로그램</a></li>
</ul>
<%@ include file="bottom.jsp" %>
top
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!-- top.jsp -->
<html>
<head>
<title>홈페이지</title>
</head>
<body>
<div align="center">
<table border="1" width="800" height="600">
<tr height="10%">
<td colspan="2" align="center">
<a href="index.jsp">main</a> | 로그인 | 회원가입 | 게시판 |
<a href="company.jsp">회사소개</a>
</td>
</tr>
<tr>
<td width="20%">tree/view</td>
<td width="80%">
bottom
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!-- bottom.jsp -->
</td>
</tr>
<tr height="10%">
<td colspan="2" align="center">KG아이티뱅크 4-5월 웹프로그램 주말반</td>
</tr>
</table>
</div>
</body>
</html>
company
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!-- company.jsp -->
<%@ include file="top.jsp"%>
<h3>저희 회사는 일은 적고, 월급은 많은 좋은 회사 입니다.</h3>
<%@ include file="bottom.jsp"%>
insert
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
request.setCharacterEncoding("utf-8");
%>
<!-- 넘어온 데이터 넣기 -->
<jsp:useBean id="stdto" class="my.student.StudentDTO" />
<jsp:setProperty property="*" name="stdto" />
<!-- DAO객체 만들기 -->
<jsp:useBean id="stdao" class="my.student.StudentDAO" />
<%
if (stdto.getId() == null || stdto.getId().trim().equals("") ||
stdto.getPass() == null || stdto.getPass().trim().equals("") ||
stdto.getName() == null || stdto.getName().trim().equals("") ||
stdto.getCname() == null || stdto.getCname().trim().equals("")){
response.sendRedirect("student.jsp");
return;
}
int res = stdao.insertStudent(stdto);
String msg = null, url = null;
if (res > 0){
msg = "학생등록 성공!! 학생목록페이지로 이동합니다.";
url = "list.jsp";
}else {
msg = "학생등록 실패!! 학생등록페이지로 이동합니다.";
url = "student.jsp";
}
%>
<script type="text/javascript">
alert("<%= msg %>");
location.href="<%= url %>";
</script>
list
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR" import="java.util.*, my.student.*"%>
<!-- list.jsp -->
<html>
<head>
<title>학생목록</title>
</head>
<body>
<div align="center">
<hr color="green" width="300">
<h2>학 생 목 록 보 기</h2>
<hr color="green" width="300">
<table border="1" width="600">
<tr>
<th>아이디</th>
<th>비 번</th>
<th>학생명</th>
<th>학급명</th>
</tr>
<jsp:useBean id="stdao" class="my.student.StudentDAO" />
<%
List<StudentDTO> list = stdao.listStudent();
if (list == null || list.size() == 0){%>
<tr>
<td colspan="3">등록된 학생이 없습니다.</td>
</tr>
<% }else {
for(StudentDTO dto : list){%>
<tr>
<td><%=dto.getId()%></td>
<td><%=dto.getPass()%></td>
<td><%=dto.getName()%></td>
<td><%=dto.getCname()%></td>
</tr>
<% }
}%>
</table>
</div>
</body>
</html>
student
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!-- student.jsp -->
<html>
<head>
<title>학생관리</title>
</head>
<body>
<div align="center">
<hr color="green" width="300">
<h2>학 생 등 록 페 이 지</h2>
<hr color="green" width="300">
<form name="f" action="insert.jsp" method="post">
<table border="1">
<tr><td>
아이디 : <input type="text" name="id"><br>
비번 : <input type="password" name="pass"><br>
학생명 : <input type="text" name="name"><br>
학급명 : <input type="text" name="cname"><br>
<input type="submit" value="입력">
<input type="reset" value="다시입력">
</td></tr>
</table>
</form>
<hr color="green" width="300">
<h2>학 생 삭 제 페 이 지</h2>
<hr color="green" width="300">
<form name="f" action="delete.jsp" method="post">
<table border="1">
<tr><td>
아이디 : <input type="text" name="id">
<input type="submit" value="삭제">
</td></tr>
</table>
</form>
<hr color="green" width="300">
<h2>학 생 찾 기 페 이 지</h2>
<hr color="green" width="300">
<form name="f" action="find.jsp" method="post">
<table border="1">
<tr><td>
학생명 : <input type="text" name="name">
<input type="submit" value="찾기">
</td></tr>
</table>
</form>
<hr color="green" width="300">
<h2>학 생 목 록 페 이 지</h2>
<hr color="green" width="300">
<form name="f" action="list.jsp" method="post">
<table border="1">
<tr><td>
<input type="submit" value="학생목록리스트로 이동">
</td></tr>
</table>
</form>
</div>
</body>
</html>
delete
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!-- delete.jsp -->
<jsp:useBean id="stdao" class="my.student.StudentDAO" />
<%
String id = request.getParameter("id");
if (id == null || id.trim().equals("")){
response.sendRedirect("student.jsp");
return;
}
int res = stdao.deleteStudent(id);
String msg = null, url = null;
if (res > 0){
msg = "학생삭제 성공!! 학생목록페이지로 이동합니다.";
url = "list.jsp";
}else {
msg = "학생삭제 실패!! 학생등록페이지로 이동합니다.";
url = "student.jsp";
}
%>
<script type="text/javascript">
alert("<%=msg%>")
location.href="<%=url%>"
</script>
find
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR" import="java.util.*, my.student.*"%>
<!-- find.jsp -->
<%
request.setCharacterEncoding("EUC-KR");
String name = request.getParameter("name");
if (name == null || name.trim().equals("")){
response.sendRedirect("student.jsp");
return;
}
%>
<html>
<head>
<title>학생찾기</title>
</head>
<body>
<div align="center">
<hr color="green" width="300">
<h2>학 생 찾 기</h2>
<hr color="green" width="300">
<table border="1" width="500">
<tr>
<th>아이디</th>
<th>학생명</th>
<th>학급명</th>
</tr>
<jsp:useBean id="stdao" class="my.student.StudentDAO" />
<%
List<StudentDTO> list = stdao.findStudent(name);
if (list == null || list.size() == 0){%>
<tr>
<td colspan="3">찾으시는 학생이 없습니다.</td>
</tr>
<% }else {
for(StudentDTO dto : list){%>
<tr>
<td><%=dto.getId()%></td>
<td><%=dto.getName()%></td>
<td><%=dto.getCname()%></td>
</tr>
<% }
}%>
</table>
</div>
</body>
</html>
StudentDTO
package my.student;
//DTO : Data Trasfer Object
public class StudentDTO {
private String id;
private String pass;
private String name;
private String cname;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
}
StudentDAO
package my.student;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
//DAO : Data Access Object - CRUD
public class StudentDAO {
Connection con;
PreparedStatement ps;
ResultSet rs;
String url, user, pass;
public StudentDAO() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException e) {
System.err.println("오라클 드라이버 검색 실패!!");
}
url = "jdbc:oracle:thin:@localhost:1521/XEPDB1";
user = "arang";
pass = "arang";
}
public int insertStudent(StudentDTO dto) throws SQLException {
try {
con = DriverManager.getConnection(url, user, pass);
String sql = "insert into studentex values(? , ? , ?, ?)";
ps = con.prepareStatement(sql);
ps.setString(1, dto.getId());
ps.setString(2, dto.getPass());
ps.setString(3, dto.getName());
ps.setString(4, dto.getCname());
int res = ps.executeUpdate();
return res;
}finally {
if (ps != null) ps.close();
if (con != null) con.close();
}
}
protected List<StudentDTO> makeList(ResultSet rs) throws SQLException {
List<StudentDTO> list = new ArrayList<>();
while(rs.next()) {
String id = rs.getString("id");
String pass = rs.getString("pass");
String name = rs.getString("name");
String cname = rs.getString("cname");
StudentDTO dto = new StudentDTO();
dto.setId(id);
dto.setPass(pass);
dto.setName(name);
dto.setCname(cname);
list.add(dto);
}
return list;
}
public List<StudentDTO> listStudent() throws SQLException {
try {
con = DriverManager.getConnection(url, user, pass);
String sql = "select * from studentex";
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
List<StudentDTO> list = makeList(rs);
return list;
}finally {
if (rs != null) rs.close();
if (ps != null) ps.close();
if (con != null) con.close();
}
}
public int deleteStudent(String id) throws SQLException {
try {
con = DriverManager.getConnection(url, user, pass);
String sql = "delete from studentex where id=?";
ps = con.prepareStatement(sql);
ps.setString(1, id);
int res = ps.executeUpdate();
return res;
}finally {
if (ps != null) ps.close();
if (con != null) con.close();
}
}
public List<StudentDTO> findStudent(String name) throws SQLException {
try {
con = DriverManager.getConnection(url, user, pass);
String sql = "select * from studentex where name = ?";
ps = con.prepareStatement(sql);
ps.setString(1, name);
rs = ps.executeQuery();
List<StudentDTO> list = makeList(rs);
return list;
}finally {
if (rs != null) rs.close();
if (ps != null) ps.close();
if (con != null) con.close();
}
}
}
'JAVA > JSP' 카테고리의 다른 글
JSP - Student관리프로그램(2) - 회원가입, 로그인, 게시판 (0) | 2023.04.25 |
---|---|
JSP-6장 - ActionTag, 7장 - MySQL (0) | 2023.04.14 |
JSP - 5장 Cookie (0) | 2023.04.14 |
JSP - 4장 Session (0) | 2023.04.14 |
JSP - 3장 유효성검사 (0) | 2023.03.31 |