728x90
<%@ 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>
<link href="${pageContext.request.contextPath}/resources/css/default.css" rel="stylesheet" type="text/css">
<link href="${pageContext.request.contextPath}/resources/css/subpage.css" rel="stylesheet" type="text/css">
<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js" type="text/javascript"></script>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/ie7-squish.js" type="text/javascript"></script>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<!--[if IE 6]>
<script src="../script/DD_belatedPNG_0.0.8a.js"></script>
<script>
/* EXAMPLE */
DD_belatedPNG.fix('#wrap');
DD_belatedPNG.fix('#main_img');
</script>
<![endif]-->
</head>
<body>
<div id="wrap">
<!-- 헤더들어가는 곳 -->
<!-- include 경로 => jsp 문법 => 상대적인 웹 경로를 적용. 현 파일을 기준으로 상대적으로 경로를 표시 -->
<jsp:include page="../inc/top.jsp" />
<!-- 헤더들어가는 곳 -->
<!-- 본문들어가는 곳 -->
<!-- 본문메인이미지 -->
<div id="sub_img_member"></div>
<!-- 본문메인이미지 -->
<!-- 왼쪽메뉴 -->
<nav id="sub_menu">
<ul>
<li><a href="#">Join us</a></li>
<li><a href="#">Privacy policy</a></li>
</ul>
</nav>
<!-- 왼쪽메뉴 -->
<!-- 본문내용 -->
<article>
<h1>Join Us</h1>
<form action="${pageContext.request.contextPath}/member/insertPro" id="join" method="post">
<!-- 비밀번호가 포함되어있으면 method를 post -->
<fieldset>
<legend>Basic Info</legend>
<label>User ID</label>
<input type="text" name="id" class="id">
<input type="button" value="dup. check" class="dup"><br>
<label>Password</label>
<input type="password" name="pw"><br>
<label>Retype Password</label>
<input type="password" name="pw2"><br>
<label>Name</label>
<input type="text" name="name"><br>
<label>E-Mail</label>
<input type="email" name="email"><br>
<label>Retype E-Mail</label>
<input type="email" name="email2"><br>
</fieldset>
<fieldset>
<legend>Optional</legend>
<label>Address</label>
<input type="text" name="address"><br>
<label>Phone Number</label>
<input type="text" name="phone"><br>
<label>Mobile Phone Number</label>
<input type="text" name="mobile"><br>
</fieldset>
<div class="clear"></div>
<div id="buttons">
<input type="submit" value="Submit" class="submit">
<input type="reset" value="Cancel" class="cancel">
</div>
</form>
</article>
<!-- 본문내용 -->
<!-- 본문들어가는 곳 -->
<div class="clear"></div>
<!-- 푸터들어가는 곳 -->
<jsp:include page="../inc/bottom.jsp" />
<!-- 푸터들어가는 곳 -->
</div>
</body>
</html>
src/main/java-com.itwillbs.domain.MemberDTO.java(springProject2에서 복사)
MemberController
package com.itwillbs.controller;
import javax.inject.Inject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.itwillbs.domain.MemberDTO;
import com.itwillbs.service.MemberService;
@Controller
@RequestMapping("/member/*")
public class MemberController {
//MemberService 파일 만들고 MemberService 객체 생성 => 멤버변수 자동으로 주입
@Inject
private MemberService memberService;
// 가상주소 http://localhost:8080/funweb/member/insert
@GetMapping("/insert")
public String insert() {
System.out.println("MemberController insert()");
// src/main/webapp/resources 폴더에 이미지, CSS, JS, JQuery 넣기
// src/main/webapp/views 나머지 넣기
//member/join.jsp 화면으로 주소변경없이 이동
return "member/join";
}
// 가상주소 http://localhost:8080/funweb/member/login
// => member/login.jsp 화면으로 주소변경없이 이동
@GetMapping("/login")
public String login() {
System.out.println("MemberController login()");
return "/member/login";
}
// 가상주소 http://localhost:8080/funweb/member/insertPro, post방식
// join.jsp에서 입력한 데이터 => request => MemberDTO memberDTO 변수에 전달
// DB 작업
// /member/login 주소가 변경되면서 이동
@PostMapping("/insertPro")
public String insertPro(MemberDTO memberDTO) {
System.out.println("MemberController insertPro()");
System.out.println(memberDTO);
memberService.insertMember(memberDTO);
return "redirect:/member/login";
}
}
root-context
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<!-- 데이터베이스 연결 객체생성
프로그램 설치 => 자동으로 프로그램 설치 Maven 의존
=> Maven 서버에 프로그램이 저장되어있고 다운받는 프로그램이름을 적으면
=> 자동으로 다운받아서 사용
=> 프로그램 맨아래 pom.xml(다운받고 싶은 프로그램 목록 적음=> 자동으로 다운 받음)
=> maven repository 검색
=> https://mvnrepository.com/
=> mysql 검색 => MySQL Connector/J » 8.0.33
=> spring-jdbc 검색 => spring-jdbc -> ${org.springframework-version}
=> pom.xml 코드 넣기-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/jspdb?serverTimezone=Asia/Seoul"></property>
<property name="username" value="root"></property>
<property name="password" value="1234"></property>
</bean>
<!-- pom.xml 에서 mybatis, mybatis spring 프로그램 설치
=> mybatis 설정 , 객체생성
=> https://blog.mybatis.org/
=> https://mybatis.org/mybatis-3/
=> https://mybatis.org/mybatis-3/getting-started.html
=> src/main/resources 폴더 - 오른쪽버튼 - New - other - XML - XML File
=> mybatis-config.xml 파일 만들기
=> src/main/resources 폴더 - mappers 폴더 만들기
=> memberMapper.xml 파일 만들기 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:/mybatis-config.xml"></property>
<property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml"></property>
</bean>
<!-- => mybatis 사용(연결정보) 객체생성
=> destroy-method="clearCache" 기억장소 삭제
=> MemberDAO에서 자동객체생성
@Inject
private SqlSession sqlSession;
-->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
</bean>
</beans>
MemberService
package com.itwillbs.service;
import java.sql.Timestamp;
import javax.inject.Inject;
import org.springframework.stereotype.Service;
import com.itwillbs.dao.MemberDAO;
import com.itwillbs.domain.MemberDTO;
@Service
public class MemberService {
//MemberDAO 파일 만들기
//MemberDAO 객체 생성 => 멤버 변수 자동으로 주입
@Inject
private MemberDAO memberDAO;
public void insertMember(MemberDTO memberDTO) {
System.out.println("MemberService insertMember()");
//시스템의 날짜 => 가입날짜 설정
memberDTO.setDate(new Timestamp(System.currentTimeMillis()));
memberDAO.insertMember(memberDTO);
}
}
MemberDAO
package com.itwillbs.dao;
import javax.inject.Inject;
import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Repository;
import com.itwillbs.domain.MemberDTO;
@Repository
public class MemberDAO {
//마이바티스 객체생성 => 멤버변수 정의 자동으로 주입
@Inject
private SqlSession sqlSession;
//sql 구문 전체 이름
private static final String namespace = "com.itwillbs.mappers.memberMapper";
public void insertMember(MemberDTO memberDTO) {
System.out.println("MemberDAO insertMember()");
sqlSession.insert(namespace+".insertMember",memberDTO);
//sql구문이름,memberDTO
}
}
mappers-memberMapper
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itwillbs.mappers.memberMapper">
<insert id="insertMember">
insert into members(id,pw,name,date)
values(#{id},#{pw},#{name},#{date})
</insert>
<!-- select 구문에서 결과값이 있고 resultType에 결과 형을 지정
디비에 열이름 id,pw,name,date => MemberDTO 멤버변수 이름 일치하면 자동으로 저장 -->
<select id="userCheck" resultType="com.itwillbs.domain.MemberDTO">
select * from members
where id = #{id} and pw = #{pw}
</select>
<select id="getMember" resultType="com.itwillbs.domain.MemberDTO">
select * from members
where id = #{id}
</select>
<update id="updateMember">
update members set name = #{name}
where id = #{id}
</update>
<delete id="deleteMember">
delete from members
where id = #{id}
</delete>
<select id="getMemberList" resultType="com.itwillbs.domain.MemberDTO">
select * from members
</select>
</mapper>
login
<%@ 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>
<link href="${pageContext.request.contextPath}/resources/css/default.css" rel="stylesheet" type="text/css">
<link href="${pageContext.request.contextPath}/resources/css/subpage.css" rel="stylesheet" type="text/css">
<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js" type="text/javascript"></script>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/ie7-squish.js" type="text/javascript"></script>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<!--[if IE 6]>
<script src="../script/DD_belatedPNG_0.0.8a.js"></script>
<script>
/* EXAMPLE */
DD_belatedPNG.fix('#wrap');
DD_belatedPNG.fix('#main_img');
</script>
<![endif]-->
</head>
<body>
<div id="wrap">
<!-- 헤더들어가는 곳 -->
<jsp:include page="../inc/top.jsp" />
<!-- 헤더들어가는 곳 -->
<!-- 본문들어가는 곳 -->
<!-- 본문메인이미지 -->
<div id="sub_img_member"></div>
<!-- 본문메인이미지 -->
<!-- 왼쪽메뉴 -->
<nav id="sub_menu">
<ul>
<li><a href="#">Join us</a></li>
<li><a href="#">Privacy policy</a></li>
</ul>
</nav>
<!-- 왼쪽메뉴 -->
<!-- 본문내용 -->
<article>
<h1>Login</h1>
<form action="${pageContext.request.contextPath}/member/loginPro" id="join" method="post">
<fieldset>
<legend>Login Info</legend>
<label>User ID</label>
<input type="text" name="id"><br>
<label>Password</label>
<input type="password" name="pw"><br>
</fieldset>
<div class="clear"></div>
<div id="buttons">
<input type="submit" value="Submit" class="submit">
<input type="reset" value="Cancel" class="cancel">
</div>
</form>
</article>
<!-- 본문내용 -->
<!-- 본문들어가는 곳 -->
<div class="clear"></div>
<!-- 푸터들어가는 곳 -->
<jsp:include page="../inc/bottom.jsp" />
<!-- 푸터들어가는 곳 -->
</div>
</body>
</html>
package com.itwillbs.controller;
import javax.inject.Inject;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.itwillbs.domain.MemberDTO;
import com.itwillbs.service.MemberService;
@Controller
@RequestMapping("/member/*")
public class MemberController {
//MemberService 파일 만들고 MemberService 객체 생성 => 멤버변수 자동으로 주입
@Inject
private MemberService memberService;
// 가상주소 http://localhost:8080/funweb/member/insert
@GetMapping("/insert")
public String insert() {
System.out.println("MemberController insert()");
// src/main/webapp/resources 폴더에 이미지, CSS, JS, JQuery 넣기
// src/main/webapp/views 나머지 넣기
//member/join.jsp 화면으로 주소변경없이 이동
return "member/join";
}
// 가상주소 http://localhost:8080/funweb/member/login
// => member/login.jsp 화면으로 주소변경없이 이동
@GetMapping("/login")
public String login() {
System.out.println("MemberController login()");
return "/member/login";
}
// 가상주소 http://localhost:8080/funweb/member/insertPro, post방식
// join.jsp에서 입력한 데이터 => request => MemberDTO memberDTO 변수에 전달
// DB 작업
// /member/login 주소가 변경되면서 이동
@PostMapping("/insertPro")
public String insertPro(MemberDTO memberDTO) {
System.out.println("MemberController insertPro()");
System.out.println(memberDTO);
memberService.insertMember(memberDTO);
return "redirect:/member/login";
}
// 가상주소 http://localhost:8080/funweb/member/loginPro, post방식
// login.jsp에서 입력한 데이터 => request => MemberDTO memberDTO 변수에 전달
// DB 작업 : MemberDTO memberDTO2 = userCheck(memberDTO)
// memberDTO2 null이 아니면 아이디, 비밀번호가 일치 => 로그인 표시 세션값을 "id",값 => /memeber/main 주소가 변경되면서 이동
// null이면 아이디, 비밀번호가 틀림 => /memeber/login 주소 변경되면서 이동
@PostMapping("/loginPro")
public String loginPro(MemberDTO memberDTO, HttpSession session) {
System.out.println("MemberController loginPro()");
MemberDTO memberDTO2 = memberService.userCheck(memberDTO);
if(memberDTO2 != null) {
session.setAttribute("id",memberDTO.getId());
return "redirect:/member/main";
} else {
return "redirect:/member/login";
}
}
// 가상주소 http://localhost:8080/funweb/member/main
// => main/main.jsp 화면으로 주소 변경 없이 이동
@GetMapping("/member/main")
public String main(MemberDTO memberDTO) {
System.out.println("MemberController main()");
return "/main/main";
}
}
package com.itwillbs.service;
import java.sql.Timestamp;
import javax.inject.Inject;
import org.springframework.stereotype.Service;
import com.itwillbs.dao.MemberDAO;
import com.itwillbs.domain.MemberDTO;
@Service
public class MemberService {
//MemberDAO 파일 만들기
//MemberDAO 객체 생성 => 멤버 변수 자동으로 주입
@Inject
private MemberDAO memberDAO;
public void insertMember(MemberDTO memberDTO) {
System.out.println("MemberService insertMember()");
//시스템의 날짜 => 가입날짜 설정
memberDTO.setDate(new Timestamp(System.currentTimeMillis()));
memberDAO.insertMember(memberDTO);
}
public MemberDTO userCheck(MemberDTO memberDTO) {
System.out.println("MemberService userCheck()");
return memberDAO.userCheck(memberDTO);
}
}
package com.itwillbs.dao;
import javax.inject.Inject;
import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Repository;
import com.itwillbs.domain.MemberDTO;
@Repository
public class MemberDAO {
//마이바티스 객체생성 => 멤버변수 정의 자동으로 주입
@Inject
private SqlSession sqlSession;
//sql 구문 전체 이름
private static final String namespace = "com.itwillbs.mappers.memberMapper";
public void insertMember(MemberDTO memberDTO) {
System.out.println("MemberDAO insertMember()");
sqlSession.insert(namespace+".insertMember",memberDTO);
//sql구문이름,memberDTO
}
public MemberDTO userCheck(MemberDTO memberDTO) {
System.out.println("MemberDAO userCheck()");
return sqlSession.selectOne(namespace+".userCheck", memberDTO);
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<header>
<!-- 로그인 유무 표시값 세션에서 가져와서 => 있으면 로그인이 됨, 없으면 로그인이 되지 않음 -->
<!-- 로그인 되지 않았을 때 나타내야할 정보(login, join) -->
<c:if test="${empty sessionScope.id }">
<div id="login"><a href="${pageContext.request.contextPath}/member/login">login</a> | <a href="${pageContext.request.contextPath}/member/insert">join</a></div>
</c:if>
<!-- 로그인 되었을 때 나타나야할 정보(logout, update) -->
<c:if test="${!empty sessionScope.id }">
<div id="login">${sessionScope.id}님 | <a href="${pageContext.request.contextPath}/member/logout">logout</a> | <a href="${pageContext.request.contextPath}/member/update">update</a></div>
</c:if>
<div class="clear"></div>
<!-- 로고들어가는 곳 -->
<div id="logo"><img src="${pageContext.request.contextPath}/resources/images/logo.gif" width="265" height="62" alt="Fun Web"></div>
<!-- 로고들어가는 곳 -->
<nav id="top_menu">
<ul>
<li><a href="../main/main.html">HOME</a></li>
<li><a href="../company/welcome.html">COMPANY</a></li>
<li><a href="#">SOLUTIONS</a></li>
<li><a href="${pageContext.request.contextPath}/resource/center/notice.html">CUSTOMER CENTER</a></li>
<li><a href="#">CONTACT US</a></li>
</ul>
</nav>
</header>
HomeController
package com.itwillbs.funweb;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* Handles requests for the application home page.
*/
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
// logger.info("Welcome home! The client locale is {}.", locale);
//
// Date date = new Date();
// DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
//
// String formattedDate = dateFormat.format(date);
//
// model.addAttribute("serverTime", formattedDate );
//주소가 변경되면서 /member/main 이동
return "redirect:/member/main";
}
}
logout처리
package com.itwillbs.controller;
(...생략...)
// 가상주소 http://localhost:8080/funweb/member/logout get방식
@GetMapping("/member/logout")
public String logout(HttpSession session) {
System.out.println("MemberController logout");
session.invalidate();
return "redirect:/member/main";
}
update 처리
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>member/update.jsp</title>
<link href="${pageContext.request.contextPath}/resources/css/default.css" rel="stylesheet" type="text/css">
<link href="${pageContext.request.contextPath}/resources/css/subpage.css" rel="stylesheet" type="text/css">
<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js" type="text/javascript"></script>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/ie7-squish.js" type="text/javascript"></script>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<!--[if IE 6]>
<script src="../script/DD_belatedPNG_0.0.8a.js"></script>
<script>
/* EXAMPLE */
DD_belatedPNG.fix('#wrap');
DD_belatedPNG.fix('#main_img');
</script>
<![endif]-->
</head>
<body>
<div id="wrap">
<!-- 헤더들어가는 곳 -->
<!-- include 경로 => jsp 문법 => 상대적인 웹 경로를 적용. 현 파일을 기준으로 상대적으로 경로를 표시 -->
<jsp:include page="../inc/top.jsp" />
<!-- 헤더들어가는 곳 -->
<!-- 본문들어가는 곳 -->
<!-- 본문메인이미지 -->
<div id="sub_img_member"></div>
<!-- 본문메인이미지 -->
<!-- 왼쪽메뉴 -->
<nav id="sub_menu">
<ul>
<li><a href="#">Join us</a></li>
<li><a href="#">Privacy policy</a></li>
</ul>
</nav>
<!-- 왼쪽메뉴 -->
<!-- 본문내용 -->
<article>
<h1>Update</h1>
<form action="${pageContext.request.contextPath}/member/updatePro" id="join" method="post">
<fieldset>
<legend>Basic Info</legend>
<label>User ID</label>
<input type="text" name="id" class="id" value="${memberDTO.id}" readonly><br>
<label>Password</label>
<input type="password" name="pw"><br>
<label>Name</label>
<input type="text" name="name" value="${memberDTO.name}"><br>
<label>E-Mail</label>
<input type="email" name="email"><br>
</fieldset>
<fieldset>
<legend>Optional</legend>
<label>Address</label>
<input type="text" name="address"><br>
<label>Phone Number</label>
<input type="text" name="phone"><br>
<label>Mobile Phone Number</label>
<input type="text" name="mobile"><br>
<label>가입한 날짜</label>
<input type="text" name="join_date" value="${memberDTO.date}" readonly><br>
</fieldset>
<div class="clear"></div>
<div id="buttons">
<input type="submit" value="수정" class="submit">
<input type="reset" value="취소" class="cancel">
</div>
</form>
</article>
<!-- 본문내용 -->
<!-- 본문들어가는 곳 -->
<div class="clear"></div>
<!-- 푸터들어가는 곳 -->
<jsp:include page="../inc/bottom.jsp" />
<!-- 푸터들어가는 곳 -->
</div>
</body>
</html>
MemberController
package com.itwillbs.controller;
import javax.inject.Inject;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.itwillbs.domain.MemberDTO;
import com.itwillbs.service.MemberService;
@Controller
@RequestMapping("/member/*")
public class MemberController {
(...생략...)
// 가상주소 http://localhost:8080/funweb/member/update get방식
// 세션 "id"값을 가져와서 => 변수에 저장 String id에 저장
// MemberDTO memberDTO = getMember(id) 메소드 호출
// Model model에 담아서 "memberDTO",memberDTO 이동
// member/update.jsp로 주소 변경 없이 이동
@GetMapping("/update")
public String update(HttpSession session, Model model) {
System.out.println("MemberController update()");
String id = (String)session.getAttribute("id");
MemberDTO memberDTO = memberService.getMember(id);
model.addAttribute("memberDTO", memberDTO);
return "/member/update";
}
}
package com.itwillbs.service;
import java.sql.Timestamp;
import javax.inject.Inject;
import org.springframework.stereotype.Service;
import com.itwillbs.dao.MemberDAO;
import com.itwillbs.domain.MemberDTO;
@Service
public class MemberService {
//MemberDAO 파일 만들기
//MemberDAO 객체 생성 => 멤버 변수 자동으로 주입
@Inject
private MemberDAO memberDAO;
public void insertMember(MemberDTO memberDTO) {
System.out.println("MemberService insertMember()");
//시스템의 날짜 => 가입날짜 설정
memberDTO.setDate(new Timestamp(System.currentTimeMillis()));
memberDAO.insertMember(memberDTO);
}
public MemberDTO userCheck(MemberDTO memberDTO) {
System.out.println("MemberService userCheck()");
return memberDAO.userCheck(memberDTO);
}
public MemberDTO getMember(String id) {
System.out.println("MemberService getMember()");
return memberDAO.getMember(id);
}
}
package com.itwillbs.dao;
import javax.inject.Inject;
import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Repository;
import com.itwillbs.domain.MemberDTO;
@Repository
public class MemberDAO {
//마이바티스 객체생성 => 멤버변수 정의 자동으로 주입
@Inject
private SqlSession sqlSession;
//sql 구문 전체 이름
private static final String namespace = "com.itwillbs.mappers.memberMapper";
public void insertMember(MemberDTO memberDTO) {
System.out.println("MemberDAO insertMember()");
sqlSession.insert(namespace+".insertMember",memberDTO);
//sql구문이름,memberDTO
}
public MemberDTO userCheck(MemberDTO memberDTO) {
System.out.println("MemberDAO userCheck()");
return sqlSession.selectOne(namespace+".userCheck", memberDTO);
}
public MemberDTO getMember(String id) {
System.out.println("MemberDAO getMember()");
return sqlSession.selectOne(namespace+".getMember", id);
}
}
728x90
'KDT > WEB' 카테고리의 다른 글
240208 WEB(펀웹4(board)) (0) | 2024.02.08 |
---|---|
240206 WEB(펍웹3, GitHub) (0) | 2024.02.06 |
240201 WEB(조회, 펀웹1) (0) | 2024.02.01 |
240130 WEB(회원수정,삭제) (0) | 2024.01.30 |
240129 WEB(마이바티스) (0) | 2024.01.29 |