▶ Main.jsp
<%@ 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>
<h1>메인페이지</h1>
<a href = "Join.jsp">회원가입</a>
<br>
<a href = "Login.jsp">로그인</a>
<br>
<a href = "SelectAllCon">전체 회원 확인하기</a>
<br>
<a href = "Delete.jsp">회원탈퇴</a>
</body>
</html>
▶ DAO.java
package com.smhrd.model;
import java.util.ArrayList;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import com.smhrd.database.SqlSessionManager;
public class DAO {
private SqlSessionFactory sqlSessionFactory = SqlSessionManager.getSqlSession();
private SqlSession sqlSession = null;
public int join(IotMember vo) {
int row = 0;
try {
// 1. db 연결
// openSession(boolean) --> 안쪽에 true를 넣으면 auto commit 가능
// openSession() --> insert, delete, update 할때마다 commit을 직접 해줘야 함!
sqlSession= sqlSessionFactory.openSession(true);
// 2. 실행
row = sqlSession.insert("com.smhrd.model.DAO.memberinsert", vo);
}catch (Exception e) {
e.printStackTrace();
}finally {
// 3. 자원반납
sqlSession.close();
}
return row;
}
public int delete(IotMember vo) {
int row = 0;
try {
// 1. 연결
sqlSession= sqlSessionFactory.openSession(true);
row = sqlSession.delete("com.smhrd.model.DAO.memberdelete", vo);
}catch (Exception e) {
e.printStackTrace();
}finally {
sqlSession.close();
}
return row;
}
public IotMember login(IotMember vo) {
IotMember result = null;
try {
// 1. DB연결 (SQL Session 연결)
sqlSession = sqlSessionFactory.openSession(true);
// 2. 로그인(select 하나만)
result = sqlSession.selectOne("com.smhrd.model.DAO.memberlogin", vo);
}catch (Exception e) {
e.printStackTrace();
} finally {
sqlSession.close();
}
return result;
}
// 컴파일 상 문제가 발생할 수 있는 코드를 경고형태로(노란 밑줄)로 나타내는데 해당하는 걸 사용하지 않겠다고 명시해주는 annotation
@SuppressWarnings({ "unchecked", "rawtypes" })
public ArrayList<IotMember> selectAll() {
ArrayList<IotMember> result = null;
try {
sqlSession = sqlSessionFactory.openSession(true);
// selectList : select 시 여러개의 값(행)들을 되돌려 받고 싶을 때 사용하는 메소드
result = (ArrayList)sqlSession.selectList("com.smhrd.model.DAO.selectall");
}catch (Exception e) {
e.printStackTrace();
}finally {
sqlSession.close();
}
return result;
}
}
▶ MemberMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace : mapper 식별자(고유의 이름) -->
<!-- 절대 중복되면 안된다. 중복되는 순간 mapper를 찾지 못한다. -->
<mapper namespace="com.smhrd.model.DAO" >
<!-- Query문 작성해서 넣는 공간 -->
<!-- parameterType : mybais-config.xml 안에 alias로 정의해놨다! -->
<insert id="memberinsert" parameterType="IotMember">
insert into iotmember values(#{id},#{pw},#{age},#{nickname})
<!-- IotMember.java에 있는 필드명임 -->
</insert>
<delete id ="memberdelete" parameterType="IotMember">
delete from iotmember where id= #{id} and pw = #{pw}
</delete>
<!-- 로그인 쿼리 작성하기 -->
<!-- select구문 작성 시 결과값을 어떤 자료형으로 받아줄건지 resultType attribute로 작성해줘야한다. -->
<select id="memberlogin" parameterType="IotMember" resultType="IotMember">
select * from iotmember where id = #{id} and pw = #{pw}
</select>
<!-- selectList 메소드를 사용하면 행이 여러개일 때 자동으로 리스트 형태로 만들어준다 -->
<!-- resultType : 하나의 행을 저장할 수 있는 자료형만 넣어주면 된다. -->
<select id="selectall" resultType="IotMember">
select * from iotmember
</select>
</mapper>
▶SelectAllCon.java
package com.smhrd.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 com.smhrd.model.DAO;
import com.smhrd.model.IotMember;
@WebServlet("/SelectAllCon")
public class SelectAllCon extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 아무런 조건 없이 데이터 모두 선택해서 가져올 예정
// 1. DB 데이터 전부 가져오기
DAO dao = new DAO();
// 2. selectAll 메소드 생성
ArrayList<IotMember> list = dao.selectAll();
// 3. request 담아주기
request.setAttribute("list", list);
// 4. forward 방식으로 Select.jsp로 이동하기
RequestDispatcher rd= request.getRequestDispatcher("Select.jsp");
rd.forward(request, response);
}
}
▶Select.jsp
<%@page import="com.smhrd.model.IotMember"%>
<%@page import="java.util.ArrayList"%>
<%@ 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>
<%
// 1. request 안에 들어있는 list 데이터 꺼내오기
ArrayList<IotMember> list = (ArrayList<IotMember>)request.getAttribute("list");
// 2. table에 ID, NickName, Age순으로 출력
%>
<table border = '1px solid black'>
<tr>
<td>아이디</td>
<td>닉네임</td>
<td>나이</td>
</tr>
<!--iotmember 테이블 안에 있는 데이터 개수만큼 출력 -->
<%for(IotMember vo : list){ %>
<tr>
<td><%=vo.getId() %></td>
<td><%=vo.getNickname() %></td>
<td><%=vo.getAge() %></td>
</tr>
<%} %>
</table>
</body>
</html>
'Maven Project' 카테고리의 다른 글
로그인 실습 (0) | 2022.05.18 |
---|---|
회원가입 실습 (0) | 2022.05.18 |
로그인 (0) | 2022.05.17 |
회원 탈퇴 (0) | 2022.05.16 |
회원가입 (0) | 2022.05.16 |