日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql读写分离实战准备一

發布時間:2024/1/17 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql读写分离实战准备一 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一目的

首先準備一個web網站,這里模擬一個網站的頁面,主要對開源網頁實現動態存取,之后將使用本頁面進一步實現對mysql的讀寫分離功能

二架構

前臺是開源網頁的頁面,具體例子可從如下網站下載

http://www.superslide2.com/

后臺采用springboot+thymeleaf開發

1前端頁面整合

復制網站實例頁面,到如下路徑/template/case1page

? 復制靜態頁面包括js文件到/static

2后臺整合

Pom中加入相應jar包依賴,且未方便開發可以加入熱部署相關依賴,例如

<build>

???????? <plugins>

????????????? <plugin>

?????????????????? <groupId>org.springframework.boot</groupId>

?????????????????? <artifactId>spring-boot-maven-plugin</artifactId>

?????????????????? <dependencies>

??????????????? <!-- spring熱部署-->

??????????????? <dependency>

??????????????????? <groupId>org.springframework</groupId>

??????????????????? <artifactId>springloaded</artifactId>

??????????????????? <version>1.2.1.RELEASE</version>

??????????????? </dependency>

????????????? </dependencies>

????????????? </plugin>

???????? </plugins>

???? </build>

?

整合mybatis

Application中編寫設置注入數據源和SqlSessionFactory的方法如下

@Bean

??? @ConfigurationProperties(prefix="spring.datasource")

??? public DataSource dataSource() {

??????? return new org.apache.tomcat.jdbc.pool.DataSource();

???????????????? //com.alibaba.druid.pool.DruidDataSource();

??? }

3 數據庫設計

主要采用兩個表SD_CATEGORYSD_LABLE_SWITCH,存放對應頁面中標題和標題中相關的詳細數據。具體建表和數據可見附件腳本

?

三實際功能

頁面中實現了12demo的動態效果

已第11demo為例。說明實現方式

1靜態頁面中數據樣式如下

<li class="nLi">

?????????????????????????????????????????????? <h3><a href="http://www.SuperSlide2.com" target="_blank">新聞

?????????????????????????????????????????????? <ul class="sub">

??????????????????????????????????????????????????????? <li><a href="#">新聞首頁</li>

??????????????????????????????????????????????????????? <li><a href="#">新聞人物</li>

??????????????????????????????????????????????????????? <li><a href="#">新聞電視</li>

??????????????????????????????????????????????????????? <li><a href="#">新聞圖片</li>

??????????????????????????????????????????????????????? <li><a href="#">新聞視頻</li>

??????????????????????????????????????????????????????? <li><a href="# ">新聞專題</li>

?????????????????????????????????????????????? </ul>

??????????????????????????? </li>

??????????????????????????? <li class="nLi">

?????????????????????????????????????????????? <h3><a href="http://www.SuperSlide2.com" target="_blank">預告片

?????????????????????????????????????????????? <ul class="sub">

??????????????????????????????????????????????????????? <li><a href="#">新聞首頁</li>

??????????????????????????????????????????????????????? <li><a href="#">新聞人物</li>

??????????????????????????????????????????????????????? <li><a href="#">新聞電視</li>

??????????????????????????????????????????????????????? <li><a href="#">新聞圖片</li>

??????????????????????????????????????????????????????? <li><a href="#">新聞視頻</li>

??????????????????????????????????????????????????????? <li><a href="# ">新聞專題</li>

?????????????????????????????????????????????? </ul>

??????????????????????????? </li>

根據上面數據顯示方式確定現在后臺存放數據的結構是,用一個對象存放標題和條目數據(List),然后再用一個組列表存放這些對象,已此來對應頁面的結構

2頁面顯示方式如下

<li class="nLi" th:each="list:${grp11List}">

??????????????????????????? <h3><a href="http://www.SuperSlide2.com" target="_blank" th:text="${list.TP_NM}">新聞</a></h3>

??????????????????????????? <ul class="sub">

????????????????????????????????? <li th:each="lableList:${list.lable}">

????????????????????????????????? ? <a href="#">

????????????????????????????????? ?? <p th:text="${lableList.LAB_NM}">新聞首頁</p>

????????????????????????????????? ? </a>

????????????????????????????????? ?</li>

?????????????????????????????????

??????????????????????????? </ul>

???????????????? </li>

?

后臺存放方式

在處理對應demo實例的controller里組織數據的邏輯如下

//查找標題

??? ? List<GrpTitle> grpTitle = userService.getGrpTitle(caseId);

??? ? //查找每個標題時,找出所有對應lable數據并放入一個grplist

??? ? for (GrpTitle title : grpTitle) {

??? ??????? List<Lable> lable = userService.getLableInfo(title.getGRP_ID());

??? ??????? FullContent cont = new FullContent();

??? ??????? cont.setTP_NM(title.getTP_NM());

??? ??????? cont.setLable(lable);

??? ??????? //把所有grplist放到一個list

??? ??????? grpList.add(cont);

?????????? }

??? ? //加入case1 返回需要的結果

??? ? model.addAttribute("grp11List", grpList);

?

總結

以上是生活随笔為你收集整理的mysql读写分离实战准备一的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。