Heim  >  Artikel  >  Web-Frontend  >  Verwenden Sie Angularjs+mybatis, um ein Kommentarsystem zu erstellen

Verwenden Sie Angularjs+mybatis, um ein Kommentarsystem zu erstellen

php中世界最好的语言
php中世界最好的语言Original
2018-03-07 11:32:101249Durchsuche

Dieses Mal bringe ich Ihnen die Angularjs+mybatis zum Erstellen eines Kommentarsystems. Welche Vorsichtsmaßnahmen gibt es für die Verwendung von Angularjs+mybatis zum Erstellen eines Kommentarsystems? Das Folgende ist ein praktischer Fall, schauen wir uns das an.

Ich wollte schon immer ein Kommentarsystem schreiben. Nachdem ich die Kommentare zu Duosuo, NetEase und Jianshu gelesen hatte, überlegte ich, welche Art von Kommentarsystem ich implementieren sollte. Der Schlüssel zum Kommentarsystem ist die Anzahl der Verschachtelungsebenen und das Design der Datenbanktabelle. Es gibt viele Verschachtelungsebenen, die Tabellenstruktur ist komplex und die Darstellung ist umständlich. Schließlich haben wir uns entschieden, einen Kommentar der zweiten Ebene zu implementieren. Das System wird von Maven erstellt und Springboot erstellt schnell die Spring-Umgebung. Das Frontend verwendet AngularJS+Bootstrap, das Backend verwendet SpringMVC+Mybatis und die Datenbank verwendet MySQL. Das Frontend fordert Hintergrund-API-Betriebskommentare an.

Verzeichnisstruktur

Verwenden Sie Angularjs+mybatis, um ein Kommentarsystem zu erstellen

Datenbanktabellendesign

##说说表或者文章表  
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;

Kommentar-Mapper (Schlüssel) abrufen

<?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>

Verwenden Sie Angularjs+mybatis, um ein Kommentarsystem zu erstellen

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Verwandte Lektüre:

Zusammenfassung der Verwendung von Pixi.js

So führen Sie ExecJs-Anweisungen in Python aus

So erstellen Sie eine TabBar für die untere Navigation auf der Vue-Startseite

Verwenden von Video.js zur Implementierung der H5-Liveübertragungsschnittstelle

Das obige ist der detaillierte Inhalt vonVerwenden Sie Angularjs+mybatis, um ein Kommentarsystem zu erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn