实现方式

db.properties

jdbc.write.driver=com.mysql.jdbc.Driver
jdbc.write.url=jdbc:mysql://192.168.142.128:3306/mysql_demo
jdbc.write.username=root
jdbc.write.password=leonjdbc.read.driver=com.mysql.jdbc.Driver
jdbc.read.url=jdbc:mysql://192.168.142.129:3306/mysql_demo
jdbc.read.username=root
jdbc.read.password=itcast

applicationContext-datasource.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- 配置数据源 - Read --><bean id="readDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"  lazy-init="true"><property name="driverClass" value="${jdbc.read.driver}"></property><property name="jdbcUrl" value="${jdbc.read.url}"></property><property name="user" value="${jdbc.read.username}"></property><property name="password" value="${jdbc.read.password}"></property></bean><!-- 配置数据源 - Write --><bean id="writeDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"  destroy-method="close"  lazy-init="true"><property name="driverClass" value="${jdbc.write.driver}"></property><property name="jdbcUrl" value="${jdbc.write.url}"></property><property name="user" value="${jdbc.write.username}"></property><property name="password" value="${jdbc.write.password}"></property></bean><!-- 配置动态分配的读写 数据源 --><bean id="dataSource" class="cn.leon.aop.datasource.ChooseDataSource" lazy-init="true"><property name="targetDataSources"><map key-type="java.lang.String" value-type="javax.sql.DataSource"><entry key="write" value-ref="writeDataSource"/><entry key="read" value-ref="readDataSource"/></map></property><property name="defaultTargetDataSource" ref="writeDataSource"/><property name="methodType"><map key-type="java.lang.String"><entry key="read" value=",get,select,count,list,query,find"/><entry key="write" value=",add,create,update,delete,remove,insert"/></map></property></bean></beans>

ChooseDataSource

public class ChooseDataSource extends AbstractRoutingDataSource {public static Map<String, List<String>> METHOD_TYPE_MAP = new HashMap<String, List<String>>();/*** 实现父类中的抽象方法,获取数据源名称* @return*/protected Object determineCurrentLookupKey() {return DataSourceHandler.getDataSource();}// 设置方法名前缀对应的数据源public void setMethodType(Map<String, String> map) {for (String key : map.keySet()) {List<String> v = new ArrayList<String>();String[] types = map.get(key).split(",");for (String type : types) {if (!StringUtils.isEmpty(type)) {v.add(type);}}METHOD_TYPE_MAP.put(key, v);}System.out.println("METHOD_TYPE_MAP : "+METHOD_TYPE_MAP);}
}

MySQL高级 - 案例 - 系统性能优化 - 数据源配置相关推荐

  1. MySQL高级 - 案例 - 系统性能优化 - 读写分离概述

    性能优化 - 排序 在查询数据时,如果业务需求中需要我们对结果内容进行了排序处理 , 这个时候,我们还需要对排序的字段建立适当的索引, 来提高排序的效率 . 概述 在Mysql主从复制的基础上,可以使 ...

  2. MySQL高级 - 案例 - 系统性能优化 - 分页优化

    优化count 创建一张表用来记录日志表的总数据量: create table log_counter(logcount bigint not null )engine = innodb defaul ...

  3. MySQL高级 - 案例 - 系统性能优化分析

    系统中用户访问日志的数据量,随着时间的推移,这张表的数据量会越来越大,因此我们需要根据业务需求,来对日志查询模块的性能进行优化. 1) 分页查询优化 由于在进行日志查询时,是进行分页查询,那也就意味着 ...

  4. MySQL高级 - 案例 - 系统性能优化 - 索引优化

    性能优化 - 索引 当根据操作人进行查询时, 查询的效率很低,耗时比较长.原因就是因为在创建数据库表结构时,并没有针对于 操作人 字段建立索引. CREATE INDEX idx_user_metho ...

  5. MySQL高级(SQL优化)

    MySQL高级 一.字符集 1.1.4个级别的字符集 1.2.字符集小结 1.3.字符集与比较规则 1.4.请求到响应过程中字符集的变化 二.SQL大小写规范 2.1.Windows和Linux平台区 ...

  6. 学习笔记之-MySql高级之sql优化

    一 Mysql简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. M/SQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据 ...

  7. MYSQL高级篇-----索引优化分析

    索引优化分析 下面是目录可跳转对应页面学习: 2. 索引优化分析 2.1 原因 SQL执行顺序 2.2 常见通用的join查询 2.3 索引 2.3.1 索引分类(重点) 2.3.2 索引结构 2.3 ...

  8. MySQL高级 —— 查询性能优化

    引言 承接<MySQL高级 -- 高性能索引>,本篇博客将围绕<高性能MySQL(第三版)>第六章内容进行总结和概括. 与索引的部分一样,SQL优化也是广大程序员深入MySQL ...

  9. MySQL高级及索引优化

    这里写目录标题 MySQL高级 MySQL基础 存储引擎 join(关联查询) join七种理论 索引 什么是索引 索引分类 索引数据结构 建立索引情况 索引分析 explain命令分析 索引失效 查 ...

最新文章

  1. 使用Newtonsoft.Json
  2. JQueryMiniUI按照时间进行查询
  3. Android studio | Android studio下APP目录工程结构详解
  4. awk 系列Part5:如何使用 awk 复合表达式
  5. 【Linux】一步一步学Linux——ac命令(102)
  6. 算术运算符_自增自减运算符
  7. 使用事件和消息队列实现分布式事务
  8. 如何用python抢课_名额不够,技术来凑,利用Python实现教务系统强制性抢课
  9. Python: 装饰器的小例子
  10. HTTP协议中GET和POST方法的区别
  11. IOS炫酷的引导界面
  12. 常用函数(PHP/Java/MySQL)
  13. ThinkPHP 3.1.2 控制器的模块和操作
  14. Web前端开发最佳实践(3):前端代码和资源的压缩与合并
  15. Server系列18:如何通过组策略赋予domain user受限网络管理权限?
  16. 从IBM的计划中分析出中国重新相当然的错误选择吗
  17. 【收藏】2018-2019届互联网大厂公司校招薪资汇总,基本年薪都在20万以上
  18. 海外服务器跟国内服务器对比分别有哪些优势呢
  19. C#/.NET 系统优化专题(搜索引擎Lucene的使用)
  20. 基于JSP的房地产销售网

热门文章

  1. Java提高学习之Object(3)
  2. webform 简单的服务器控件。
  3. Clustering by density peaks and distance
  4. hashlib\logging\configparser
  5. [svc]visio绘制模具
  6. cxGrid, 和AfterScroll
  7. 网上商城—管理员修改商品
  8. 纯CSS无hacks的跨游览器多列布局(转)
  9. 提升JSP应用程序的七大秘籍绝招
  10. python全栈开发 * 31知识点汇总 * 180716