728x90
반응형
싱글톤(Singleton)
객체의 인스턴스가 오직 1개만 생성되는 패턴
하나의 객체를 생성하면 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조하는 것은 불가능하다.
메모리 낭비를 최소화 할 수 있음.
형식
public class MemberDAO {
private MemberDAO() {
//public을 private으로 바꿔주어야 한다
//private으로 해주어야 외부에서 객체 생성을 할 수 없음.
}
private static MemberDAO instance = new MemberDAO();
public static MemberDAO getInstance() {
return instance; //반환시에 instance이 생성
}
}
Ex
MemberVO.class
package com.lbi;
public class MemberVO {
private String name;
private String userid;
private String pwd;
private String email;
private String phone;
private int admin;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public int getAdmin() {
return admin;
}
public void setAdmin(int admin) {
this.admin = admin;
}
}
MemberDAO.class
package com.lbi;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
public class MemberDAO {
private MemberDAO() { //생성자
}
private static MemberDAO instance = new MemberDAO();
public static MemberDAO getInstance() {
return instance;
}
public Connection getConnection() throws Exception{ //예외처리 왜...?
Connection conn = null;
Context init = new InitialContext();
Context env = (Context)init.lookup("java:/comp/env");
DataSource ds = (DataSource)env.lookup("jdbc/TestDB");
conn = ds.getConnection();
return conn;
}
}
TestJSP.jsp
<%@page import="java.sql.Connection"%>
<%@page import="com.lbi.MemberDAO" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
MemberDAO memDao = MemberDAO.getInstance(); //객체생성
Connection conn = memDao.getConnection(); //데이터 연동
out.print("DBCP 연동 성공");
%>
</body>
</html>
728x90
반응형
'개념정리' 카테고리의 다른 글
MVC 모델 (0) | 2022.11.30 |
---|---|
프론트엔드 시 사용하면 좋은 사이트 - 글꼴, 아이콘, 애니메이션 (0) | 2022.11.28 |
[디자인패턴] GoF 디자인 패턴의 종류 (0) | 2022.11.23 |
댓글