내가 구현한 기능소개(메인페이지) - KimByoungKoo/NewLightProject GitHub Wiki
- User가 작성한 글 최신순으로 리스트 띄우기
MainFrontController.java
public class MainFrontController extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doProcess(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doProcess(req, resp);
}
private void doProcess(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
String target = req.getRequestURI().substring(req.getContextPath().length());
System.out.println(target);
switch(target) {
case "/main/mainpageListOk.mi" :
System.out.println("mainpage 들어왔다!!");
new MainpageListOkController().execute(req, resp);
break;
}
}
}MainpageListOkController.java
public class MainpageListOkController implements Execute{
@Override
public void execute(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
MainVO mainVO = new MainVO();
MainDAO mainDAO = new MainDAO();
List<MainVO> main = null;
main = mainDAO.selectList();
System.out.println(main);
req.setAttribute("main", main);
req.getRequestDispatcher("/app/main/mainpage_newlight.jsp").forward(req, resp);
}
}MainDAO
public class MainDAO {
public SqlSession sqlSession;
public MainDAO() {
sqlSession = MyBatisConfig.getSqlSessionFactory().openSession(true);
}
// 메인페이지 리스트 띄어주기
public List<MainVO> selectList() {
return sqlSession.selectList("main.selectList");
}
}MainMapper.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">
<mapper namespace="main">
<!-- 메인페이지에 작성 최신순으로 리스트 띄어주기 -->
<select id="selectList" resultType="MainVO">
select count(cc.comment_number ) comment_count, j.* from (
select count(l.member_number) like_count, m.member_nickname, m.member_pfp , c.* from creations c join
`member` m
on c.member_number = m.member_number
left outer join likes l
on c.creation_number = l.creation_number
group by c.creation_number
) j left outer join creations_comment cc
on j.creation_number = cc.creation_number
group by j.creation_number
order by j.creation_number desc
</select>
</mapper>메인페이지 최신순 리스트