오늘의 노래!!!
- 아티스트
- (여자)아이들
- 앨범
- I feel
- 발매일
- 1970.01.01

// 먼저 환경변수 지정!! Properties >> java Build Path →java11로
//패키지, java파일 5개와 jsp파일 5개 lib는 c태그 사용을 위해서 넣어준다.
[0] jsp파일 파악하기
//jsp를 만들어줄때 무조건 WEB-INF에서 만들어 줘여한다
//index.jsp를 생성해서 첫화면 틀을 만들어준다.
//각각의 형식에 맞게 버튼으로 다만들어줘서 누르면 그페이지에 들어갈수 있게 onclick을 사용했고,
회원목록 경우에는 강제적으로 memberList에 들어가게끔 해놓았다.
하지만 여기서 c태그를 사용해서 우리가 전에 사용해던 조건문 같이 c태그의 조건문인데
<c:choose> // <c:when> // <c:otherwise>를 기본틀이다.
따라서 로그인을 했을때 참이면 로그인 버튼이 >> 로그아웃으로 바뀌고
틀리면 로그인창으로 계속 남아있도록 해놓았다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MEMBER_index</title>
</head>
<body>
<button onclick="join()">회원가입</button>
<button onclick="location.href='memberList'">회원목록</button>
<c:choose>
<c:when test="${sessionScope.loginId == null}">
<button onclick="login()">로그인</button>
</c:when>
<c:otherwise>
<button onclick="location.href='memberlogout'">로그아웃</button>
</c:otherwise>
</c:choose>
</body>
<script>
function join(){
location.href= "JoinForm.jsp";
}
function login(){
location.href= "LoginForm.jsp";
}
</script>
</html>
//JoinForm.jsp 가입을 위한 툴을 만들어준다
// 가입하기 위한 첫번째 틀이다
style로 각각 꾸미고,
form action="memberJoin" method="post"를 통해 연결을 시켜놓는다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MEMBER_Join</title>
<style>
table, td, th{
border : 1px solid black;
border-collapse : collapse;
}
td, th{
padding : 10px;
}
caption {
margin-bottom : 10px;
font-size : 20px;
font-weight : bold;
}
table{
width : 400px;
}
</style>
</head>
<body>
<form action="memberJoin" method="post">
<table>
<caption>회원가입 페이지</caption>
<tr>
<th colspan="2">인천일보 아카데미 가입 신청서</th>
</tr>
<tr>
<th>항목</th>
<th>내용</th>
</tr>
<tr>
<th>아이디</th>
<td><input type="text" name="memId"/></td>
</tr>
<tr>
<th>비밀번호</th>
<td><input type="password" name="memPw"/></td>
</tr>
<tr>
<th>이름</th>
<td><input type="text" name="memName"/></td>
</tr>
<tr>
<th>성별</th>
<td>
남자 <input type="radio" name="memGender" value="남자"/>
여자 <input type="radio" name="memGender" value="여자"/>
</td>
</tr>
<tr>
<th>생년월일</th>
<td><input type="date" name="memBirth"/></td>
</tr>
<tr>
<th>이메일</th>
<td><input type="email" name="memEmail"/></td>
</tr>
<tr>
<th>연락처</th>
<td><input type="text" name="memPhone"/></td>
</tr>
<tr>
<th colspan="2">
<input type="submit" value="가입"/>
<input type="reset" value="다시작성"/>
</th>
</tr>
</table>
</form>
</body>
</html>
//LoginForm.jsp는 로그인을 할수 있도록 만든 html에 틀이다
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MEMBER_Login</title>
</head>
<body>
<h2>로그인페이지</h2>
<form action="memberLogin" method="post">
<fieldset >
<legend>로그인</legend>
<label>아이디 : <input type="text" name="memId" id="LoginId"/></label>
<label>비번 : <input type="text" name="memPw" id="LoginPw"/></label>
<input type="submit" value="로그인"/>
</fieldset>
</form>
</body>
</html>
//Member.jsp는 회원 목록을 조회해준는 html에 틀이다.
<c:forEach> 태그문으로 반복적으로 사용하게 하도록 만들었구, 테이블 안에서 ${변수명}조회는 a태그를 사용해서 강제적으로 이동하게 만들었구삭제는 버튼을 만들어서 삭제하도록 만들어 보았다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
table, td, th{
border : 1px solid black;
border-collapse : collapse;
}
</style>
</head>
<body>
<form action="memberList" method="post">
<table>
<caption>회원목록 페이지</caption>
<c:forEach var="list" items="${memberList}">
<tr>
<td>아이디</td>
<td>이름</td>
<td>성별</td>
<td>조회</td>
<td>삭제</td>
</tr>
<tr>
<td>${list.memId}</td>
<td>${list.memName}</td>
<td>${list.memGender}</td>
<td><a href="memberView?memId=${list.memId}">조회</a></td> <!-- 강제적으로 만듬 -->
<td><button>삭제</button> </td>
</tr>
</c:forEach>
</table>
</form>
</body>
</html>
//MemberView.jsp는 view라는 변수명을 만들어서 쉽게 테이블 출력할수 있도록 만들었다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MEMBER_Join</title>
<style>
table, td, th{
border : 1px solid black;
border-collapse : collapse;
}
td, th{
padding : 10px;
}
caption {
margin-bottom : 10px;
font-size : 20px;
font-weight : bold;
}
table{
width : 400px;
}
</style>
</head>
<body>
<table>
<caption>회원정보 페이지</caption>
<tr>
<th>항목</th>
<th>내용</th>
</tr>
<tr>
<th>아이디</th>
<td>${view.memId}</td>
</tr>
<tr>
<th>비밀번호</th>
<td>${view.memPw}</td>
</tr>
<tr>
<th>이름</th>
<td>${view.memName}</td>
</tr>
<tr>
<th>성별</th>
<td>
${view.memGender}
</td>
</tr>
<tr>
<th>생년월일</th>
<td>${view.memBirth}</td>
</tr>
<tr>
<th>이메일</th>
<td>${view.memEmail}</td>
</tr>
<tr>
<th>연락처</th>
<td>${view.memPhone}</td>
</tr>
<tr>
<th colspan="2">
<button>수정</button>
</th>
</tr>
</table>
</body>
</html>
[1] 패키지 controller중 java파일 파악하기
//먼저 memberJoin.java에서 변수를 String으로 만들어서 request.getParameter(변수명); 정보를 받고,
MemberDTO에서 member객체 만들기 생성자 생성,
JoinService.java에 변수를 담아서 옮긴다!
package controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dto.MemberDTO;
import service.JoinService;
@WebServlet("/memberJoin")
public class memberJoin extends HttpServlet {
private static final long serialVersionUID = 1L;
public memberJoin() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
// 아이디, 비밀번호, 이름, 생년월일, 성별, 이메일, 연락처 정보 받기!
String memId = request.getParameter("memId");
String memPw = request.getParameter("memPw");
String memName = request.getParameter("memName");
String memBirth = request.getParameter("memBirth");
String memGender = request.getParameter("memGender");
String memEmail = request.getParameter("memEmail");
String memPhone = request.getParameter("memPhone");
// MemberDTO타입의 member객체 만들기(생성자 사용)
MemberDTO member = new MemberDTO();
member.setMemId(memId);
member.setMemPw(memPw);
member.setMemName(memName);
member.setMemBirth(memBirth);
member.setMemGender(memGender);
member.setMemEmail(memEmail);
member.setMemPhone(memPhone);
System.out.println("[1] jsp → controller : " + member);
// service패키지에 있는 JoinService.java(class)파일
JoinService jsvc = new JoinService();
// 7개의 정보를 member객체에 담아서 service로 넘기기
// int result = jsvc.mJoin(memId, memPw, memName, memBirth, memGender, memEmail, memPhone);
int result = jsvc.mJoin(member);
System.out.println("[7] service → controller : " + result);
if(result > 0) {
System.out.println("[8] controller → jsp : LoginForm.jsp");
response.sendRedirect("LoginForm.jsp");
} else {
System.out.println("[8] controller → jsp : JoinForm.jsp");
response.sendRedirect("Joinform.jsp");
}
}
}
//먼저 memberList.java에서는 데이터 타입 ListService.java로 넘기고,
그 정보를 담아서 memberList.jsp로 이동
package controller;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dto.MemberDTO;
import service.ListService;
@WebServlet("/memberList")
public class memberList extends HttpServlet {
private static final long serialVersionUID = 1L;
public memberList() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
System.out.println("[1]jsp -> controller ");
//service로 넘어가기
ListService lisvc = new ListService();
//데이터 타입 넘기기~~
ArrayList<MemberDTO> memberList = lisvc.mList();
System.out.println("[7] service -> controller >>memberList : " + memberList);
// 정보 담아서 memberList로 담아 jsp로 이동!!!
request.setAttribute("memberList", memberList);
RequestDispatcher dispatcher = request.getRequestDispatcher("MemberList.jsp");
System.out.println("[8] controller >> jsp : MemberList.jsp");
dispatcher.forward(request,response);
}
}
//먼저 memberLogin.java에서는 데이터 타입 LoginService.java로 넘기고,
그 정보를 담아서 LoginForm.jsp로 이동
package controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import service.LoginService;
@WebServlet("/memberLogin")
public class memberLogin extends HttpServlet {
private static final long serialVersionUID = 1L;
public memberLogin() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
String memId = request.getParameter("memId");
String memPw = request.getParameter("memPw");
System.out.println("[1]jsp -> controller >> memId " + memId + ", memPw : "+ memPw);
//
LoginService lsvc = new LoginService();
// id와 pw정보를 확인하고 일치여부 판단 후 id판별
String loginId = lsvc.mLogin(memId,memPw);
System.out.println("[7] service -> controller >> loginId : " + loginId);
HttpSession session = request.getSession();
if(loginId != null) {
System.out.println("[8] controller >> jsp : index.jsp");
session.setAttribute("loginId", loginId);
response.sendRedirect("index.jsp");
}else {
System.out.println("[8] controller >> jsp : LoginForm.jsp");
response.sendRedirect("LoginForm.jsp");
}
}
}
// memberlogout.java에서는 단순하게 로그인이 성공하면 index.jsp로 이동하면 실행
package controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/memberlogout")
public class memberlogout extends HttpServlet {
private static final long serialVersionUID = 1L;
public memberlogout() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
//(1) session 객체 생성
HttpSession session = request.getSession();
//(2) session 초기화
session.invalidate();
//(3) index.jsp로 이동
response.sendRedirect("index.jsp");
}
}
//이것두 단순하게 memberView에서 memId를 담아서 MemberDTO로 넘어가 정보를 담고 담은것을이제 MemberView.jsp에 옮기게 된다!!
package controller;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import dto.MemberDTO;
import service.ViewService;
@WebServlet("/memberView")
public class memberView extends HttpServlet {
private static final long serialVersionUID = 1L;
public memberView() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
String memId = request.getParameter("memId");
System.out.println("[1]jsp -> controller >> memId" + memId);
ViewService vsvc = new ViewService();
MemberDTO member = vsvc.mView(memId);
System.out.println("[7]service -> controller >> member" + member);
// member 정보 view라는 이름 사용
request.setAttribute("view", member);
RequestDispatcher dispatcher = request.getRequestDispatcher("MemberView.jsp");
System.out.println("[8] controller >> jsp : MemberView.jsp");
dispatcher.forward(request, response);
}
}
[2] dao파일 파악하기
// 기본툴
Connection con;
PreparedStatement pstmt;
ResultSet rs;
public void setConnection(Connection con) {
this.con = con;
}
// memberDAO에서는 각각파일에서 변수를 지정하고 변수에 sql문을 넣을수 있는 중요한 파일이다!!!
// mJoin은 먼저 controller패키지에서 온 변수명으로 조건에 맞는 sql문을 넣어서 만들어준다 이때 db에 테이블이 생성되어 있어야한다!!!
pstmt = con.prepareStatement(sql);
pstmt.setString(1, member.getMemId());
>> try.cath문 실행
무조건 return값에는 변수명!!!
public int mJoin(MemberDTO member) {
System.out.println("[3] service → dao : " + member);
int result = 0;
String sql = "INSERT INTO MEMBERDTO VALUES(?, ?, ?, ?, ?, ?, ?)";
try {
System.out.println("[4] dao → db : " + member);
pstmt = con.prepareStatement(sql);
pstmt.setString(1, member.getMemId());
pstmt.setString(2, member.getMemPw());
pstmt.setString(3, member.getMemName());
pstmt.setString(4, member.getMemBirth());
pstmt.setString(5, member.getMemGender());
pstmt.setString(6, member.getMemEmail());
pstmt.setString(7, member.getMemPhone());
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println("[5] db → dao : " + result);
return result;
}
// mLoing은 먼저 controller패키지에서 온 변수명으로 조건에 맞는 sql문을 넣어서 만들어준다 이때 db에 테이블이 생성되어 있어야한다!!!
pstmt = con.prepareStatement(sql);
// '?' 안에 데이터 넣기
pstmt.setString(1, memId);
pstmt.setString(2, memPw);
rs = pstmt.executeQuery();
rs로 묶어서 사용!!!
public String mLogin(String memId, String memPw) {
System.out.println("[3] service -> dao >> memId : "+memId + ", memPw : " + memPw);
String loginId = null;
// sql문 작성
String sql = "SELECT * FROM MEMBERDTO WHERE MEMID=? AND MEMPW=?";
try { //DB영역
System.out.println("[4] service -> dao >> memId : "+memId + ", memPw : " + memPw);
pstmt = con.prepareStatement(sql);
// '?' 안에 데이터 넣기
pstmt.setString(1, memId);
pstmt.setString(2, memPw);
rs = pstmt.executeQuery();
if(rs.next()) { //id, pw일치 할 경우
loginId = rs.getString(1);
}
// else { //둘중하나라도 않을경우
// loginId = null;
// }
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println("[5] db -> dao >> loginId :" + loginId);
return loginId;
}
//ArrayList<MemberDTO> mlist()은 먼저 controller패키지에서 온 변수명으로 조건에 맞는 sql문을 넣어서 만들어준다 이때 db에 테이블이 생성되어 있어야한다!!!
public ArrayList<MemberDTO> mList() {
System.out.println("[3] service -> dao");
// 이미지 넣을 것을 준비 각각 하나씩
ArrayList<MemberDTO> memberList = new ArrayList<MemberDTO>();
MemberDTO member; //선언만한 것!
String sql ="SELECT * FROM MEMBERDTO";
try {
System.out.println("[4] service -> dao >> memberList : "+memberList);
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery(); //무조건 rs 선언!! 해서 실행~
while(rs.next()) {
member = new MemberDTO();
member.setMemId(rs.getString(1));
member.setMemPw(rs.getString(2));
member.setMemName(rs.getString(3));
member.setMemBirth(rs.getString(4));
member.setMemGender(rs.getString(5));
member.setMemEmail(rs.getString(6));
member.setMemPhone(rs.getString(7));
memberList.add(member);
}
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println("[5] db -> dao >> memberList :" + memberList);
return memberList;
}
//mView은 먼저 controller패키지에서 온 변수명으로 조건에 맞는 sql문을 넣어서 만들어준다 이때 db에 테이블이 생성되어 있어야한다!!!
public MemberDTO mView(String memId) {
System.out.println("[3] service -> dao"+memId);
MemberDTO member = null;
String sql ="SELECT * FROM MEMBERDTO where memid=?";
try {
System.out.println("[4] service -> dao >> memId : "+memId);
pstmt = con.prepareStatement(sql);
pstmt.setString(1, memId);
rs = pstmt.executeQuery(); //무조건 rs 선언!! 해서 실행~
if(rs.next() ) {
member = new MemberDTO();
member.setMemId(rs.getString(1));
member.setMemPw(rs.getString(2));
member.setMemName(rs.getString(3));
member.setMemBirth(rs.getString(4));
member.setMemGender(rs.getString(5));
member.setMemEmail(rs.getString(6));
member.setMemPhone(rs.getString(7));
}
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println("[5] db -> dao >> member :" + member);
return member;
}
[3] dto파일 파악하기
//클래스 변수들의 getter,setter,toString()메소드 생성
package dto;
public class MemberDTO {
// 클래스 3요소
// [1] 필드
// [2] 생성자
// [3] 메소드
// (1) joinForm에 있는 data 를 가지고 필드값을 선언하시오
String memId;
String memPw;
String memName;
String memBirth;
String memGender;
String memEmail;
String memPhone;
// (2) 필드 선언 후 getter, setter, toString() 메소드 생성
public String getMemId() {
return memId;
}
public void setMemId(String memId) {
this.memId = memId;
}
public String getMemPw() {
return memPw;
}
public void setMemPw(String memPw) {
this.memPw = memPw;
}
public String getMemName() {
return memName;
}
public void setMemName(String memName) {
this.memName = memName;
}
public String getMemBirth() {
return memBirth;
}
public void setMemBirth(String memBirth) {
this.memBirth = memBirth;
}
public String getMemGender() {
return memGender;
}
public void setMemGender(String memGender) {
this.memGender = memGender;
}
public String getMemEmail() {
return memEmail;
}
public void setMemEmail(String memEmail) {
this.memEmail = memEmail;
}
public String getMemPhone() {
return memPhone;
}
public void setMemPhone(String memPhone) {
this.memPhone = memPhone;
}
@Override
public String toString() {
return "MemberDTO [memId=" + memId + ", memPw=" + memPw + ", memName=" + memName + ", memBirth=" + memBirth
+ ", memGender=" + memGender + ", memEmail=" + memEmail + ", memPhone=" + memPhone + "]";
}
// (3) 필드 값을 바탕으로 MemberDTO 테이블 생성
// MemberDTO테이블이 존재할지도 모르기 때문에 DROP 이후 생성
// memBirth의 경우 데이터타입을 NVARCHAR2(20)으로 설정
}
[4] service파일 파악하기
//service파일은 대부분 DB연결과 dao에서 정보를 받아 수정한다.
//JoinService.java
package service;
import java.sql.Connection;
import dao.MemberDAO;
import dto.MemberDTO;
// util패키지의 JdbcUtil클래스에서 static으로 선언된 필드나 메소드 사용가능
import static util.JdbcUtil.*;
public class JoinService {
public int mJoin(MemberDTO member) {
System.out.println("[2] controller → service : " + member);
// 메소드 생성시 가장 먼저 해야 할 것!
int result = 0;
// DB 접속
/////////////////// 복사해서 사용 //////////////////////
MemberDAO dao = new MemberDAO();
Connection con = DBConnect();
dao.setConnection(con);
////////////////////////////////////////////////////
result = dao.mJoin(member);
System.out.println("[6] dao → service : " + result);
if(result > 0) {
commit(con);
} else {
rollback(con);
}
close(con);
return result;
}
}
//ListService.java
package service;
import static util.JdbcUtil.DBConnect;
import static util.JdbcUtil.close;
import java.sql.Connection;
import java.util.ArrayList;
import dao.MemberDAO;
import dto.MemberDTO;
public class ListService {
// 참조형 데이터 타입 지정
public ArrayList<MemberDTO> mList() {
System.out.println("[2] controller → service");
ArrayList<MemberDTO> memberList =null;
// DB 접속
/////////////////// 복사해서 사용 //////////////////////
MemberDAO dao = new MemberDAO();
Connection con = DBConnect();
dao.setConnection(con);
////////////////////////////////////////////////////
memberList = dao.mList();
System.out.println("[6] dao → service : " + memberList);
close(con);
return memberList;
}
}
//LoginService.java
package service;
import static util.JdbcUtil.DBConnect;
import static util.JdbcUtil.close;
import java.sql.Connection;
import dao.MemberDAO;
public class LoginService {
public String mLogin(String memId, String memPw) {
System.out.println("[2] controller -> service >> memId : " + memId + "memPw : " + memPw );
String loginId = null;
// DB 접속
/////////////////// 복사해서 사용 //////////////////////
MemberDAO dao = new MemberDAO();
Connection con = DBConnect();
dao.setConnection(con);
////////////////////////////////////////////////////
// id와 pw 정보를 확인하고 일치여부 판단 후 id 반환하기
loginId = dao.mLogin(memId,memPw);
System.out.println("[6] dao -> service >> loginId : "+loginId);
close(con);
return loginId;
}
}
//ViewService.java
package service;
import static util.JdbcUtil.DBConnect;
import static util.JdbcUtil.close;
import java.sql.Connection;
import dao.MemberDAO;
import dto.MemberDTO;
public class ViewService {
public MemberDTO mView(String memId) {
System.out.println("[2] controller -> service >> memId : " + memId);
MemberDTO member = null;
// DB 접속
/////////////////// 복사해서 사용 //////////////////////
MemberDAO dao = new MemberDAO();
Connection con = DBConnect();
dao.setConnection(con);
////////////////////////////////////////////////////
member = dao.mView(memId);
System.out.println("[6] dao → service : " + member);
close(con);
return member;
}
}
[5] util파일 파악하기
// DB연결~~정보
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class JdbcUtil {
// JDBC방식 : context.xml 사용하는 방식이 안돼서 ORA-24080 오류
public static Connection DBConnect() {
// DB에 접속정보를 저장하기 위한 Connection타입의 객체 con 선언
Connection con = null;
// DB에 접속할 계정정보(아이디, 비밀번호)
String user = "PC1";
String password = "1111";
// 접속할 DB의 주소 정보
String url = "jdbc:oracle:thin:@localhost:1521:xe";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection(url, user, password);
con.setAutoCommit(false);
// System.out.println("DB접속 성공!");
} catch (ClassNotFoundException e) {
// ojdbc8 파일이 존재하지 않을 경우(오라클 드라이버를 찾지 못할 경우)
System.out.println("DB접속 실패 : 드라이버 로딩 실패!");
throw new RuntimeException(e);
} catch (SQLException e) {
// 오라클 접속정보가 틀렸을 경우(url, user, password 확인)
System.out.println("DB접속 실패 : 접속정보 오류!");
throw new RuntimeException(e);
}
return con;
}
// con close()
public static void close(Connection con) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// commit
public static void commit(Connection con) {
try {
con.commit();
} catch (SQLException e) {
e.printStackTrace();
}
}
// rollback
public static void rollback(Connection con) {
try {
con.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
'IT코딩공부!' 카테고리의 다른 글
#34 스프링(spring) 공부중~! (0) | 2023.05.23 |
---|---|
#33 스프링(spring) 시작!! (0) | 2023.05.22 |
#31 JSP(반복문!),(DB연결 시작) (0) | 2023.05.16 |
#30 JS(history, 팝업창 띄우기!!) JSP공부하기 시작!!! (1) | 2023.05.12 |
#29 JS(jquery 배우기) (0) | 2023.05.11 |