Heim > Web-Frontend > js-Tutorial > Hauptteil

Verwenden Sie Angularjs+mybatis, um ein Kommentarsystem zu erstellen

php中世界最好的语言
Freigeben: 2018-03-07 11:32:10
Original
1310 Leute haben es durchsucht

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;
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!