2025-01-22










<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" pageEncoding="UTF-8"%>
<html>
<head>
<title>Member 메인</title>
</head>
<body>
<div align="center">
<hr width="30%" color="gray">
<h3>MEMBER10 테이블 메인 페이지</h3>
<hr width="30%" color="gray">
<br> <br>
<a href="<%=request.getContextPath() %>/member_list.go">[회원 전체 목록]</a>
</div>
</body>
</html>
<%@ 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>
</head>
<body>
<div align="center">
<hr width="30%" color="maroon">
<h3>MEMBER10 테이블 회원 전체 리스트 페이지</h3>
<hr width="30%" color="maroon">
<br> <br>
<table border="1" width="450">
<tr>
<th>회원 No.</th> <th>회원 이름</th> <th>회원 직업</th> <th>회원 등록일</th>
</tr>
<c:set var="list" value="${memberList }"></c:set>
<c:if test="${!empty list }">
<c:forEach items="${list }" var="dto">
<tr>
<td>${dto.num }</td>
<td>${dto.memname }</td>
<td>${dto.job }</td>
<td>${dto.regdate.substring(0, 10) }</td>
</tr>
</c:forEach>
</c:if>
<c:if test="${empty list }">
<tr>
<td colspan="4" align="center">
<h3>전체 회원 리스트가 없습니다...</h3>
</td>
</tr>
</c:if>
</table>
</div>
</body>
</html>
package com.spring.model;
import lombok.Data;
@Data
public class Member {
private int num;
private String memid;
private String memname;
private String pwd;
private int age;
private int mileage;
private String job;
private String addr;
private String regdate;
}
package com.spring.model;
import java.util.List;
public interface MemberDAO {
// 회원 전체 리스트를 호출하는 추상 메서드
List<Member> getMemberList();
// 회원을 추가하는 추상 메서드
int insertMember(Member dto);
// 한 회원의 정보를 호출하는 추상 메서드
Member getMember(int num);
// 한 회원의 정보를 수정하는 추상 메서드
int updateMember(Member dto);
// 한 회원을 삭제하는 추상 메서드
int deleteMember(int num);
// 회원 번호(순번)를 재작업하는 추상 메서드
void updateSequence(int num);
}
package com.spring.model;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
/*
* Spring에서 일반적으로 DAO 클래스는 @Repository 애노테이션을 적용
*/
@Repository
public class MemberDAOImpl implements MemberDAO {
@Autowired
private JdbcTemplate template;
String sql = null;
@Override
public List<Member> getMemberList() {
List<Member> list;
sql = "select * from member10 order by num desc";
return list = this.template.query(sql, new RowMapper<Member>() {
@Override
public Member mapRow(ResultSet rs, int rowNum) throws SQLException {
Member member = new Member();
member.setNum(rs.getInt("num"));
member.setMemid(rs.getString("memid"));
member.setMemname(rs.getString("memname"));
member.setPwd(rs.getString("pwd"));
member.setAge(rs.getInt("age"));
member.setMileage(rs.getInt("mileage"));
member.setJob(rs.getString("job"));
member.setAddr(rs.getString("addr"));
member.setRegdate(rs.getString("regdate"));
return member;
}
});
}
@Override
public int insertMember(Member dto) {
// TODO Auto-generated method stub
return 0;
}
@Override
public Member getMember(int num) {
// TODO Auto-generated method stub
return null;
}
@Override
public int updateMember(Member dto) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int deleteMember(int num) {
// TODO Auto-generated method stub
return 0;
}
@Override
public void updateSequence(int num) {
// TODO Auto-generated method stub
}
}
package com.spring.model;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class MemberService {
@Autowired
private MemberDAO dao;
// MemberDAO dao = new MemberDAOImpl(); --> 위와 同
public List<Member> list() {
return dao.getMemberList();
}
public int insert(Member dto) {
return dao.insertMember(dto);
}
public Member member(int no) {
return dao.getMember(no);
}
public int update(Member dto) {
return dao.updateMember(dto);
}
public int delete(int no) {
return dao.deleteMember(no);
}
public void sequence(int no) {
dao.updateSequence(no);
}
}
package com.spring.jdbc01;
import java.util.List;
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 com.spring.model.Member;
import com.spring.model.MemberService;
@Controller
public class MemberController {
@Autowired
private MemberService service;
@RequestMapping("member_list.go")
public String list(Model model) {
List<Member> list = this.service.list();
model.addAttribute("memberList", list);
return "member_list";
}
}
<?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 -->
<!-- 스프링에서 사용 할 자원을 설정하는 공간 ==> 대부분은 DB 연결 설정 -->
<!-- 1. DataSource 정보 설정 -->
<bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="basic" />
<property name="password" value="1234" />
</bean>
<!-- 2. Spring JDBCTemplate 클래스 설정 -->
<bean name="template" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>'Spring, Boot > 기초 내용 정리' 카테고리의 다른 글
| Spring(MyBatis)_01 (0) | 2025.02.05 |
|---|---|
| Spring(MyBatis)_00 (1) | 2025.02.05 |
| Spring(JDBC)_00 (1) | 2025.01.22 |
| Spring(MVC)_03_01 (0) | 2025.01.22 |
| Spring(MVC)_02_02 (0) | 2025.01.22 |