easyliving·2023년 2월 22일
0

FRONT_END (JAVA_SCRIPT)

목록 보기
54/55

AppConfig.java

package com.java.config;


import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

@Configuration
public class AppConfig {

	@Bean	
	public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
		SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
		//dataSource정보를 가져옴
		sessionFactory.setDataSource(dataSource);
		//Mapper.xml정보를 가져옴 여러개 배열로 받음.
		Resource[] res=new PathMatchingResourcePatternResolver().getResources("classpath:/mapper/**/*.xml");
		sessionFactory.setMapperLocations(res);
		
		return sessionFactory.getObject();
	}//SqlSessionFactory
	
	@Bean
	public SqlSessionTemplate sqlSession(SqlSessionFactory sqlSessionFactory) {
		return new SqlSessionTemplate(sqlSessionFactory); //connection 
	}
}


fboardList.jsp : jsp



<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html>
<html>

	<body>
		<h2>자유게시판</h2>
		
		</div>
		<table>
		   <colgroup>
		     <col width="8%">
		     <col width="49%">
		     <col width="13%">
		     <col width="20%">
		     <col width="10%">
		   </colgroup>
		   <tr>
			  <th>번호</th>
			  <th>제목</th>
			  <th>작성자</th>
			  <th>날짜</th>
			  <th>조회수</th>
			</tr>
			
			<c:forEach items="${map.list}" var="bvo">
			<tr>
			  <td>${bvo.bno}</td>
			  <td>
			  <c:forEach begin="1" end="${bvo.bindent}" step="1">
			  	<img class="img" src="/images/icon_reply.png">
			  </c:forEach>	
			  	<a href="fboardView?bno=${bvo.bno}&page=${map.page}&searchTitle=${searchTitle}&searchWord=${searchWord}">
			  		${bvo.btitle}<c:if test="${bvo.bfile!=null }"> <span class="material-symbols-outlined">download
					</span></c:if>
			  	</a>
			  </td>
			  <td>${bvo.id}</td>
			  <td>
			  <fmt:formatDate value="${bvo.bdate}" pattern="yyyy-MM-dd"/>
			  </td>
			  <td>${bvo.bhit}</td>
			</tr>
			</c:forEach>
			<c:if test="${result == 'fail'  or list.size()==0}"><!--코드에 문제가 없거나 또는 
			db에서 불러올 데이터가 없을 때  -->	   
				<tr>
				  <td colspan="5">데이터가 없습니다.</td>
				</tr>
			</c:if>				
		</table>
		<div class="numbering">
		<!--첫페이지 이동  -->
		<c:if test="${map.page==1 }"><span>&#171;</span></c:if>
		<c:if test="${map.page!=1 }">
			<a href="fboardList.do?map.page=1&searchTitle=${searchTitle}&searchWord=${searchWord}">
		</div>
	
	</body>
</html>

controller

package com.java.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.java.vo.memberVo;

@Controller
@RequestMapping
public class BoardController {

@Autowired
	BoardService boardService;

@GetMapping("/board/fboardList")
	public String fboardList(Model model) {
		//모든 게시글 정보 model에 추가
			Map<String, Object> map =boardService.selectBoardList();
			model.addAttribute("map",map);
			
		 return "board/fboardList";  
	}
	

BoardServiceImple.java - service

package com.java.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

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

import com.java.mapper.BoardMapper;
import com.java.vo.boardVo;


@Service
public class BoardServiceImpl implements BoardService {
	@Autowired
	BoardMapper boardMapper;

	//전체 게시글 가져오기 -@Override: 기능없음/표시만하는 것 
	public Map<String,Object> selectBoardList() {
		 Map<String,Object> map=new HashMap<>();
		 List<boardVo> list= boardMapper.selectBoardList();
		
		//page:현재페이지,listCount:총개수,maxpage:최대페이지,startpage,endpage,startrow,endrow
		int listCount=boardMapper.selectCount();
		System.out.println("BoardServiceImpl-listCount:"+listCount);
		map.put("list", list);
		map.put("page", 1);
		map.put("listCount", listCount);
		return map;
	}//selectBoardList
	
	//1개 게시글
	public boardVo selectOne(int bno){
		boardVo bvo=boardMapper.selectOne(bno);
		
		return bvo;
	}

}

BoardMapper.java - DAO


package com.java.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.java.vo.boardVo;



@Mapper //sqlSessionTemplate
public interface BoardMapper {
	
	public List<boardVo> selectBoardList(); //xml - select id 에 가서 쿼리문 resulttype으로 돌려줘

	public int selectCount();

	public boardVo selectOne(int bno);
	
	
}

boardMapper.xml - MyBatis


<?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.java.mapper.BoardMapper">
  <select id="selectBoardList" resultType="com.java.vo.boardVo">
    select * from board
  </select>
  <select id="selectCount" resultType="int">
    select count(*) count from board
  </select>
  <select id="selectOne" resultType="com.java.vo.boardVo">
    select * from board where bno=#{bno}
  </select>
</mapper>
profile
가끔져요

0개의 댓글