- 蓝桥杯竞赛向(C/C++语言)之博主掌握不太好的算法篇(DFS)
CAU界编程小白
蓝桥杯篇深度优先算法蓝桥杯
大纲1.DFS回溯剪枝(刚好博主也在剪枝)2.字符串相关算法KMPmanacher字符串哈希字典树01trie树(这么多感觉要趋势了)下次一定(也有可能去更新14届蓝桥杯A组真题)//会带一点AC自动机但是不会讲因为我不会蓝桥几乎不会考(看水的字数博主沉淀了几天(回来更新了,估计可能只能讲个搜索了,字符串东西很多,下次讲,主要讲搜索的原因是什么捏,(博主刷了一会题,发现搜索做的真的很不好…需要多刷
- HDU 4628 Pieces (状压DP+记忆化搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4628#includeusingnamespacestd;#definedebugputs("YES");#definerep(x,y,z)for(int(x)=(y);(x)>=1,x=x*x%mod)if(y&1)t=t*x%mod;returnt;}llgcd(llx,lly){returny?g
- HDU-最大共倍数(2028)
—Luz—
C语言HDUHDU-最大公倍数
ProblemDescription求n个数的最小公倍数。Input输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。Output为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。SampleInput2463257SampleOutput1270//代码有所参考#define_CRT_SECURE_NO_WARNINGS
- 20200526读书笔记
龙套哥萨克海龙
阅读1小时,总计1247小时,第1192日阅读《长安与河北之间》第7章通过对魏博的个案研究,探讨在安史乱后一直以兵雄天下著称的河朔三镇为何未能在唐末五代的历史巨变中继续扮演主要角色。魏博是安史乱后唐廷为招抚安史降将所置的河朔三镇之一。之后经代宗、德宗、宪宗等朝,虽屡经叛顺,不过自穆宗以后,魏博与唐廷之间基本形成了以共同承认“河朔故事”为基础的稳定关系。这一中唐以来形成的奉唐天子为正朔,各个藩镇依据
- C++数据结构————二叉树
Гений.大天才
C++语言入门以及基础算法c++数据结构开发语言
【前言】在数据结构与算法的世界里,二叉树(BinaryTree)始终占据着核心地位。它既是众多高级树形结构(B+树、红黑树、线段树、字典树……)的“基因”,又是面试、竞赛与工程实战中绕不开的考点。本文将用大约2万字的篇幅,从“零”开始,把C++二叉树的所有常见形态、常见算法、常见坑点与常见优化一次性讲透。全文配套可编译运行的C++17/20代码2000余行,所有示例均在GCC13/Clang17/
- 字典树前缀匹配
hi error.cn
经验分享
字典树前缀匹配什么是字典树(Trie)字典树(Trie),又称单词查找树或键树,是一种有序树结构的数据结构,常用于字符串关联查找的应用场景中。其主要特点是每个节点代表一个字符,并且从根到子节点的路径上的字符连起来构成所有在字典中的前缀。由于这种特性,字典树特别适合进行前缀匹配和自动补全等操作。字典树的基本结构字典树由节点(Node)和边(Edge)组成。每个节点表示一个字符或为空终结符,而边则代表
- 2010暑期集训第一专题(数据结构)总结
dooder_daodao
求~道数据结构2010任务
一晃五六天就这么过去了~这一专题中,我们接触到了数据结构中的栈和队列、二叉树、哈夫曼树和字典树,以及数组中的字符匹配KMP和树的一种应用并查集,内容挺多的,看看这一大串的列举就知道了。总体上感觉:内容太多了,所以没有达到预期的效果,不过,从另一方面说,虽然学习本来就是一个循序渐进的过程,但是如果没有任务要求,这个渐进的速度也不会让人满意的。所以,内容多的另一方面是,这一专题至少让我们了解了很多的东
- HDU杭电OJ基础100题2010-2019(C语言版)
雁于飞
算法专栏c语言开发语言
文章目录@[TOC](文章目录)[原题出处](https://acm.hdu.edu.cn/listproblem.php?vol=11)前言p2010.水仙花数问题描述解题思路代码核心思想:p2011多项式求和问题描述代码p2003求绝对值问题描述解题思路代码扩展p2004成绩转换问题描述解题思路代码重点p2005第几天问题描述解题思路代码扩展p2006求奇数的乘积p2007平方和与立方和问题描
- 前缀和与后缀和(HDU6186)
MatrixYg
HDU水题
题目链接。题目的大意是:给一个数组,和一个数组的下标·,然后在数组中去掉这个下标对应的元素,把剩下的元素全部做&/|/^这三种位运算,输出位运算之后的结果。数据范围1e5.当然暴力是不可行的。首先需要知道的是:一个数&自己不变,|自己也是不变,^自己是0。这样我们对于每一种运算维护两个数组,一个前缀数组,一个后缀数组。这样两个结合起来可以达到去除任意一个中间元素的效果。//我们只证明一种情况,其他
- leetcode面试经典150题
Ashiu
算法pythonpython
leetcode面试经典150题数组/字符串双指针滑动窗口矩阵哈希表区间栈链表二叉树二叉树层次遍历二叉搜索树图图的广度优先搜索字典树回溯分治Kadane算法二分查找堆位运算数学一维动态规划多维动态规划数组/字符串88.合并两个有序数组(简单)27.移除元素(简单)26.删除有序数组中的重复项(简单)80.删除有序数组中的重复项II(简单)169.多数元素(简单)189.轮转数组(中等)121.买卖
- 【LeetCode】1247. 交换字符使得字符串相同
Schanappi
LeetCode刷题leetcode算法数据结构
1247.交换字符使得字符串相同题目描述有两个长度相同的字符串s1和s2,且它们其中只含有字符“x”和“y”,你需要通过「交换字符」的方式使这两个字符串相同。每次「交换字符」的时候,你都可以在两个字符串中各选一个字符进行交换。交换只能发生在两个不同的字符串之间,绝对不能发生在同一个字符串内部。也就是说,我们可以交换s1[i]和s2[j],但不能交换s1[i]和s1[j]。最后,请你返回使s1和s2
- C++基础练习-二维数组
s15335
C++练习题c++开发语言
题目:https://acm.hdu.edu.cn/showproblem.php?pid=2022题解:#includeusingnamespacestd;intz[10000][10000];intmain(){intm,n;while(cin>>m>>n){intx,max=-1,l,c;//往数组里添加数据for(inti=0;i>z[i][j];}}//遍历数组并找出最大值for(int
- 数据结构-顺序表-数值统计
题目:https://acm.hdu.edu.cn/showproblem.php?pid=2008解答:#includeusingnamespacestd;#defineSLDataTypedoublestructSequlist{SLDataType*array;intsize;intcapacity;};//********************顺序表初始化***********/void
- 字典树的数据结构
算法数据结构
字典树的数据结构字典树,即Trie树,又称单词查找树或键树,是一种树形结构。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。字典树的基本性质结点本身不存完整单词。从根结点到某一结点,路径上经过的字符连接起来,为该结点对应的字符串。每个结点的所有子结点路径代表的字符都不相同。字典树的核心
- 问题 D: 异或最大值-01字典树
手撕鸡翅
算法c++
时间限制:1Sec内存限制:128MB提交:116解决:52题目描述给定一些数,求这些数中两个数的异或值最大的那个值输入多组数据。第一行为数字个数n,1#includeusingnamespacestd;#defineN100005intnode[N][2];//记录每个节点的左右孩子intvalue[N];//记录每个节点保存的值,当然node和value也可以放在一个结构体里intsum;//
- tzoj6526: 最长异或和路径(字典树)
こばやし927
算法图论深度优先
最长异或和路径描述输入输出样例输入思路总结描述给定一颗n#definelllonglongusingnamespacestd;intconstN=111111,M=31*N;typedefpairPII;vectorvec[N];intdist[N];intvis[N];intson[M][2],idx=0;intn;voidadd(intx){intp=0;for(inti
- 图论500题 慢慢写
daydreamer23333
题目来源https://blog.csdn.net/ffq5050139/article/details/7832991这篇博客用来记录自己刷的图论题先占个坑所有题目都来自上面的链接会慢慢更新基础一点的题会记录一下表示ac了好题会单独写一篇博客知识点题目名称,oj和题号并查集1.HowManyTablesHDU-1213(简单模板题)并查集2.小希的迷宫HDU-1272(毒瘤输入wa了一年最后发现
- HDU-2973-YAPTCHA(威尔逊定理)
Herod_
算法练习数论数论
YAPTCHAProblemDescriptionThemathdepartmenthasbeenhavingproblemslately.Duetoimmenseamountofunsolicitedautomatedprogramswhichwerecrawlingacrosstheirpages,theydecidedtoputYet-Another-Public-Turing-Test-t
- HDU-2973 YAPTCHA
STY_fish_2012
数学素数筛
题目传送门先把题目中的公式弄过来。Sn=∑k=1n⌊(3k+6)!+13k+7−⌊(3k+6)!3k+7⌋⌋S_n=\sum\limits_{k=1}^{n}\lfloor\frac{(3k+6)!+1}{3k+7}-\lfloor\frac{(3k+6)!}{3k+7}\rfloor\rfloorSn=k=1∑n⌊3k+7(3k+6)!+1−⌊3k+7(3k+6)!⌋⌋首先,得先了解威尔逊定理威
- 计算机类专业学生重要竞赛刷题网站
花开盛夏^.^
大学生竞赛大学生计算机类专业专业竞赛
团队队员常用:Codeforceshttp://codeforces.com/problemset牛客网https://www.nowcoder.com/ta/acm-training/刷题链接:http://poj.org/pojhttp://www.spoj.com/http://acm.hdu.edu.cn/hduhttps://cn.vjudge.net/vj(包含大部分网站的题库)htt
- hdu2108判断多边形是否为凸多边形
自爄創煇熿
计算几何
矢量的叉积,来判断拐向。代码如下:#include#include#includeusingnamespacestd;structcoordinate{doublex;doubley;};intcross(coordinatep1,coordinatep2,coordinatep3){if((p2.x-p1.x)*(p3.y-p1.y)-(p3.x-p1.x)*(p2.y-p1.y)>0)retu
- 最长公共子串 后缀数组 算法 php,HDU 3518 Boring counting(后缀数组啊 求字符串中不重叠的重复出现最少两次的子串的个数)...
盖亚能量炮
最长公共子串后缀数组算法php
HDU3518Boringcounting(后缀数组啊求字符串中不重叠的重复出现至少两次的子串的个数)题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3518ProblemDescription035nowfacedatoughproblem,hisenglishteachergiveshimastring,whichconsistswithnlowe
- Boring counting HDU - 4358(树上出现k次的数字个数)
starlet_kiss
树状数组
InthisproblemweconsiderarootedtreewithNvertices.Theverticesarenumberedfrom1toN,andvertex1representstheroot.Thereareintegerweightsoneachvectice.Yourtaskistoansweralistofqueries,foreachquery,pleasetellu
- HDU 3518 Boring counting(后缀数组)
Nightmare丶
SASA
题意:求出不重叠切出现次数超过两次的子串个数题解:后缀数组分组后,判断每组出现的sa最大值和最小值之差是否是大于k就好了,k通过枚举即可AC代码:#includeusingnamespacestd;constintINF=0x3f3f3f3f;constintMAXN=2000+50;chars[MAXN];intrk[MAXN],h[MAXN],y[MAXN],sa[MAXN],c[MAXN];
- HDU5927 Auxiliary Set(dfs)
KeyboardPianist
HDUdfshdudfs
AuxiliarySetTimeLimit:9000/4500MS(Java/Others)MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):937AcceptedSubmission(s):289ProblemDescriptionGivenarootedtreewithnvertices,someoftheverticesareim
- hdu5927Auxiliary Set
Fsss_7
onlinejudgeHdu
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5927题意:给定一棵以1为根的n个节点的树,多个询问,每次询问给出一个集合,集合内的点表示为不重要的点(不在集合内的点就是重要的点),求给定这个集合后有多少点能进入另一个集合,点x进入另一个集合的要求:1:重要的点。2:有两个重要的点的最近公共祖先为x。分析:其实对于每一个询问我们只要判断哪些不重要的点是能
- Auxiliary Set HDU - 5927(思维题)
coldfresh
思考
Givenarootedtreewithnvertices,someoftheverticesareimportant.Anauxiliarysetisasetcontainingverticessatisfyingatleastoneofthetwoconditions:∙Itisanimportantvertex∙Itistheleastcommonancestoroftwodifferent
- Oracle归档日志清理
の正在缓存99%
#Oracleoracle数据库
Oracle归档日志清理1、检查Oracle进程是哪个用户运行ps-ef|greppmon2、切换用户su-xxx3、确认是Oracle归档目录满了df-Thdu-shxxx4、rman清理归档日志rmantarget/crosscheckarchivelogall; --验证归档日志的状态deletenopromptarchiveloguntiltime'syste
- HDU 1009 - FatMouse‘ Trade && HDU 1052 Tian Ji -- The Horse Racing
tingshuo2917
杭电OJ笔记c++算法
性价比问题问题1:HDU1009-FatMouse’Trade需要对结构体的灵活掌握,更加方便。结构体排序,sort函数的进阶用法结构体函数的用法性价比问题的选择和模拟#include#include#includeusingnamespacestd;#defineeps1e6structFatMouse_Trade{intbean;intprice;doubleratio;//todo创建一个用
- 蓝桥杯python组备赛(记录个人模板)
潇湘夜雨697
算法专项蓝桥杯python
文章目录栈队列堆递归装饰器并查集树状数组线段树最近公共祖先LCAST表字典树KMPmanacher跳表(代替C++STL的set)dijkstra总结栈用list代替队列用deque双端队列替代堆用heapq递归装饰器众所周知,python的递归深度只有1000,根本满足不了大部分1e5以上的数据,当然你可以使用sys.setrecursionlimit(1000000)扩到1e6,但是这会增加空
- SQL的各种连接查询
xieke90
UNION ALLUNION外连接内连接JOIN
一、内连接
概念:内连接就是使用比较运算符根据每个表共有的列的值匹配两个表中的行。
内连接(join 或者inner join )
SQL语法:
select * fron
- java编程思想--复用类
百合不是茶
java继承代理组合final类
复用类看着标题都不知道是什么,再加上java编程思想翻译的比价难懂,所以知道现在才看这本软件界的奇书
一:组合语法:就是将对象的引用放到新类中即可
代码:
package com.wj.reuse;
/**
*
* @author Administrator 组
- [开源与生态系统]国产CPU的生态系统
comsci
cpu
计算机要从娃娃抓起...而孩子最喜欢玩游戏....
要让国产CPU在国内市场形成自己的生态系统和产业链,国家和企业就不能够忘记游戏这个非常关键的环节....
投入一些资金和资源,人力和政策,让游
- JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释
商人shang
jvm内存
jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。
HotSpot虚拟机GC算法采用分代收
- 页面上调用 QQ
oloz
qq
<A href="tencent://message/?uin=707321921&Site=有事Q我&Menu=yes">
<img style="border:0px;" src=http://wpa.qq.com/pa?p=1:707321921:1></a>
- 一些问题
文强chu
问题
1.eclipse 导出 doc 出现“The Javadoc command does not exist.” javadoc command 选择 jdk/bin/javadoc.exe 2.tomcate 配置 web 项目 .....
SQL:3.mysql * 必须得放前面 否则 select&nbs
- 生活没有安全感
小桔子
生活孤独安全感
圈子好小,身边朋友没几个,交心的更是少之又少。在深圳,除了男朋友,没几个亲密的人。不知不觉男朋友成了唯一的依靠,毫不夸张的说,业余生活的全部。现在感情好,也很幸福的。但是说不准难免人心会变嘛,不发生什么大家都乐融融,发生什么很难处理。我想说如果不幸被分手(无论原因如何),生活难免变化很大,在深圳,我没交心的朋友。明
- php 基础语法
aichenglong
php 基本语法
1 .1 php变量必须以$开头
<?php
$a=” b”;
echo
?>
1 .2 php基本数据库类型 Integer float/double Boolean string
1 .3 复合数据类型 数组array和对象 object
1 .4 特殊数据类型 null 资源类型(resource) $co
- mybatis tools 配置详解
AILIKES
mybatis
MyBatis Generator中文文档
MyBatis Generator中文文档地址:
http://generator.sturgeon.mopaas.com/
该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。
本文使用Markdown进行编辑,但是博客显示效
- 继承与多态的探讨
百合不是茶
JAVA面向对象 继承 对象
继承 extends 多态
继承是面向对象最经常使用的特征之一:继承语法是通过继承发、基类的域和方法 //继承就是从现有的类中生成一个新的类,这个新类拥有现有类的所有extends是使用继承的关键字:
在A类中定义属性和方法;
class A{
//定义属性
int age;
//定义方法
public void go
- JS的undefined与null的实例
bijian1013
JavaScriptJavaScript
<form name="theform" id="theform">
</form>
<script language="javascript">
var a
alert(typeof(b)); //这里提示undefined
if(theform.datas
- TDD实践(一)
bijian1013
java敏捷TDD
一.TDD概述
TDD:测试驱动开发,它的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。
- [Maven学习笔记十]Maven Profile与资源文件过滤器
bit1129
maven
什么是Maven Profile
Maven Profile的含义是针对编译打包环境和编译打包目的配置定制,可以在不同的环境上选择相应的配置,例如DB信息,可以根据是为开发环境编译打包,还是为生产环境编译打包,动态的选择正确的DB配置信息
Profile的激活机制
1.Profile可以手工激活,比如在Intellij Idea的Maven Project视图中可以选择一个P
- 【Hive八】Hive用户自定义生成表函数(UDTF)
bit1129
hive
1. 什么是UDTF
UDTF,是User Defined Table-Generating Functions,一眼看上去,貌似是用户自定义生成表函数,这个生成表不应该理解为生成了一个HQL Table, 貌似更应该理解为生成了类似关系表的二维行数据集
2. 如何实现UDTF
继承org.apache.hadoop.hive.ql.udf.generic
- tfs restful api 加auth 2.0认计
ronin47
目前思考如何给tfs的ngx-tfs api增加安全性。有如下两点:
一是基于客户端的ip设置。这个比较容易实现。
二是基于OAuth2.0认证,这个需要lua,实现起来相对于一来说,有些难度。
现在重点介绍第二种方法实现思路。
前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGe
- jdk环境变量配置
byalias
javajdk
进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置:
1、下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是:jdk-7u79-windows-x64.exe
2、安装jdk-7u79-windows-x64.exe
3、配置环境变量:右击"计算机"-->&quo
- 《代码大全》表驱动法-Table Driven Approach-2
bylijinnan
java
package com.ljn.base;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.uti
- SQL 数值四舍五入 小数点后保留2位
chicony
四舍五入
1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位。
2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后位数。
例如:
select cast(round(12.5,2) as numeric(5,2))  
- c++运算符重载
CrazyMizzz
C++
一、加+,减-,乘*,除/ 的运算符重载
Rational operator*(const Rational &x) const{
return Rational(x.a * this->a);
}
在这里只写乘法的,加减除的写法类似
二、<<输出,>>输入的运算符重载
&nb
- hive DDL语法汇总
daizj
hive修改列DDL修改表
hive DDL语法汇总
1、对表重命名
hive> ALTER TABLE table_name RENAME TO new_table_name;
2、修改表备注
hive> ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comm
- jbox使用说明
dcj3sjt126com
Web
参考网址:http://www.kudystudio.com/jbox/jbox-demo.html jBox v2.3 beta [
点击下载]
技术交流QQGroup:172543951 100521167
[2011-11-11] jBox v2.3 正式版
- [调整&修复] IE6下有iframe或页面有active、applet控件
- UISegmentedControl 开发笔记
dcj3sjt126com
// typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {
// UISegmentedControlStylePlain, // large plain
&
- Slick生成表映射文件
ekian
scala
Scala添加SLICK进行数据库操作,需在sbt文件上添加slick-codegen包
"com.typesafe.slick" %% "slick-codegen" % slickVersion
因为我是连接SQL Server数据库,还需添加slick-extensions,jtds包
"com.typesa
- ES-TEST
gengzg
test
package com.MarkNum;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation
- 为何外键不再推荐使用
hugh.wang
mysqlDB
表的关联,是一种逻辑关系,并不需要进行物理上的“硬关联”,而且你所期望的关联,其实只是其数据上存在一定的联系而已,而这种联系实际上是在设计之初就定义好的固有逻辑。
在业务代码中实现的时候,只要按照设计之初的这种固有关联逻辑来处理数据即可,并不需要在数据库层面进行“硬关联”,因为在数据库层面通过使用外键的方式进行“硬关联”,会带来很多额外的资源消耗来进行一致性和完整性校验,即使很多时候我们并不
- 领域驱动设计
julyflame
VODAO设计模式DTOpo
概念:
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对
- 单例设计模式
hm4123660
javaSingleton单例设计模式懒汉式饿汉式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
&nb
- logback
zhb8015
loglogback
一、logback的介绍
Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-class
- 整合Kafka到Spark Streaming——代码示例和挑战
Stark_Summer
sparkstormzookeeperPARALLELISMprocessing
作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管。本文,Michael详细的演示了如何将Kafka整合到Spark Streaming中。 期间, Michael还提到了将Kafka整合到 Spark Streaming中的一些现状,非常值得阅读,虽然有一些信息在Spark 1.2版
- spring-master-slave-commondao
王新春
DAOspringdataSourceslavemaster
互联网的web项目,都有个特点:请求的并发量高,其中请求最耗时的db操作,又是系统优化的重中之重。
为此,往往搭建 db的 一主多从库的 数据库架构。作为web的DAO层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数