티스토리 뷰
728x90
댓글 테이블 생성
CREATE TABLE `main_board_reply` ( `seq` int(11) NOT NULL AUTO_INCREMENT, `main_seq` int(11), `title` varchar(11) DEFAULT NULL, `name` varchar(11) DEFAULT NULL, `date` date DEFAULT NULL, `count` int(11) DEFAULT NULL, `content` varchar(200) DEFAULT NULL, PRIMARY KEY (`seq`) )
MainBoardReply 클래스 생성
package com.iot.db.domain; import java.sql.Date; import bluexmas.util.DateUtils; import net.sf.json.JSONObject; public class MainBoardReply { // pk private int seq; private int main_seq; private String title; private String name; private Date date; private int count; private String content; private String delete_flag = "N"; public void setSeq(int seq) { this.seq = seq; } public int getSeq() { return this.seq; } public void setMain_seq(int main_seq) { this.main_seq = main_seq; } public int getMain_seq() { return this.main_seq; } public void setTitle(String title) { this.title = title; } public String getTitle() { return this.title; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } public void setDate(Date date) { this.date = date; } public Date getDate() { return this.date; } public void setCount(int count) { this.count = count; } public int getCount() { return this.count; } public void setContent(String content) { this.content = content; } public String getContent() { return this.content; } public String getDelete_flag() { return delete_flag; } public void setDelete_flag(String delete_flag) { this.delete_flag = delete_flag; } public JSONObject getJSONObject() { JSONObject jobj = new JSONObject(); jobj.put("seq", this.seq); jobj.put("main_seq", this.main_seq); jobj.put("title", this.title); jobj.put("name", this.name); jobj.put("date", DateUtils.datetoIsoDate(this.date)); jobj.put("count", this.count); jobj.put("content", this.content); return jobj; } }
MainBoardReplyMapper 인터페이스 생성
package com.iot.db.mapper; import java.util.List; import java.util.Map; import com.iot.db.domain.MainBoardReply; public interface MainBoardReplyMapper { public MainBoardReply selectMainBoardReply(Map<String, Object> params); public void insertMainBoardReply(MainBoardReply mainBoardReply); public void updateMainBoardReply(MainBoardReply mainBoardReply); public void deleteMainBoardReply(Map<String, Object> params); public int getCount(); public int getCountFormData(Map<String, Object> params); public List<MainBoardReply> listMainBoardReply(Map<String, Object> map); }
MainBoardReplyMapper.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="com.iot.db.mapper.MainBoardReplyMapper"> <!-- selectMainBoardReply --> <select id="selectMainBoardReply" parameterType="map" resultType="com.iot.db.domain.MainBoardReply"> select seq ,main_seq ,title ,name ,date ,count ,content from main_board_reply where seq = #{seq} </select> <!-- updateMainBoardReply --> <update id="updateMainBoardReply" parameterType="com.iot.db.domain.MainBoardReply" statementType="PREPARED"> update main_board_reply <trim prefix="SET" suffixOverrides=","> <if test="main_seq != null">main_seq = #{main_seq, jdbcType=INTEGER} ,</if> <if test="title != null">title = #{title, jdbcType=VARCHAR} ,</if> <if test="name != null">name = #{name, jdbcType=VARCHAR} ,</if> <if test="date != null">date = #{date, jdbcType=DATE} ,</if> <if test="count != null">count = #{count, jdbcType=INTEGER} ,</if> <if test="content != null">content = #{content, jdbcType=VARCHAR} ,</if> </trim> where seq = #{seq} </update> <!-- insertMainBoardReply --> <insert id="insertMainBoardReply" parameterType="com.iot.db.domain.MainBoardReply" statementType="PREPARED"> insert into main_board_reply( <trim suffixOverrides=","> <if test="main_seq != null">main_seq ,</if> <if test="title != null">title ,</if> <if test="name != null">name ,</if> <if test="date != null">date ,</if> <if test="count != null">count ,</if> <if test="content != null">content ,</if> </trim> ) values ( <trim suffixOverrides=","> <if test="main_seq != null">#{main_seq, jdbcType=INTEGER} ,</if> <if test="title != null">#{title, jdbcType=VARCHAR} ,</if> <if test="name != null">#{name, jdbcType=VARCHAR} ,</if> <if test="date != null">#{date, jdbcType=DATE} ,</if> <if test="count != null">#{count, jdbcType=INTEGER} ,</if> <if test="content != null">#{content, jdbcType=VARCHAR} ,</if> </trim> ) </insert> <!-- deleteMainBoardReply --> <delete id="deleteMainBoardReply" parameterType="map" statementType="PREPARED"> delete from main_board_reply where seq = #{seq} </delete> <!-- getCount --> <select id="getCount" resultType="int"> select count(*) from main_board_reply </select> <!-- getCountFormData --> <select id="getCountFormData" parameterType="map" resultType="int"> select count(*) from main_board_reply <trim prefix="WHERE" prefixOverrides="AND |OR "> <if test="searchstr != null">and title like '%${searchstr}%'</if> </trim> </select> <!-- listMainBoardReply --> <select id="listMainBoardReply" parameterType="map" resultType="com.iot.db.domain.MainBoardReply"> select * from main_board_reply where main_seq = #{main_seq} </select> </mapper>
MainBoardReplyService 클래스 생성
package com.iot.db.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.iot.db.domain.MainBoardReply; import com.iot.db.mapper.MainBoardReplyMapper; @Service public class MainBoardReplyService { public final static int pagerowcnt = 25; @Autowired private MainBoardReplyMapper mainBoardReplyMapper; public MainBoardReply selectMainBoardReply(int seq) { Map<String, Object> params = new HashMap<String, Object>(); params.put("seq", seq); return mainBoardReplyMapper.selectMainBoardReply(params); } public void insertMainBoardReply(MainBoardReply mainBoardReply) { mainBoardReplyMapper.insertMainBoardReply(mainBoardReply); } public void updateMainBoardReply(MainBoardReply mainBoardReply) { mainBoardReplyMapper.updateMainBoardReply(mainBoardReply); } public void deleteMainBoardReply(int seq) { Map<String, Object> params = new HashMap<String, Object>(); params.put("seq", seq); mainBoardReplyMapper.deleteMainBoardReply(params); } public void deleteMainBoardReply(Map<String, Object> params) { mainBoardReplyMapper.deleteMainBoardReply(params); } public int getCount() { return mainBoardReplyMapper.getCount(); } public List<MainBoardReply> listMainBoardReply(int main_seq) throws Exception { Map<String, Object> params = new HashMap<String, Object>(); params.put("main_seq", main_seq); return mainBoardReplyMapper.listMainBoardReply(params); } }
댓글 입력 Form (jsp에 반영)
<form action="<c:url value="/insertReplyPage.iot"/>" method="post"> <input type="hidden" name="main_seq" value="${seq}"/> <textArea name ="comment" cols="60" rows="20"></textArea> <input type="submit" value="답변 입력"> <input type="button" value="취 소"> </form>
댓글 입력 처리 (컨트롤러에 반영)
@Autowired MainBoardReplyService replyService; @RequestMapping(value = "/insertReplyPage.iot", method = RequestMethod.POST) public String insertReplyPage( @RequestParam("main_seq") int main_seq, @RequestParam("comment") String comment, ModelMap modelMap) throws Exception { System.out.println("main_seq = " + main_seq + "/" + comment); MainBoardReply reply = new MainBoardReply(); reply.setMain_seq(main_seq); reply.setContent(comment); replyService.insertMainBoardReply(reply); return "redirect:/moveToMainBoard.iot"; }
게시판 도메인에 댓글 목록 추가
private List<MainBoardReply> replyList; public List<MainBoardReply> getReplyList() { return replyList; } public void setReplyList(List<MainBoardReply> replyList) { this.replyList = replyList; }
게시판 리스트 (컨트롤러에 반영)
@RequestMapping(value = "/moveToMainBoard.iot", method = RequestMethod.GET) public String moveToMainBoard(ModelMap modelMap) throws Exception { // 게시판 내용 조회 List<main_boardDto> main_boardDtoList = service.selectMainBoardList(); // 댓글 조회 for (main_boardDto board: main_boardDtoList) { List<MainBoardReply> replyList = replyService.listMainBoardReply(board.getSeq()); board.setReplyList(replyList); } System.out.println("main_baordDto : " +main_boardDtoList); modelMap.addAttribute("main_boardDto",main_boardDtoList); return "/main_board"; }
게시판 리스트 (jsp에 반영)
<c:forEach items="${main_boardDto}" var="data" varStatus="loop"> <tr> <td><input type="checkbox" name="delete_seqs" value="${data.seq}"/></td> <td>${data.seq}</td> <td class="underline" onclick="javascript:readContent(${data.seq});">${data.title}</td> <td onclick="javascript:modifyExplanation_content(${data.seq});">${data.name}</td> <td>${data.date}</td> <td>${data.count}</td> </tr> <c:forEach items="${data.replyList}" var="reply" varStatus="loop"> <tr> <td><input type="checkbox" name="delete_seqs" value="${reply.seq}"/></td> <td>${reply.seq}</td> <td> -> ${reply.content}</td> <td>${reply.name}</td> <td>${reply.date}</td> <td>${reply.count}</td> </tr> </c:forEach> </c:forEach>
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- koba2010
- 동경
- 송주경
- 레이싱모델 익스트림 포토 페스티벌
- oracle
- Delphi
- 서울오토살롱
- android
- Spring MVC
- ffmpeg
- Delphi Tip
- Xcode
- SAS
- Linux
- 튜닝쇼 2008
- 지스타2007
- Spring
- NDK
- 전예희
- Java
- KOBA
- MySQL
- BPI-M4
- JavaScript
- flex
- Mac
- sas2009
- 일본여행
- ubuntu
- ble
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함