타닥타닥 개발자의 일상

SQL 의 BD 불러와서 페이지랑 연결하기 (Spring Frame Work), 웹 페이지에 SQL 데이터 List, String 형태로 형변환하고 출력 본문

코딩 기록/Spring

SQL 의 BD 불러와서 페이지랑 연결하기 (Spring Frame Work), 웹 페이지에 SQL 데이터 List, String 형태로 형변환하고 출력

NomadHaven 2021. 12. 30. 00:04

 

<기본 설정>

 

 Dynamic Web Project 로 파일생성.

Configure - Convert to Maven

log4j.xml, jdbc.properties, Member.xml, applicationContext.xml

servelt-context.xml, pom.xml   미리 설정

 

 

 

 

 

<index 구동시 보이는 페이지> 

 

 

 

<SQL Developer에 입력한 테이블 자료>

 

<jdbc.properties>

 

#oracle setting

jdbc.driverClassName = oracle.jdbc.driver.OracleDriver
jdbc.url = jdbc:oracle:thin:@localhost:1521:xe
jdbc.username = hr
jdbc.password = hr
jdbc.initialSize = 5
jdbc.maxActive = 20

 

<index.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>

<%
	response.sendRedirect("hello.do");
%>

</body>
</html>

 

 

<hello.JSP>

<%@page import="multi.camp.a.dto.MemberDto"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%
	List<MemberDto> list = (List<MemberDto>)request.getAttribute("list"); <!--getAttribute로 불러온 Object 배열객체 형태로 형변환-->
%>      
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<h1>hello jsp</h1>

<table border="1">
<tr>
	<th>번호</th><th>아이디</th><th>비번</th><th>이름</th>
</tr>

<%
for(int i = 0;i < list.size(); i++){
	MemberDto mem = list.get(i);
%>
<tr>	
	<th><%=i + 1 %></th>
	<td><%=mem.getId() %></td>
	<td><%=mem.getPwd() %></td>
	<td><%=mem.getName() %></td>
</tr>
<%
}
%>

</table>

<br>

<form action="home.do">
ID:<input type="text" name="id">
<input type="submit" value="회원정보">   <!--회원정보 보기 위해 home.JSP으로이동-->
</form>


</body>
</html>

 

 

<home.JSP>

<%@page import="multi.camp.a.dto.MemberDto"%>
<%@ 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>home jsp</h1>

<%
	MemberDto mem = (MemberDto)request.getAttribute("mem"); <!--getAttribute는 Oject형태로 자료받기 때문에 MemberDto객체 형태로 형변환 해준다.-->
%>

회원정보:<br>
ID:<%=mem.getId() %><br>
PW:<%=mem.getPwd() %><br>
NAME:<%=mem.getName() %><br>
EMAIL:<%=mem.getEmail() %><br>




</body>
</html>

 

 

<ID에  aaa 입력하고 회원정보 입력했을시 보이는 Home.JSP화면>

 

 

 

<MemberDto.java>

package multi.camp.a.dto;

import java.io.Serializable;

public class MemberDto implements Serializable {
	
	private String id;
	private String pwd;
	private String name;
	private String email;
	private int auth;
	
	public MemberDto() {}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getPwd() {
		return pwd;
	}

	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public int getAuth() {
		return auth;
	}

	public void setAuth(int auth) {
		this.auth = auth;
	}

	public MemberDto(String id, String pwd, String name, String email, int auth) {
		super();
		this.id = id;
		this.pwd = pwd;
		this.name = name;
		this.email = email;
		this.auth = auth;
	}

	@Override
	public String toString() {
		return "MemberDto [id=" + id + ", pwd=" + pwd + ", name=" + name + ", email=" + email + ", auth=" + auth + "]";
	}
	
	

}

 

<MemberDao.java>(interface)

package multi.camp.a.dao;

import java.util.List;

import multi.camp.a.dto.MemberDto;


public  interface MemberDao {
	
	List<MemberDto> allmember();
	
	MemberDto getmember(MemberDto dto);

}

 

<MemberDaoImpl.java> (MemberDao상속)

package multi.camp.a.dao.impl;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import multi.camp.a.dto.MemberDto;
import multi.camp.a.dao.MemberDao;

@Repository
public class MemberDaoImpl implements MemberDao{
	
	@Autowired		// <- 객체 자동 생성
	SqlSession sqlSession;
	
	String namespace = "Member."; //  Member.XML의 <mapper namespace="Member"> 와 관련
	
	@Override
	public List<MemberDto> allmember() {
		
		List<MemberDto> list = sqlSession.selectList(namespace + "allmember");		
		return list;
	}

	@Override
	public MemberDto getmember(MemberDto dto) {
		
		MemberDto mem = sqlSession.selectOne(namespace + "getmember", dto);		
		return mem;
	}

	}

 

<MemberService.java> (interface)

package multi.camp.a.service;

import java.util.List;

import multi.camp.a.dto.MemberDto;

public interface MemberService {

	
	public List<MemberDto> allmember();
	
	MemberDto getmember(MemberDto dto); 
}

 

<MemberServiceImpl.java> (MemberService.java 상속)

 

package multi.camp.a.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import multi.camp.a.dao.MemberDao;
import multi.camp.a.dto.MemberDto;
import multi.camp.a.service.MemberService;

@Service
public class MemberServiceImpl implements MemberService{
	
	@Autowired
	MemberDao dao;	

	@Override
	public List<MemberDto> allmember() {
		return dao.allmember();
	}

	@Override
	public MemberDto getmember(MemberDto dto) {
		return dao.getmember(dto);
	}

	
}

 

<Member.xml> (MemberDao 와 MemberService 모두 연관, SQL Data 와 연결된 곳, mybatis이용.)

<?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">
        
<mapper namespace="Member">

<select id="allmember" resultType="multi.camp.a.dto.MemberDto">
	SELECT ID, PWD, NAME, EMAIL, AUTH
	FROM MEMBER
</select>

<select id="getmember" parameterType="multi.camp.a.dto.MemberDto"
		resultType="multi.camp.a.dto.MemberDto">
		SELECT ID, PWD, NAME, EMAIL
		FROM MEMBER
		WHERE ID=#{ id }  //특정하게 조회된 id만 정보를 출력
</select>

</mapper>

 

<HelloController.java>

 

package multi.camp.a;

import java.util.Date;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import multi.camp.a.dto.MemberDto;
import multi.camp.a.service.MemberService;

@Controller
public class HelloController {
		
	private static Logger logger = LoggerFactory.getLogger(HelloController.class);
		
	@Autowired
	MemberService service;
	
	@RequestMapping(value="hello.do", method = RequestMethod.GET)
	public String hello(Model model) {
		logger.info("HelloController hello()" +new Date());
		
		//DB접근
		List<MemberDto> list = service.allmember();
		model.addAttribute("list",list); 
            //Model은 객체에 속성값을 넣어 JSP에 해당 속성값을 제공하는 역할.
            //"list"는 키값
		
		return "hello"; 
		
	}
	
	@RequestMapping(value="home.do", method = RequestMethod.GET)
	public String home(Model model, MemberDto dto) {
		logger.info("HelloController home()"+new Date());
		System.out.println(dto.toString());
		
		MemberDto mem = service.getmember(dto);
		model.addAttribute("mem",mem);
	
		return "home";
	}
	

}
Comments