반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- web 사진
- java역사
- broscoding
- 웹 용어
- mglearn
- bccard
- vscode
- CES 2O21 참가
- discrete_scatter
- CES 2O21 참여
- web 개발
- web
- C언어
- postorder
- 결합전문기관
- Keras
- tensorflow
- cudnn
- paragraph
- 머신러닝
- pycharm
- 재귀함수
- 대이터
- KNeighborsClassifier
- 데이터전문기관
- web 용어
- inorder
- classification
- html
- 자료구조
Archives
- Today
- Total
bro's coding
java.web.model1 본문
반응형
Model1 Architecture
JSP <--> Java Beans(component) <--> Database
JSP : client의 요청을 분석하고 Java Beans와 연동해서 적절한 결과를 응답하는 역할
Java Beans : 자바 클래스들로 구성된 컴포넌트 , DB 연동 로직과 비즈니스 로직을 수행한다
( 참고 : 컴포넌트란 객체들이 상호 연동되어 독립적 기능 단위를 구성할 때 컴포넌트라고 한다)
package org.kosta.webstudy12.model;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
// DAO : Data Access Object 데이터베이스 연동 로직을 정의한 객체
public class MemberDAO {
private String driver = "oracle.jdbc.OracleDriver";
private String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
private String user = "scott";
private String pass = "tiger";
public MemberDAO() throws ClassNotFoundException {
Class.forName(driver);
}
public void closeAll(PreparedStatement pstmt, Connection con) throws SQLException {
if (pstmt != null)
pstmt.close();
if (con != null)
con.close();
}
// 메서드 오버로딩
public void closeAll(ResultSet rs, PreparedStatement pstmt, Connection con) throws SQLException {
if (rs != null)
rs.close();
closeAll(pstmt, con);
}
public int getTotalMemberCount() throws SQLException {
int count = 0;
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
con = DriverManager.getConnection(url, user, pass);
String sql = "select count(*) from member";
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
if (rs.next())
count = rs.getInt(1);
} finally {
closeAll(rs, pstmt, con);
}
return count;
}
public MemberVO findMemberById(String id) throws SQLException {
MemberVO vo = null;
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
con = DriverManager.getConnection(url, user, pass);
String sql = "select name,address from member where id=?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, id);
rs = pstmt.executeQuery();
if (rs.next()) {
vo = new MemberVO(id, null, rs.getString(1), rs.getString(2));
}
} finally {
closeAll(rs, pstmt, con);
}
return vo;
}
}
package org.kosta.webstudy12.model;
public class MemberVO {
private String id;
private String password;
private String name;
private String address;
public MemberVO() {
super();
// TODO Auto-generated constructor stub
}
public MemberVO(String id, String password, String name, String address) {
super();
this.id = id;
this.password = password;
this.name = name;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "MemberVO [id=" + id + ", password=" + password + ", name=" + name + ", address=" + address + "]";
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Model 1</title>
</head>
<body>
<h4>Model 1 Architecture(설계양식) 테스트</h4>
<ul>
<li><a href="AllMemberCount.jsp">총회원수 조회</a></li>
<li><a href="findMemberById-form.jsp">회원검색</a>
</ul>
<hr>
<img src="model1.png" width="600">
</body>
</html>
<%@page import="org.kosta.webstudy12.model.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원검색화면</title>
</head>
<body bgcolor="lime">
<%
//초기 방식에 비해 jsp 의 코드량이 감소 , 데이터 액세스 로직 업데이트시 영향이 없다
// 초기 jsp 만으로 개발하는 방식에 비해 재사용성이 높다
MemberDAO dao = new MemberDAO();
int count = dao.getTotalMemberCount();
%>
총회원수
<%=count%>명
<hr>
<form action="findMemberById-action.jsp">
아이디 <input type="text" name="memberId" required="required">
<button type="submit">검색</button>
</form>
</body>
</html>
<%@page import="org.kosta.webstudy12.model.MemberVO"%>
<%@page import="org.kosta.webstudy12.model.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>findMemberById-action</title>
</head>
<body>
<%-- 클라이언트로부터 아이디를 전달받는다
MemberDAO 의 findMemberById(id) 를 이용해 회원정보를 검색한다
회원정보가 존재하면
아이디 : java
이름 : 아이유
주소 : 오리
아이디에 대한 회원정보가 존재하지 않으면
javascript alert으로 머머 아이디에 대한 회원정보가 없습니다
location.href="findMemberById-form.jsp"; 로 이동시킨다
--%>
<%
String id = request.getParameter("memberId");
MemberDAO dao = new MemberDAO();
MemberVO vo = dao.findMemberById(id);
if (vo == null) {
%>
<script type="text/javascript">
alert("<%=id%>
아이디에 대한 회원정보가 없습니다!");
location.href = "findMemberById-form.jsp";
</script>
<%
} else {
%>
아이디 :
<%=id%><br> 이름 :
<%=vo.getName()%><br> 주소 :
<%=vo.getAddress()%>
<%
}
%>
</body>
</html>
<%@page import="org.kosta.webstudy12.model.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>총회원수</title>
</head>
<body bgcolor="yellow">
<%
//초기 방식에 비해 jsp 의 코드량이 감소 , 데이터 액세스 로직 업데이트시 영향이 없다
MemberDAO dao = new MemberDAO();
int count = dao.getTotalMemberCount();
%>
<h4>
Model1 설계방식 - 총회원수
<%=count%>
명
</h4>
</body>
</html>
반응형
'[IT] > java' 카테고리의 다른 글
java.web.model2.mvc.forward (0) | 2021.04.13 |
---|---|
java.web.model2.mvc.forword/redirect (0) | 2021.04.12 |
java.web.model2.mvc (0) | 2021.04.12 |
java.web.초기 (0) | 2021.04.12 |
java.Synchronizaation(동기화) (0) | 2021.03.23 |
java.project.chatting program (0) | 2021.03.23 |
java.Network.Inner class/Nested class (0) | 2021.03.22 |
java.Network.EchoProgram(1:1) (0) | 2021.03.19 |
Comments