欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

##說(shuō)說(shuō)表或者文章表 
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; 
 
##一級(jí)評(píng)論表 
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; 
 
##二級(jí)評(píng)論表 
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; 

獲取評(píng)論的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> 

頁(yè)面展示


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

相關(guān)文章

  • Angular.js中數(shù)組操作的方法教程

    Angular.js中數(shù)組操作的方法教程

    AngularJS是google在維護(hù),其在國(guó)外已經(jīng)十分火熱,可是國(guó)內(nèi)的使用情況卻有不小的差距,參考文獻(xiàn)/網(wǎng)絡(luò)文章也很匱乏。下面這篇文章主要給大家介紹了關(guān)于Angular.js中數(shù)組操作的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-07-07
  • angularJS深拷貝詳解

    angularJS深拷貝詳解

    本篇文章主要介紹了angularJS深拷貝,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-03-03
  • Angular之指令Directive用法詳解

    Angular之指令Directive用法詳解

    本篇文章主要介紹了Angular之指令Directive系列詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-03-03
  • Angular.js初始化之ng-app的自動(dòng)綁定與手動(dòng)綁定詳解

    Angular.js初始化之ng-app的自動(dòng)綁定與手動(dòng)綁定詳解

    這篇文章主要給大家介紹了關(guān)于Angular.js初始化之ng-app的自動(dòng)綁定與手動(dòng)綁定的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • Angular表單驗(yàn)證實(shí)例詳解

    Angular表單驗(yàn)證實(shí)例詳解

    這篇文章主要介紹了angular表單驗(yàn)證的相關(guān)知識(shí),angular來(lái)驗(yàn)證可以定義樣式的,下文通過代碼給大家實(shí)例介紹下,需要的朋友可以參考下
    2016-10-10
  • AngularJS基礎(chǔ) ng-hide 指令用法及示例代碼

    AngularJS基礎(chǔ) ng-hide 指令用法及示例代碼

    本文主要介紹AngularJS ng-hide 指令,這里整理了ng-hide指令的基礎(chǔ)資料,并附實(shí)例代碼,有興趣的小伙伴參考下
    2016-08-08
  • 如何編寫一個(gè)完整的Angular4 FormText 組件

    如何編寫一個(gè)完整的Angular4 FormText 組件

    本篇文章主要介紹了如何編寫一個(gè)完整的Angular4 FormText 組件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-11-11
  • AngularJS中的API(接口)簡(jiǎn)單實(shí)現(xiàn)

    AngularJS中的API(接口)簡(jiǎn)單實(shí)現(xiàn)

    本文主要介紹AngularJS API(接口),這里對(duì)AngularJS API的知識(shí)做了詳細(xì)講解,并附簡(jiǎn)單代碼實(shí)例,有需要的小伙伴可以參考下
    2016-07-07
  • 使用Angular CLI生成 Angular 5項(xiàng)目教程詳解

    使用Angular CLI生成 Angular 5項(xiàng)目教程詳解

    這篇文章主要介紹了使用Angular CLI生成 Angular 5項(xiàng)目的教程詳解 ,需要的朋友可以參考下
    2018-03-03
  • 詳解@angular/cli 改變默認(rèn)啟動(dòng)端口兩種方式

    詳解@angular/cli 改變默認(rèn)啟動(dòng)端口兩種方式

    這篇文章主要介紹了詳解@angular/cli 改變默認(rèn)啟動(dòng)端口兩種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-11-11

最新評(píng)論