- Druid配置大全
后端
配置配置缺省值说明name-配置这个属性的意义在于,如果存在多个数据源,监控时可以通过名字来区分开来。如果没有配置,将会生成一个名字,格式是:"DataSource-"+System.identityHashCode(this).另外配置此属性至少在1.0.5版本中是不起作用的,强行设置name会出错。url-连接数据库的urlusername-连接数据库的用户名password-连接数据库的密码
- java springboot连接sqlserver使用
大得369
javaspringbootsqlserver
pom.xml增加sqlserver驱动com.microsoft.sqlservermssql-jdbc9.4.0.jre8application.yml配置文件server:port:9001#spring:#application:#name:dade01#datasource:#driver-class-name:com.mysql.jdbc.Driver#url:jdbc:mysql:/
- springboot动态多数据源配置多线程切换问题
starsAreCloser
spring拓展springboot后端java
springboot动态多数据源配置多线程切换问题背景项目中使用了spring的AbstractRoutingDataSource来实现多数据切换动态功能,大体实现思路和链接中文章所述差不多的:link,一开始运行正常,后来对一个查询比较慢的接口做了优化,使用了多个线程并发处理,然后就出问题了,现象是请求每隔几次就报错表或视图不存在,也就是切换数据源失败了。排查思路先总结下我之前遇到过的各种切换失
- Spring Boot 配置JPA数据库主从读写分离失败及解决办法
xiaoyao888
springbootjava多数据源spring读写分离springjpa主从读写分离JPA
因为是老项目,SpringBoot是1.4,使用AbstractRoutingDataSource来做主从切换,配置切面类在进入事务时切换成主库,但实际运行起来却失败,写操作路由到了从库查了很多文章,试了很多方法都无效,包括修改注解@Transactional的propagation属性,清空主从标记等等打断点跟踪代码发现,进入事务时并没有触发获取数据库连接,而是事务里第一个查询触发了数据库连接的
- druid mysql读写分离_Spring Boot + Mybatis + Druid 实现MySQL一主多从读写分离
咖啡碎冰冰
druidmysql读写分离
SpringBoot读写分离实现原理实现方式主要是通过扩展SpringAbstractRoutingDataSource这个类充当DataSource路由中介,在运行当中根据自定义KEY值动态切换正真的DataSource。具体实现创建测试库、表:createdatabase`mytest_db`;CREATETABLE`t_user`(`id`int(11)NOTNULLAUTO_INCREME
- Spring Boot + MyBatis + MySQL 实现读写分离
2301_79099287
程序员springbootmybatismysql
spring-boot-starter-testtestorg.springframework.bootspring-boot-maven-plugin3.2.数据源配置application.ymlspring:datasource:master:jdbc-url:jdbc:mysql://192.168.102.31:3306/testusername:rootpassword:123456d
- Spring Boot 配置 Mybatis 读写分离
xiaoyao888
springbootmybatisjavamybatis读写分离spring读写分离
JPA的读写分离配置不能应用在Mybatis上,所以Mybatis要单独处理为了不影响原有代码,使用了增加拦截器的方式,在拦截器里根据SQL的CRUD来路由到不同的数据源需要单独增加Mybatis的配置@ConfigurationpublicclassMyBatisConfig{ @Bean publicSqlSessionFactorysqlSessionFactory(DataSource
- Spring Boot 中的事务管理:默认配置、失效场景及集中配置
面朝大海,春不暖,花不开
后台开发基础管理springbootjava数据库事务
SpringBoot提供了强大的事务管理功能,基于Spring的@Transactional注解。本文将详细介绍事务的默认配置、事务失效的常见场景、以及事务的几种集中配置方式,并给出相应的代码片段。一、事务的默认配置在SpringBoot中,默认情况下,事务管理器会自动配置一个DataSourceTransactionManager,前提是项目中已经配置了一个数据源(DataSource)。以下是
- 探索数据云的无缝桥梁:Apache Spark 与 Snowflake 的完美结合
窦育培
探索数据云的无缝桥梁:ApacheSpark与Snowflake的完美结合spark-snowflakeSnowflakeDataSourceforApacheSpark.项目地址:https://gitcode.com/gh_mirrors/sp/spark-snowflake项目介绍在大数据处理的浩瀚宇宙中,Snowflake以其独特的云数据仓库能力闪耀,而ApacheSpark则是数据分析和
- MediaPlayer 源码分析
踏雪羽翼
musicandroid音频java
MediaPlayer有create(),prepare(),prepareAsync(),setDataSource(),start(),pause(),release()等方法,MediaPlayer代码路径是在frameworks/base/media/java/android/media/MediaPlayer.java,MediaPlayer继承PlayerBase,并且实现了Subti
- SpringBoot的application.properties 配置时,在高并发、高数据量上有哪些注意事项
陈老师还在写代码
SpringBoot100问springboot后端java
在高并发、高数据量的场景下,SpringBoot的application.properties配置需要特别注意以下几个方面:1.数据库连接池配置连接池大小:根据并发量和数据库性能调整连接池大小。常用的连接池如HikariCP、TomcatJDBC等。spring.datasource.hikari.maximum-pool-size=20spring.datasource.hikari.minim
- 新阁上位机---comboBox控件的数据绑定方法
常哥说编程
上位机C#/.NetC#linqc#wpf
前言大家好,我是新阁教育韩工,这几天有小伙伴问我关于上位机开发中,comboBox控件如何绑定数据的问题,我们今天简单来看一下C#中几种不同的绑定方法。绑定List集合首先创建数据绑定方法,在方法中创建一个string类型的List集合。并将集合赋值给控件的DataSource(数据源)完成数据绑定。//数据绑定方法1,绑定list集合private void DataBinding1(){
- mybatis-plus 结合p6spy实现SQL分析打印,及其SQL美化插件
夏至xz
Mybatis-Plussql数据库mysqlmybatis-plusspring
mybatis-plus执行SQL分析打印,及其SQL美化插件该功能依赖p6spy组件,完美的输出打印SQL及执行时长3.1.0以上版本p6spy依赖引入p6spyp6spy最新版本application.yml配置:更改数据库驱动spring:datasource:driver-class-name:com.p6spy.engine.spy.P6SpyDriverurl:jdbc:p6spy:h
- 【vxe-table】多选筛选项对列表的列进行动态的显示与隐藏
春晓_春眠花落
chromejavascript前端
需求:列表的组成部分由:一些固定的列,如:姓名,工号,以及需要动态显示与隐藏的列,如:出勤、旷工、事假、病假等假勤类型1、通过多选框多选,展示选中的列,未选中的不展示2、当多选框全部清空的时候,展示原来的所有列mutiChange(val,'attendanceType')"style="width:140px">datanewColumns:[],columns:[],dataSource:[]
- forkJoin集成spring boot
贝克尔街的风
javaspringbootintellij-ideaforkjoin
forkJoin集成springboot处理大量数据添加importcom.wugui.datax.admin.entity.JobModel;importcom.wugui.datax.admin.entity.JobModelLog;importcom.wugui.datax.admin.service.DatasourceQueryService;importcom.wugui.datax.
- Spring Boot JPA MySQL 多租户系统 Part4 - 版本管理
PeterGamp
SpringBoot学习springbootmysqlkotlingradle
目录前言多线程异步任务定时任务代码调整自动建库自动建表生成Changelog生成Tables版本管理总结前言在上篇文章中,我们使用MasterDataSource管理租户信息,使用TenantDataSource连接数据库处理具体业务逻辑。完成了前端租户管理的基础,无需手动配置租户信息,和重启应用程序。上篇:SpringBootJPAMySQL多租户系统Part3-管理租户本篇是对之前系列文章的调
- springBoot+MyBatis分包方式实现多数据源
赤橙红的黄
数据库MySQLmybatisspringbootjava
将mapper以及mapper的xml形式文件,置于特定的包下,根据包扫描路径来实现数据来源的区分:环境配置:spring.datasource.db1.driverClassName=com.mysql.cj.jdbc.Driverspring.datasource.db1.jdbcUrl=jdbc:mysql://xxxxxx/mybatis?useUnicode=true&character
- Terraform 系列-使用Dynamic Blocks对Blocks进行迭代
系列文章Terraform系列文章Grafana系列文章概述Terraform系列文章介绍了使用GrafanaTerraformProvider,基于Terraform的IaC方法论,来批量自动化创建Grafana的各类资源,包括Dashboard/Datasource等.现在有这么一个现实需求:出于权限控制的需求,需要启用FolderPermissions,限制指定的某几个team可以有该Fol
- 项目从 MySQL 切换 PostgreSQL
7ee
数据库mysqlpostgresql数据库
前言原项目框架SpringBoot+MybatisPlus+Mysql切换流程1.1、项目引入postgresql驱动包由于我们要连接新的数据库,理所当然的要引入该数据库的驱动包,这与mysql驱动包类似 org.postgresql postgresql1.2、修改jdbc连接信息之前用的是mysql协议,现在改成postgresql连接协议spring: datasource:
- SpringBoot 整合 Mybatis:提升你的Java项目开发效率
苏-言
javaspringbootmybatis
第一章:数据自动管理引入JDBC的依赖和SpringBoot的应用场景:org.springframework.bootspring-boot-starter-jdbcorg.apache.commonscommons-dbcp2mysqlmysql-connector-javaruntime创建application.yaml进行配置:spring:datasource:username:roo
- Mycat2使用教程
晨晨OvO
工具使用教程mycat2
运行环境框架包下载地址:mycat2-install-template-1.20.zip运行包下载地址:mycat2-1.21-release-jar-with-dependencies.jar说明解压运行环境框架包,将运行包放到mycat的lib目录下配置数据源打开conf/datasources/prototypeDs.datasource.json,修改password和url{"dbTyp
- spring mysql jdbc insert 占位符_深入浅出JDBC(三) - Spring JdbcTemplate
weixin_39943000
springmysqljdbcinsert占位符
上一次我们讨论了Dbutils的用法,其实现原理很简单,就是对JDBC的原始操作进行封装。但是无论什么操作,首先得创建Connection或者DataSource对象。在业务项目的开发中,手动地创建和销毁Connection比较繁琐,且不能充分地利用资源。于是有了连接池DBCP和C3P0两个框架的出现,但是业务开发过程中,对连接资源的获取和释放同业务是完全无关的,那能不能就不关心连接的获取和释放,
- Spring使用JdbcTemplate操作数据库附源码解释
2401_84009749
程序员数据库springoracle
配置xml配置文件=========在spring配置文件配置数据库连接池,配置JdbcTemplate对象,注入DataSource。配置时用的是引用外部配置文件,所以还需要引入外部的属性文件,同时创建对象时是基于注解的所以还要开启组件扫描。bean1.xml:jdbc.properties:jdbc.driverClass=com.mysql.jdbc.Driverjdbc.url=jdbc:
- Flink的DataSource三部曲之一:直接API
字节全栈_rJF
flink大数据
mvn\archetype:generate\-DarchetypeGroupId=org.apache.flink\-DarchetypeArtifactId=flink-quickstart-java\-DarchetypeVersion=1.9.2现在maven工程已生成,用IDEA导入这个工程,如下图:以maven的类型导入:导入成功的样子:项目创建成功,可以开始写代码实战了;辅助类Spl
- 解决Caused by: java.lang.IllegalArgumentException: Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate
江南小张
javajava
解决Causedby:java.lang.IllegalArgumentException:Property‘sqlSessionFactory’or‘sqlSessionTemplate’arerequired错误的写法@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})@ComponentScan(basePac
- springDataJPA实战
cc&
SpringBootmaven
从个人开发角度来说,SpringDataJPA更好用,是因为开发起来更快。但从团队角度,我们希望更好的维护性,springdatajpa就差一些,或者说对后期人的要求更高。mybatis更好一些1.创建module2.添加数据源,新建jpa数据库spring:datasource:username:rootpassword:123456url:jdbc:mysql://localhost:3306
- spring-transaction
Think_Higher
Java生态圈springjavamvc
文章目录配置解析TransactionalEventListener主要组件注册代理类生成Advisor寻找运行调用链生成调用链调用TransactionInterceptor事务管理器DataSource事务开启是否已存在事务事务已存在PROPAGATION_NEVERPROPAGATION_NOT_SUPPORTED事务挂起PROPAGATION_REQUIRES_NEWPROPAGATION
- Springboot mysql配置和连接
奶龙牛牛
springbootmysqljava
spring.datasource.url=jdbc:mysql://localhost:3306/tedu_store?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghaispring.datasource.username=rootspring.datasource.password=123456mysqlmy
- 1-structedStreaming-基本流程(2.3.1)
github_28583061
javaspark大数据mysqlhadoop
基本流程--spark2.3.1新定义接口--中间使用了一些过度接口为了兼容老版本如:BaseStreamingSourceDataSource为一个类,定义了可插拔的数据源,对应一些列旧的数据源DataSourceV2spark2.3.1新接口,只是一个接口,没有任何方法,需要配合ReadSupport或者WriteSupport接口等一起MicroBatchReadSupport--实现创建M
- Sentinel-持久化
一只打杂的码农
限流降级java高并发
直接使用dashboard和sentinel配置各种规则时,默认是存在了内存中。如果服务器重启那么数据就会丢失,从而Sentinel提供了5中持久化的方式,将各种配置数据进行持久化,若服务器重启就重新加载持久化的数据,防止数据丢失。1、持久化原理Sentinel为我们提供了两个接口来实现规则的持久化,他们分别是:ReadableDataSource和WritableDataSource。其中主要关
- C/C++Win32编程基础详解视频下载
择善Zach
编程C++Win32
课题视频:C/C++Win32编程基础详解
视频知识:win32窗口的创建
windows事件机制
主讲:择善Uncle老师
学习交流群:386620625
验证码:625
--
- Guava Cache使用笔记
bylijinnan
javaguavacache
1.Guava Cache的get/getIfPresent方法当参数为null时会抛空指针异常
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。
实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。
2.Guava
- 解决ora-01652无法通过128(在temp表空间中)
0624chenhong
oracle
解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程
一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅了oracle的错误代码说明:意思是指temp表空间无法自动扩展temp段。这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。
分析过程:
既然是temp表空间有问题,那当
- Struct在jsp标签
不懂事的小屁孩
struct
非UI标签介绍:
控制类标签:
1:程序流程控制标签 if elseif else
<s:if test="isUsed">
<span class="label label-success">True</span>
</
- 按对象属性排序
换个号韩国红果果
JavaScript对象排序
利用JavaScript进行对象排序,根据用户的年龄排序展示
<script>
var bob={
name;bob,
age:30
}
var peter={
name;peter,
age:30
}
var amy={
name;amy,
age:24
}
var mike={
name;mike,
age:29
}
var john={
- 大数据分析让个性化的客户体验不再遥远
蓝儿唯美
数据分析
顾客通过多种渠道制造大量数据,企业则热衷于利用这些信息来实现更为个性化的体验。
分析公司Gartner表示,高级分析会成为客户服务的关键,但是大数据分析的采用目前仅局限于不到一成的企业。 挑战在于企业还在努力适应结构化数据,疲于根据自身的客户关系管理(CRM)系统部署有效的分析框架,以及集成不同的内外部信息源。
然而,面对顾客通过数字技术参与而产生的快速变化的信息,企业需要及时作出反应。要想实
- java笔记4
a-john
java
操作符
1,使用java操作符
操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不用,但是效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言类似。
操作符作用于操作数,生成一个新值。另外,有些操作符可能会改变操作数自身的
- 从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
aijuans
嵌入式学习
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为基于Linux操作系统编程,讲这个思想转变的书几乎没有,让初学者走了很多弯路,撞了很多难墙。
笔者因此写上自己的学习心得,希望能给和我一样转变
- 在springmvc中解决FastJson循环引用的问题
asialee
循环引用fastjson
我们先来看一个例子:
package com.elong.bms;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import co
- ArrayAdapter和SimpleAdapter技术总结
百合不是茶
androidSimpleAdapterArrayAdapter高级组件基础
ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果
ArrayAdapter;的数据可以是数组或者是队列
// 获得下拉框对象
AutoCompleteTextView textview = (AutoCompleteTextView) this
- 九封信
bijian1013
人生励志
有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,想一个人躲起来脆弱,不愿别人看到自己的伤口。有时候,走过熟悉的街角,看到熟悉的背影,突然想起一个人的脸。有时候,发现自己一夜之间就长大了。 2014,写给人
- Linux下安装MySQL Web 管理工具phpMyAdmin
sunjing
PHPInstallphpMyAdmin
PHP http://php.net/
phpMyAdmin http://www.phpmyadmin.net
Error compiling PHP on CentOS x64
一、安装Apache
请参阅http://billben.iteye.com/admin/blogs/1985244
二、安装依赖包
sudo yum install gd
- 分布式系统理论
bit1129
分布式
FLP
One famous theory in distributed computing, known as FLP after the authors Fischer, Lynch, and Patterson, proved that in a distributed system with asynchronous communication and process crashes,
- ssh2整合(spring+struts2+hibernate)-附源码
白糖_
eclipsespringHibernatemysql项目管理
最近抽空又整理了一套ssh2框架,主要使用的技术如下:
spring做容器,管理了三层(dao,service,actioin)的对象
struts2实现与页面交互(MVC),自己做了一个异常拦截器,能拦截Action层抛出的异常
hibernate与数据库交互
BoneCp数据库连接池,据说比其它数据库连接池快20倍,仅仅是据说
MySql数据库
项目用eclipse
- treetable bug记录
braveCS
table
// 插入子节点删除再插入时不能正常显示。修改:
//不知改后有没有错,先做个备忘
Tree.prototype.removeNode = function(node) {
// Recursively remove all descendants of +node+
this.unloadBranch(node);
// Remove
- 编程之美-电话号码对应英语单词
bylijinnan
java算法编程之美
import java.util.Arrays;
public class NumberToWord {
/**
* 编程之美 电话号码对应英语单词
* 题目:
* 手机上的拨号盘,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,
* 要求对一段数字,输出其代表的所有可能的字母组合
- jquery ajax读书笔记
chengxuyuancsdn
jQuery ajax
1、jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
- JWFD工作流拓扑结构解析伪码描述算法
comsci
数据结构算法工作活动J#
对工作流拓扑结构解析感兴趣的朋友可以下载附件,或者下载JWFD的全部代码进行分析
/* 流程图拓扑结构解析伪码描述算法
public java.util.ArrayList DFS(String graphid, String stepid, int j)
- oracle I/O 从属进程
daizj
oracle
I/O 从属进程
I/O从属进程用于为不支持异步I/O的系统或设备模拟异步I/O.例如,磁带设备(相当慢)就不支持异步I/O.通过使用I/O 从属进程,可以让磁带机模仿通常只为磁盘驱动器提供的功能。就好像支持真正的异步I/O 一样,写设备的进程(调用者)会收集大量数据,并交由写入器写出。数据成功地写出时,写入器(此时写入器是I/O 从属进程,而不是操作系统)会通知原来的调用者,调用者则会
- 高级排序:希尔排序
dieslrae
希尔排序
public void shellSort(int[] array){
int limit = 1;
int temp;
int index;
while(limit <= array.length/3){
limit = limit * 3 + 1;
- 初二下学期难记忆单词
dcj3sjt126com
englishword
kitchen 厨房
cupboard 厨柜
salt 盐
sugar 糖
oil 油
fork 叉;餐叉
spoon 匙;调羹
chopsticks 筷子
cabbage 卷心菜;洋白菜
soup 汤
Italian 意大利的
Indian 印度的
workplace 工作场所
even 甚至;更
Italy 意大利
laugh 笑
m
- Go语言使用MySQL数据库进行增删改查
dcj3sjt126com
mysql
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:
http://code.google.c...o-mysql-dri
- git命令
shuizhaosi888
git
---------------设置全局用户名:
git config --global user.name "HanShuliang" //设置用户名
git config --global user.email "
[email protected]" //设置邮箱
---------------查看环境配置
git config --li
- qemu-kvm 网络 nat模式 (四)
haoningabc
kvmqemu
qemu-ifup-NAT
#!/bin/bash
BRIDGE=virbr0
NETWORK=192.168.122.0
GATEWAY=192.168.122.1
NETMASK=255.255.255.0
DHCPRANGE=192.168.122.2,192.168.122.254
TFTPROOT=
BOOTP=
function check_bridge()
- 不要让未来的你,讨厌现在的自己
jingjing0907
生活 奋斗 工作 梦想
故事one
23岁,他大学毕业,放弃了父母安排的稳定工作,独闯京城,在家小公司混个小职位,工作还算顺手,月薪三千,混了混,混走了一年的光阴。 24岁,有了女朋友,从二环12人的集体宿舍搬到香山民居,一间平房,二人世界,爱爱爱。偶然约三朋四友,打扑克搓麻将,日子快乐似神仙; 25岁,出了几次差,调了两次岗,薪水涨了不过百,生猛狂飙的物价让现实血淋淋,无力为心爱银儿购件大牌
- 枚举类型详解
一路欢笑一路走
enum枚举详解enumsetenumMap
枚举类型详解
一.Enum详解
1.1枚举类型的介绍
JDK1.5加入了一个全新的类型的”类”—枚举类型,为此JDK1.5引入了一个新的关键字enum,我们可以这样定义一个枚举类型。
Demo:一个最简单的枚举类
public enum ColorType {
RED
- 第11章 动画效果(上)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
ljf_home
eclipsejsp卡死js卡死
使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下:
1、取消验证
windows–>perferences–>validation
把 除了manual 下面的全部点掉,build下只留 classpath dependency Valida
- MySQL编程中的6个重要的实用技巧
tomcat_oracle
mysql
每一行命令都是用分号(;)作为结束
对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:
mysql_query("INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')");
- zoj 3820 Building Fire Stations(二分+bfs)
阿尔萨斯
Build
题目链接:zoj 3820 Building Fire Stations
题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。
解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。 判断函数里面做了3次bfs,但是每次bfs节点最多