這篇文章主要介紹“怎么實現mysql讀寫分離”,在日常操作中,相信很多人在怎么實現mysql讀寫分離問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么實現mysql讀寫分離”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
首先準備一個web網站,這里模擬一個網站的頁面,主要對開源網頁實現動態存取,之后將使用本頁面進一步實現對mysql的讀寫分離功能
前臺是開源網頁的頁面
后臺采用springboot+thymeleaf開發
復制網站實例頁面,到如下路徑/template/case1page
復制靜態頁面包括js文件到/static
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();
}
主要采用兩個表SD_CATEGORY,SD_LABLE_SWITCH,存放對應頁面中標題和標題中相關的詳細數據。具體建表和數據可見附件腳本
頁面中實現了12個demo的動態效果
已第11個demo為例。說明實現方式
1靜態頁面中數據樣式如下
<li class="nLi">
<h4><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">
<h4><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}">
<h4><a href="http://www.SuperSlide2.com" target="_blank" th:text="${list.TP_NM}">新聞</a></h4>
<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讀寫分離”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。