最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Angularjs+mybatis實現(xiàn)二級評論系統(tǒng)(仿簡書)

 更新時間:2017年02月13日 10:44:30   作者:timelessmemoryli  
這篇文章主要為大家詳細介紹了基于Angularjs+mybatis實現(xiàn)二級評論系統(tǒng),模仿簡書效果制作,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一直想寫個評論系統(tǒng),看了下多說,網(wǎng)易,簡書的評論,想了下自己該實現(xiàn)怎樣的評論系統(tǒng)。

評論系統(tǒng)關(guān)鍵是嵌套層數(shù)以及數(shù)據(jù)庫表設(shè)計。嵌套層數(shù)多,表結(jié)構(gòu)復(fù)雜,呈現(xiàn)也麻煩,最后決定實現(xiàn)一個二級評論。系統(tǒng)由maven構(gòu)建,springboot快速搭建spring環(huán)境。前臺采用angularjs+bootstrap,后臺使用springmvc+mybatis,數(shù)據(jù)庫采用MySQL.前臺請求后臺API操作評論。

目錄結(jié)構(gòu)

數(shù)據(jù)庫表設(shè)計

##說說表或者文章表 
create table saying ( 
 saying_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
 sayingContent VARCHAR(500) NOT NULL, 
 author VARCHAR(50) NOT NULL, 
 sayingAvatar VARCHAR(50) NOT NULL, 
 likes VARCHAR(500) NOT NULL, 
 createTime datetime NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
 
##一級評論表 
create table firstLevelComment ( 
 flc_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
 sayingId INT NOT NULL, 
 commenter VARCHAR(50) NOT NULL, 
 commenterAvatar VARCHAR(50) NOT NULL, 
 commentContent VARCHAR(500) NOT NULL, 
 commentTime datetime NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
 
##二級評論表 
create table secondLevelComment ( 
 slc_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
 sayingId INT NOT NULL, 
 flcId INT NOT NULL, 
 replier VARCHAR(50) NOT NULL, 
 toCommenter VARCHAR(50) NOT NULL, 
 replyContent VARCHAR(50) NOT NULL, 
 replyTime datetime NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

獲取評論的mapper(關(guān)鍵)

<?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="personal.timeless.cms.mapper.SayingMapper" > 
 
 <resultMap id="SayingMap" type="saying" > 
 <id column="saying_id" property="id" jdbcType="INTEGER" /> 
 <result column="sayingContent" property="sayingContent" jdbcType="INTEGER" /> 
 <result column="author" property="author" jdbcType="VARCHAR" /> 
 <result column="sayingAvatar" property="avatar" jdbcType="VARCHAR" /> 
 <result column="likes" property="likes" jdbcType="VARCHAR" /> 
 <result column="createTime" property="createTime" jdbcType="TIMESTAMP" /> 
 <collection property="flcs" ofType="firstLevelComment" column="sayingId"> 
 <id column="flc_id" property="id" jdbcType="INTEGER" /> 
 <result column="sayingId" property="sayingId" jdbcType="INTEGER" /> 
 <result column="commenter" property="commenter"/> 
 <result column="commenterAvatar" property="avatar"/> 
 <result column="commentContent" property="commentContent"/> 
 <result column="commentTime" property="commentTime" jdbcType="TIMESTAMP" /> 
 <collection property="slcs" ofType="secondLevelComment" column="flcId"> 
  <id column="slc_id" property="id" jdbcType="INTEGER" /> 
  <result column="flcId" property="flcId" jdbcType="INTEGER" /> 
  <result column="replier" property="replier"/> 
  <result column="toCommenter" property="toCommenter"/> 
  <result column="replyContent" property="replyContent"/> 
  <result column="replyTime" property="replyTime" jdbcType="TIMESTAMP" /> 
 </collection> 
 </collection> 
 </resultMap> 
 
 <select id="selectOneById" resultMap="SayingMap" parameterType="int" > 
 select * from 
 (select * from saying s left join firstLevelComment fc on s.saying_id=fc.sayingId where s.saying_id=#{id}) tmp left join secondLevelComment sc 
 on tmp.flc_id = sc.flcId 
 </select> 
 
 <select id="updateLikesById"> 
 update saying set likes = #{likes} where saying_id = #{id} 
 </select> 
 </mapper> 

頁面展示


以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于AngularJS實現(xiàn)表單驗證功能

    基于AngularJS實現(xiàn)表單驗證功能

    這篇文章主要為大家詳細介紹了基于AngularJS實現(xiàn)表單驗證功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 簡單談?wù)凙ngular中的獨立組件的使用

    簡單談?wù)凙ngular中的獨立組件的使用

    這篇文章主要介紹了簡單談?wù)凙ngular中的獨立組件的使用的相關(guān)資料,通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,需要的朋友可以參考下
    2022-08-08
  • 走進AngularJs之過濾器(filter)詳解

    走進AngularJs之過濾器(filter)詳解

    本篇文章主要介紹了AngularJs之過濾器(filter)詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • AngularJS通過$sce輸出html的方法

    AngularJS通過$sce輸出html的方法

    不知道大家有沒有發(fā)現(xiàn)在用AngularJS作為前端搭建個人博客的時候,發(fā)現(xiàn)用AngularJs輸出html的時候,瀏覽器并不解析這些html標簽,這里我們需要其顯示angular輸出的html能被瀏覽器解析怎么辦呢?不知道Angularjs如何實現(xiàn)這種功能的通過這篇文章來看看吧。
    2016-09-09
  • angular4強制刷新視圖的方法

    angular4強制刷新視圖的方法

    今天小編就為大家分享一篇angular4強制刷新視圖的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • AngularJS2中一種button切換效果的實現(xiàn)方法(二)

    AngularJS2中一種button切換效果的實現(xiàn)方法(二)

    這篇文章主要介紹了AngularJS2中一種button切換效果的實現(xiàn)方法(二),非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-03-03
  • 監(jiān)聽angularJs列表數(shù)據(jù)是否渲染完畢的方法示例

    監(jiān)聽angularJs列表數(shù)據(jù)是否渲染完畢的方法示例

    前端在做數(shù)據(jù)渲染的時候經(jīng)常會遇到在數(shù)據(jù)渲染完畢后執(zhí)行某些操作,這篇文章主要介紹了監(jiān)聽angularJs列表數(shù)據(jù)是否渲染完畢的方法示例,非常具有實用價值,需要的朋友可以參考下
    2018-11-11
  • angularjs封裝bootstrap時間插件datetimepicker

    angularjs封裝bootstrap時間插件datetimepicker

    這篇文章主要介紹了angularjs封裝bootstrap時間插件datetimepicker 的相關(guān)資料,需要的朋友可以參考下
    2016-06-06
  • angularJs的ng-class切換class

    angularJs的ng-class切換class

    這篇文章主要介紹了angularJs的ng-class切換class,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • AngularJS ionic手勢事件的使用總結(jié)

    AngularJS ionic手勢事件的使用總結(jié)

    本篇文章主要介紹了AngularJS手勢事件的使用總結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08

最新評論

都匀市| 扶余县| 双柏县| 平和县| 新和县| 东平县| 名山县| 龙泉市| 永寿县| 唐海县| 南皮县| 五家渠市| 炉霍县| 虹口区| 云浮市| 涿州市| 古田县| 沂水县| 金湖县| 广南县| 克拉玛依市| 靖宇县| 绥化市| 大同市| 兰坪| 福州市| 泰宁县| 鄂尔多斯市| 苍南县| 新疆| 比如县| 崇信县| 开江县| 枣阳市| 德化县| 青岛市| 南京市| 昌黎县| 积石山| 南华县| 曲靖市|