c++:reverse函数包含在头文件中用reverse函数反转字符串再判断intjudge(stringa){stringb;b=a;reverse(a.begin(),a.end());if(a==b){return1;}else{return0;}}c:booljudge(char*a,intstart,intend){while(start
打卡信奥刷题(855)用C++信奥P10902[普及组/提高] [蓝桥杯 2024 省 C] 回文数组
Loge编程生活
C++c++算法开发语言青少年编程数据结构
P10902[蓝桥杯2024省C]回文数组题目描述小蓝在无聊时随机生成了一个长度为nnn的整数数组,数组中的第iii个数为aia_iai,他觉得随机生成的数组不太美观,想把它变成回文数组,也是就对于任意i∈[1,n]i\in[1,n]i∈[1,n]满足ai=an−i+1a_i=a_{n-i+1}ai=an−i+1。小蓝一次操作可以指定相邻的两个数,将它们一起加111或减111;也可以只指定一个数加
2020年第十一届C/C++ B组第二场蓝桥杯省赛真题 第七题:回文日期
小 轩
蓝桥杯c语言
第七题:回文日期#include#include#include#includeintmain(){inti;scanf("%d",&i);//输入年月日inty=i/10000,m=(i/100)%100,d,a,b,c,g,e,f;//年,月,日,其他intx=0;//记录是否已经找到普通回文日期intmonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,
【洛谷 P8716】[蓝桥杯 2020 省 AB2] 回文日期 题解(闰年计算+暴力枚举+字符串)
HEX9CF
AlgorithmProblems蓝桥杯职场和发展算法
[蓝桥杯2020省AB2]回文日期题目描述2020年春节期间,有一个特殊的日期引起了大家的注意:2020年2月2日。因为如果将这个日期按yyyymmdd的格式写成一个888位数是20200202,恰好是一个回文数。我们称这样的日期是回文日期。有人表示20200202是“千年一遇”的特殊日子。对此小明很不认同,因为不到2年之后就是下一个回文日期:20211202即2021年12月2日。也有人表示20
前端下载文件的几种方式使用Blob下载文件
m0_74824517
前端状态模式
前端下载文件的几种方式使用Blob下载文件在前端下载文件是个很通用的需求,一般后端会提供下载的方式有两种:1.直接返回文件的网络地址(一般用在静态文件上,比如图片以及各种音视频资源等)2.返回文件流(一般用在动态文件上,比如根据前端选择,导出不同的统计结果excel等)第一种方式比较简单,但是使用场景有限。第二种方式通用性更好我们先一下第一种的使用场景:-a链接下载文件我们可以通过download
【leetcode刷题版】回溯算法
学废了wuwu
算法leetcodepython
系列文章目录文章目录系列文章目录背景知识一、组合二、组合优化三、电话号码的字母组合四、组合总和五、组合总和Ⅱ六、分割回文串七、复原IP地址八、子集九、子集(需要去重)十、非递减子序列十一、全排列十一、全排列Ⅱ十二、重新安排行程(难)十三、N皇后十四、解数独背景知识回溯算法是一种通过试错来解决问题的算法。它会在解决问题的过程中剪枝,以避免无效搜索。在Python中实现回溯算法通常涉及以下几个步骤:定
力扣hot100——分割回文子串 + 回溯算法总结(算法代码模板)
01_
力扣hot100算法leetcode回溯算法
给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。解法思路:切割一个a之后,在ab中再去切割第二段.....classSolution{public:vector>res;//最终结果vectorpath;//当前结果vector>partition(strings){backtracking(s,0);returnres;}voidbacktracking
Gin从入门到精通 (二)多种格式数据输出
Clown95
Gingin
多种格式数据输出在Web应用开发中,根据不同的业务需求和客户端要求,服务器需要以多种格式返回数据。Gin框架提供了便捷的方法来实现不同格式数据的输出,下面将详细介绍几种常见格式数据的返回方式。1.返回文本数据c.String()方法能够返回简单的文本数据,常用于返回提示信息或者简单的响应内容。packagemainimport("github.com/gin-gonic/gin")funcmain
回溯算法总结
Javan Lu
算法题算法数据结构java
回溯法17.电话号码的字母组合22.括号生成39.组合总和40.组合总和II46.全排列47.全排列II77.组合78.子集90.子集II93.复原IP地址79.单词搜索131.分割回文串401.二进制手表当遇到组合问题的时候,要想到回溯法。17.电话号码的字母组合classSolution{Listres=newArrayListmap=newHashMapletterCombinations(
【Swift 算法实战】利用 KMP 算法高效求解最短回文串
网罗开发
Swiftvue.jsleetcode算法
网罗开发(小红书、快手、视频号同名) 大家好,我是展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、HarmonyOS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。图书作者:《ESP32-C3物联网工程开发实战》图书作者:《SwiftUI入门,进阶与实战》超级个体:CO
手机必备:强制解压RAR和ZIP密码技巧!
jiemidashi
经验分享
你是不是遇到过文件密码忘记的烦恼?不管是PDF、Word、Excel、PPT、RAR还是ZIP文件,现在有一个网站可以帮你解决这个问题。它叫文件密码.top,使用非常简单,手机和电脑都能用哦。操作步骤也很简单。首先,打开你的浏览器,然后输入:文件密码.top,进入这个网站。接下来,点击“立即开始”按钮。然后上传你需要处理的文件。网站会快速并安全地帮你删除或找回文件密码,不用下载任何软件。这个网站的
Leetcode热题100(5) - 最长回文子串
算法力扣
Questionhttps://leetcode.cn/problems/longest-palindromic-substring/description/给你一个字符串s,找到s中最长的回文子串。示例1:输入:s="babad"输出:"bab"解释:"aba"同样是符合题意的答案。示例2:输入:s="cbbd"输出:"bb"提示:1maxLength){maxLength=substring.
编程题-连接两字母单词得到的最长回文串(中等)
Kevin Kou
数据结构算法哈希表c++贪心算法
题目:给你一个字符串数组words。words中每个元素都是一个包含两个小写英文字母的单词。请你从words中选择一些元素并按任意顺序连接它们,并得到一个尽可能长的回文串。每个元素至多只能使用一次。请你返回你能得到的最长回文串的长度。如果没办法得到任何一个回文串,请你返回0。回文串指的是从前往后和从后往前读一样的字符串。解法一(贪心+哈希表):根据回文串的定义,回文串可以由奇数或者偶数个words
fseek、ftell、rewind、feof、perror
Carrot_ly
笔记
intfseek(FILE指针,偏移量,文件文件起始位置指针)功能:以当前位置为起点,根据偏移量来调整文件指针偏移量是字节数文件起始位置指针可以设置为:SEEK_CUR当前位置、SEEK_END末尾位置,SEEK_SET起始位置ftell(文件指针)功能:返回文件指针相对于起始位置的偏移量rewind(文件指针)功能:让文件指针回到文件的起始feof(文件指针)功能,当文件结束时判断文件是读取失败
每日一题——反转字符串、判断回文字符串与合并区间
tt555555555555
算法题面经C语言算法数据结构c语言leetcode
反转字符串、判断回文字符串与合并区间1.反转字符串题目描述示例示例1示例2解题思路双指针法代码实现复杂度分析2.判断回文字符串题目描述示例示例1示例2示例3解题思路双指针法代码实现复杂度分析3.合并区间题目描述示例示例1示例2qsort()`compare`函数排序规则解题思路排序+合并代码实现复杂度分析总结1.反转字符串题目描述写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符
力扣练习——38 分割回文串
qq_43403657
回文串分割方案递归动态规划字符串处理
38分割回文串1.问题描述给定一个字符串s,将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案的数量。示例:输入:“aab”输出:2说明:可能的分割方案有:[[“aa”,“b”],[“a”,“a”,“b”]]2.输入说明输入一个字符串s,长度小于等于200.3.输出说明输出一个整数4.范例输入aab输出25.代码#include#include#include#includeusi
代码随想录训练营第二十三天| 39. 组合总和 40.组合总和II 131.分割回文串
chengooooooo
算法
39.组合总和题目链接/文章讲解:代码随想录视频讲解:带你学透回溯算法-组合总和(对应「leetcode」力扣题目:39.组合总和)|回溯法精讲!_哔哩哔哩_bilibili//组合问题要考虑是不是在一个集合里操作//最常见的就是递归回溯法//再考虑考虑剪枝classSolution{publicList>combinationSum(int[]candidates,inttarget){List
力扣131题:分割回文串的 Java 实现
杰哥的编程世界
java算法leetcodejava算法
引言力扣(LeetCode)是一个在线编程平台,提供了大量的编程题目供开发者练习。第131题“分割回文串”是一个有趣的字符串处理问题,要求将一个字符串分割成尽可能多的回文子串。本文将介绍如何使用Java解决这个问题。题目描述给定一个字符串s,请将s分割成尽可能多的回文子串。返回它所有可能的分割数量。示例:输入:"abc"输出:4解释:可以分割成"a","b","c"或"ab","c"或"a","b
链表经典应用(一)
一只冯冯
手搓数据结构课程代码算法c++数据结构c语言后端
链表相关算法结构体交叉合并(带头结点)求链表的中间结点(快慢指针法)逆置单链表(带头结点)判断回文链表(带头结点):取中间结点+逆置+比对判断环形链表(快慢指针法)判断相交链表,返回相交结点结构体typedefstructLNode{intdata;structLNode*next;}LNode,*LinkList;交叉合并(带头结点)//交叉合并(带头结点)voidMerge(LinkList&
Day24 第七章 回溯算法part03
TAK_AGI
算法
一.学习文章及资料39.组合总和40.组合总和II131.分割回文串二.学习内容1.组合总和题目特点:1.无重复元素的整数数组candidates2.同一个元素可以重复被选取因为本题没有组合数量要求,仅仅是总和的限制,所以递归没有层数的限制,只要选取的元素总和超过target,就返回!而在77.组合(opensnewwindow)和216.组合总和III(opensnewwindow)中都可以知道
蓝桥杯 Java B 组之双指针技巧(快慢指针、滑动窗口)
计算机小白一个
蓝桥杯java数据结构
Day5:双指针技巧(快慢指针、滑动窗口)双指针技巧是处理许多算法问题时常用的技巧,尤其在数组或字符串中。双指针可以帮助我们在遍历过程中减少不必要的运算,从而优化时间复杂度。一、双指针概述双指针技巧主要分为两种常见方式:快慢指针(Floyd'sTortoiseandHare):适用于一些涉及到链表、循环、排序等问题。常见于快慢指针查找问题,如链表环问题、判断回文字符串等。滑动窗口:适用于数组或字符
python File方法
泥鳅炖土豆
pythonjava数据库
在Python中,文件对象提供了许多方法来操作文件内容。通过这些方法,可以更高效地读取、写入以及处理文件数据。以下是Python中常用的文件对象方法。1.open()open()函数用于打开文件并返回一个文件对象。文件对象提供了后续的读取、写入和关闭操作。file=open('example.txt','r')#打开文件,返回文件对象2.文件对象的常用方法2.1read(size=-1)read(
LeetCode9. 回文数
坚果-果
LeetCodeC++LeetCode
LeetCode9.回文数题目说明题目说明代码题目说明判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例1:输入:121输出:true示例2:输入:-121输出:false解释:从左向右读,为-121。从右向左读,为121-。因此它不是一个回文数。示例3:输入:10输出:false解释:从右向左读,为01。因此它不是一个回文数。进阶:你能不将整数转为字符串
leetcode9. 回文数(C++)
falldeep
leetcode
题目给你一个整数x,如果x是一个回文整数,返回true;否则,返回false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121是回文,而123不是。示例1:输入:x=121输出:true示例2:输入:x=-121输出:false解释:从左向右读,为-121。从右向左读,为121-。因此它不是一个回文数。示例3:输入:x=10输出:false解释:从右向左读,为01。因此它
leetcode 9. 回文数
lyx142606
#leetcode.1--100算法数据结构
classSolution{public:boolisPalindrome(intx){if(x2147483647){returnfalse;}else{y=y*10;y+=x%10;x/=10;}}if(z==y){returntrue;}else{returnfalse;}}}};
力扣hot100——反转,环形链表 + 快慢指针总结
01_
力扣hot100leetcode链表算法快慢指针
1.反转链表解法思路:将链表划分为俩部分;将后半部分反转,然后与前部分对比,如果相同则为回文,否则不是/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(nullptr){}*Li
Day02 Python之文件操作(open、read、write、close)
小菜鸟也要努力吖
Pythonpython
一、file对象的属性1、file.name返回文件的名称2、file.mode返回文件的访问模式3、file.closed查看文件是否关闭,是TRUE,否FALSE二、访问模式r:只读模式(默认);文件必须存在w:只写模式;不存在则创建,存在则重写a:追加模式;不存在则创建,存在则只追加内容+:表示可以同时读写某个文件r+:可读写文件,文件不存在抛出异常w+:先写再读三、打开文件1、创建文件,内
代码随想录Day57
二手木乃伊
代码随想录动态规划java
Day57今日任务回文子串516.最长回文子序列动态规划总结篇代码实现回文子串classSolution{publicintcountSubstrings(Strings){//dp[i][j]表示[i,j]是否是回文子串intresult=0;boolean[][]dp=newboolean[s.length()][s.length()];char[]chars=s.toCharArray();
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层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数