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_CATEGORY,SD_LABLE_SWITCH,存放对应页面中标题和标题中相关的详细数据。具体建表和数据可见附件脚本

 

三实际功能

页面中实现了12个demo的动态效果

已第11个demo为例。说明实现方式

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);

 

时间: 2024-09-20 11:43:17

mysql读写分离实战准备一的相关文章

mysql读写分离实战二-windows 上mysql主从数据库搭建及问题总结

根据前篇web项目的搭建后,需要搭建主从数据库,这里在windows服务器上搭建了主从结构的mysql,这里在记录下在本机模拟搭建过程 在windows上安装和linux还是有些不同,不注意就会耽误不少时间 一 下载安装包和安装https://dev.mysql.com/downloads/file/?id=469273 下载的安装包是Archive 需要手工安装且建立服务和初始化data目录,具体可以在网上搜索有很多具体安装方法. 二 建立从节点 1把主服务器的安装目录C:\Program F

PHP实现MySQL读写分离

本代码是从uchome的代码修改的,是因为要解决uchome的效率而处理的.PHP实现的Mysql读写分离 本代码是从uchome的代码修改的,是因为要解决uchome的效率而处理的. PHP实现的Mysql读写分离 主要特性: 简单的读写分离 一个主数据库,可以添加更多的只读数据库 读写分离但不用担心某些特性不支持 缺点:同时连接两个数据库 英文比较烂,也写几个字吧 php code for mysql read/write split feature: simply rw split one

PHP实现的Mysql读写分离

本代码是从uchome的代码修改的,是因为要解决uchome的效率而处理的.这个思维其实很久就有了,只是一直没有去做,相信也有人有同样的想法,如果有类似的,那真的希望提出相关的建议. 封装的方式比较简单,增加了只读数据库连接的接口扩展,不使用只读数据库也不影响原代码使用.有待以后不断完善.. 为了方便,试试建立了google的一个项目: http://code.google.com/p/mysql-rw-php/ 希望给有需要的朋友带来帮助. PHP实现的Mysql读写分离 主要特性: 简单的读

使用PHP实现Mysql读写分离

本代码是从uchome的代码修改的,是因为要解决uchome的效率而处理的.这个思维其实很久就有了,只是一直没有去做,相信也有人有同样的想法,如果有类似的,那真的希望提出相关的建议. 封装的方式比较简单,增加了只读数据库连接的接口扩展,不使用只读数据库也不影响原代码使用.有待以后不断完善.. 为了方便,试试建立了google的一个项目:http://code.google.com/p/mysql-rw-php/希望给有需要的朋友带来帮助. PHP实现的Mysql读写分离主要特性:1.简单的读写分

MySQL读写分离技术

阅读目录 1.简介 2.基本环境 3.配置主从复制 4.MySQL读写分离配置 4.1.安装lua 4.2.安装mysql-proxy 5.MySQL读写分离测试 1).修改rw-splitting.lua文件 2).修改完成后,启动mysql-proxy 3).创建用于读写分离的数据库连接用户 4).测试登陆账号proxy1@192.168.95.13进行添加数据 5).关闭12mysql的从复制 6).证明写分离 7).证明读分离 6.建议 回到顶部 1.简介 当今MySQL使用相当广泛,随

云服务器 ECS 配置:利用MySQL读写分离,提升应用数据吞吐性能

利用MySQL读写分离,提升应用数据吞吐性能 背景 一般情况下,对数据库的读和写都在同一个数据库服务器中操作时,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过读写分离来减轻主数据库的负载.本篇文章分别从应用层和系统层来介绍读写分离的实现方法. 应用层实现方法: 应用层中直接使用代码实现,在进入Service之前,使用AOP来做出判断,是使用写库还是读库,判断依据可以根据方法名判断,比如说以query.find.get等开头的就走读库,其他的走写库. 优点: 1.多数据源切换方便

Magento数据库配置选项,以及mysql 读写分离

1.数据库配置 [mysqld] key_buffer = 512M max_allowed_packet = 64M table_cache = 512 sort_buffer_size = 4M read_buffer_size = 4M read_rnd_buffer_size = 2M myisam_sort_buffer_size = 64M tmp_table_size = 128M query_cache_size = 96M query_cache_type = 1 thread

spring aop实现mysql读写分离(可用于SAE的mysql数据库)

spring aop实现mysql读写分离(可用于SAE的mysql数据库)  发表于 2014-3-12 12:46:53 |只看该作者 |倒序浏览          前言:SAE的MySQL数据库提供了主从数据库,我们可以向主数据库写数据,同时从从库里面读取数.如果在程序中不做数据库的读写切换是无法正常使用SAE的MYSQL数据库的,我们可以使用spring的aop功能实现mysql主从数据库的切换          在application-datasource.xml中配置master和

MySQL 读写分离实例详解_Mysql

MySQL 读写分离 MySQL读写分离又一好办法 使用 com.mysql.jdbc.ReplicationDriver 在用过Amoeba 和 Cobar,还有dbware 等读写分离组件后,今天我的一个好朋友跟我讲,MySQL自身的也是可以读写分离的,因为他们提供了一个新的驱动,叫 com.mysql.jdbc.ReplicationDriver 说明文档:http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-replic