- Spring-mybatis
两仪式quq
springmybatis
怎样通过Spring整合Mybatis来实现业务目录1.导入依赖junitjunit3.8.1testmysqlmysql-connector-java8.0.33org.mybatismybatis3.5.13org.springframeworkspring-webmvc6.0.13org.springframeworkspring-jdbc6.0.13org.aspectjaspectjwe
- spring-mybatis获取mapper的四种方法
不过普通话一乙不改名
mybayis
文章目录1.用实现类获取这个用户2.SqlSessionDaoSupport获取3.MapperFactoryBean4.MapperScannerConfigurer项目背景:pojo下面有一个user实体类Dao包下面写了usermapper.xml和usermapper.interface,其中只有一个方法查询数据库中所有的用户。1.用实现类获取这个用户实现类usermapperImpl:p
- spring-mybatis项目中打印完整sql不带占位符
AaronCos
log4jdbcmybatis日志
我们在调试sql的时候,一般情况下打印的sql的都是preparedstatement语句,其中包含了占位符。这样就为我们调试工作带来了困难。使用log4jdbc能够解决这个问题:选择自己所要使用的日志工具包注意:mybatis会自动选择内置日志工具包,如果不手动设置,那么会从环境中逐个寻找,如果没有,那么不打印日志。具体查看官方文档我全局使用的slf4j,log4j.因此需要手动配置mybati
- 关于spring-mybatis整合出现的问题Error creating bean with name ‘sqlSessionFactory‘ defined in class path reso
夏末微风
解决问题的办法spring
文章目录问题原因解决问题网上找的方案问题原因今天学习spring时,出现这个问题,网上查了很多,大家错误各自不同,我一个一个改了之后还是报这个错误,总结了一下大家的改错方案,我发现百分之八十都是spring配置文件有错误。于是根据总结的东西和大家改错的方案,阅读错误信息可知,是sqlSessionFactory创建时出现了问题。这时候请大家看spring-dao.xml(每个人给配置文件的命名有所
- Spring-Mybatis源码解析--手写代码实现Spring整合Mybatis
拽着尾巴的鱼儿
Spring框架篇源码解析篇db数据库springmybatisjava
文章目录前言一、引入:二、准备工作:2.1引入依赖2.2数据源的文件:2.1数据源:2.3业务文件:三、整合的实现:3.1xxxMapper接口的扫描:3.2xxxMapper接口代理对象的生成:3.2SqlSessionFactory的定义:四、Spring整合Mybatis对比:4.1扫描路径定义:4.2bean的生成:五、扩展:5.1`SqlSessionFactory`和`SqlSessi
- Spring-Mybatis源码解析--Mybatis配置文件解析
拽着尾巴的鱼儿
源码解析篇Spring框架篇db数据库springmybatisjava
文章目录前言一、准备工作1.1依赖准备:1.2配置文件准备:1.3代码准备:二、配置文件加载:2.1SqlSessionFactoryBuilder().build(reader)2.2parser.parse():三、执行sql:总结前言Spring整合Mybatis后,如何对其配置文件进行加载和解析,如何进行数据的CRUD。一、准备工作1.1依赖准备:com.baomidoumybatis-p
- Spring-Mybatis读写分离笔记整理
yicj
springmybatis笔记
编写Spring动态数据源实现类publicclassReadWriteDataSourceextendsAbstractRoutingDataSource{@Nullable@OverrideprotectedObjectdetermineCurrentLookupKey(){returnDsTypeHolder.get().getCode();}}编写Mybatis拦截器切换数据源@Inter
- 【错误解决】BeanDefinitionStoreException: Failed to read candidate component class: file [mapper.class文件];...
weixin_30572613
java开发工具
问题描述:“spring-mybatis整合,使用mapper代理开发,通过MapperScannerConfigurer进行mapper扫描”的练习中,出现异常:org.springframework.beans.factory.BeanDefinitionStoreException:Failedtoreadcandidatecomponentclass:file[E:\项目\mybatis_
- Spring整合Mybatis
Margolu
项目链接:https://github.com/qllfq/Spring-mybatis回忆MyBatis1.导入相关jar包junit:测试,mysql:连接数据库,mybatis,webmvcjdbc,aspectjAOP织入,lombok快速生成set,get方法。maven资源过滤2.编写配置文件mybatis-config.xml3.编写pojo实体类4.UserMapper接口编写5.
- Spring入门(包括spring整合mybatis的spring-mybatis)
夏帆er
springjavamybatis
Spring一、背景介绍1、spring理念使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架Spring是一个轻量级控制反转(lOC)和面向切面(AOP)的容器框架2、轮子理论不需要重复的“造轮子”,可以使用已经存在的轮子简化开发流程3、框架早期为SSH框架,即:Struct2+Spring+Hibernate现在多数使用的是SSM框架,即:SpringMVC+Spring+Myb
- Spring深度源码解析(八)Spring AOP源码分析
七天0
SpringAOP在上一章节,笔者对Spring-Mybatis的核心思想做了详细介绍,目的是让读者能够更加清晰的认知Spring的全局生命周期,以及Spring是如何设计对外扩展的开放,本章将对SpringAOP的原理及源码进行详细说明。SpringAOP应用首先还是对SpringAOP的基本功能简单介绍。切面配置类image被增强的类image配置类image新建一个测试类image输出结果:
- spring-mybatis整合配置文件(spring-mybatis.xml)
ACGkaka_
Javaspring-mybatis配置文件
spring-mybatis整合主要有以下配置:1.读取jdbc配置文件(jdbc.properties),文件中是jdbc连接数据库的参数。例如:mysql:(database_name处填写数据库名)driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/database_nameusername=rootpassword=roo
- SSM框架配置
cifang12
applicationcontext配置log4j2配置mybatis配置spring-mybatis配置spring-tx配置springmvc-servletwebxml配置contextConfigLocationclasspath:ApplicationContext.xmlorg.springframework.web.context.ContextLoaderListenersprin
- Spring-Mybatis整合配置文件与AOP织入方式对比
基哥的奋斗历程
Springmybatisspringjava
对比AOP织入方式一对比AOP织入方式二注解实现AOPpackagecom.qf.common;importorg.aspectj.lang.ProceedingJoinPoint;importorg.aspectj.lang.annotation.*;importorg.springframework.stereotype.Component;//增强类事务管理类//切面=切点加通知@Aspec
- Spring-mybatis结合的底层原理
nickel369
springmybatisjava
1.项目前期准备1.1导入mavenjar包org.springframeworkspring-context5.2.5.RELEASEorg.springframeworkspring-tx5.2.5.RELEASEorg.springframeworkspring-jdbc5.2.5.RELEASEorg.mybatismybatis3.5.1org.mybatismybatis-spring
- spring-mybatis框架结合数据库的增删改查
夜未柒
mybatisspring数据库
在项目中创建lib包,导入jar包建立项目结构为创建数据库#使用数据库usemydb;#创建表createtablecar(cidintprimarykeyauto_increment,cnumbervarchar(20),typevarchar(20),ownervarchar(20),phonevarchar(11),markvarchar(50));insertintocar(cnumber
- Spring+SpringMvc+Mybatis整合小Demo
阳光明媚UPUP
小demomybatisspringmvcjava
原始方式整合SSM不使用spring-mybatis包项目内容整合ssm完成对account表新增和查询的操作项目大体结构创建mavenWeb项目pom文件中引入依赖spring核心、aspectj(aop)、spring-jdbc(jdbcTemplate)、spring-tx(事务)、数据源:mysql、c3p0、mybatismybatis-spring(spring整合mybatis)ju
- Method com/mchange/v2/c3p0/impl/NewProxyResultSet.isClosed()Z is abstract
阳光明媚UPUP
Exceptioinjava
在ssm整合demo时。对于c3p0依赖本版问题,低版本mybatis能用,但在用spring-mybatis进行spring域mybatis整合时,spring中配置数据源,查询的方法报了上面异常。需要修改c3p0版本高一些,如改成0.9.5.5就不报错了。
- SpringBoot启动过程深度解析——Mybatis启动过程源码解析-完整流程图
healthCode
Mybatis源码解析mybatisspringboot流程图架构后端
SpringBoot启动过程深度解析——Mybatis启动过程源码解析-完整流程图Mybatis的整体框架图Mybatis重要的组件Spring-Mybatis启动过程源码解析图
- spring05-AOP
RUNEUN
Javamybatisjavaspring
spring-mybatis整合:注意版本对应-导坐标,pom.xmlaspectjweaver-制作连接点方法,Dao接口与实现类@Repository-制作共性功能,通知类与通知-定义切入点@PointCut()-绑定切入点与通知关系@Before("***")@Component@Aspect-开启Spring对AOP的注解驱动支持@EnableAspectJAutoProxy//(配置类)
- SpringBoot:SpringBoot约定大于配置?②
不念过往--不语未来
SpringBootspringbootjava后端
前言:这一句话,有些人看过就当看过了,对这句话的解读很多文章我是不满意的,里面蕴含的知识量和信息是极少人关注到的。基于此,我讲两句。一、领悟约定大于配置字面意思:约定的东西要大于配置?人生三连问:约定的东西是啥东西?配置啥配置?大于配置?啥意思,一头雾水,不知随云?直接上答案:约定的东西:设计规范,使用规定。配置:配置文件,这里指,以项目为核心软硬件配置:spring-mybatis,spring
- Spring核心源码深度解析(七)Spring-Mybatis核心思想
七天0
Spring-Mybatis核心思想经过漫长的学习,我们总算对SpringIOC和DI的整体流程有了一定的认识,可能读者读完之后并不觉得Spring的设计有多牛逼,甚至觉得Spring的设计过于复杂,那么本章的内容将会让大家大开眼界,震撼大家如此的想法,但前提是对笔者的前面所提及的内容、Spring的主干一定要熟悉。Spring如何实现对外拓展在Spring源码的第五章,笔者提到了Import注解
- spring-mybatis源码解析
原飞木
#SB2源码学习spring-mbatis源码解析xmlmapper
本文主要围绕三个问题展开?1.spirng是怎么和mybatis关联起来的?2.xml和mapper是如何解析的3.mapper中的方法是怎么和xml中的方法关联起来的?Spirng是怎么和mybatis关联起来的在基本的MyBatis中,session工厂可以使用SqlSessionFactoryBuilder来创建。而在MyBatis-Spring中,则使用SqlSessionFactoryB
- Mybatis源码分析(十五)Spring-Mybatis整理
长安不及十里
#Mybatis源码分析mybatisspringjava源码分析学习
目录一Spring与Mybatis整合二Spring中的一些概念2.1BeanDefinition2.2BeanDefinitionRegistry2.3BeanFactory2.4BeanFactoryPostProcessor2.5ImportBeanDefinitionRegistrar2.6BeanPostProcessor2.7ClassPathBeanDefinitionScanner
- 第一个Spring、第一个SpringBoot、Spring-Mybatis整合、SpringBoot-Mybatis整合
后端漫漫
Springspringmybatisspringboot
目录一、第一个Spring程序二、第一个SpringBoot三、Spring-Mybatis整合四、SpringBoot-Mybatis整合第一个程序一、第一个Spring程序添加依赖——用以支持springorg.springframeworkspring-webmvc5.2.9.RELEASE创建一个Hello类作为JavaBean类publicclassHello{privateString
- Java注解式开发
一只奈良森屿
java开发语言springssm
目录1.ssm框架的搭建1.1maven项目的创建1.2导入所需的包到pom.xml文件中1.3导入数据库连接文件、日志文件、redis连接文件1.3.1数据库连接文件1.3.2日志文件1.3.3redis连接文件1.4导入spring-mybatis、spring-mvc、spring-base、spring-redis四种集成文件1.4.1spring-mybatis集成文件1.4.2spri
- 最新最全面的Spring详解(六)——Spring-Mybatis整合
小新要变强
JavaEEmybatisspringjava
前言本文为Spring-Mybatis整合相关内容介绍,MyBatis-Spring可以帮助我们将MyBatis代码无缝地整合到Spring中。使用这个类库中的类,Spring将会加载必要的MyBatis工厂类和session类。这个类库也提供一个简单的方式来注入MyBatis数据映射器和SqlSession到业务层的bean中。而且它也会处理事务,翻译MyBatis的异常到Spring的Data
- Spring-Mybatis整合 | 原理分析
wei_shuo
mybatisspringjavaMybatis-Spring
wei_shuo的个人主页wei_shuo的学习社区HelloWorld!文章目录▌环境搭建▌Mybatis流程回顾▌Mybatis-Spring整合SqlSessionTemplate方式SqlSessionTemplate分析configLocation&mapperLocations分析SqlSessionDaoSupport方式SqlSessionDaoSupport分析▌环境搭建步骤:导
- IOException parsing XML document from class path resource [config/applicationContext.xml];
苦 糖 果
#Springspring-mybatis
spring-mybatis整合org.springframework.beans.factory.BeanDefinitionStoreException:IOExceptionparsingXMLdocumentfromclasspathresource[config/applicationContext.xml];nestedexceptionisjava.io.FileNotFoundEx
- 从 Spring 集成 MyBatis 到浅析 Java 动态代理
K'illCode
Java框架动态代理
前言因为MyBatis的易上手性和可控性,使得它成为了ORM框架中的首选。近日新起了一个项目,所以重新搭建了一下Spring-mybatis,下面是搭建笔记和从Spring-mybatis源码分析其如何使用Java动态代理,希望对大家有帮助。Spring集成MybatisSpring集成Mybatis的方式有很多种,大家耳熟能详的xml配置方式或者本文的采用的方式:首先需要添加MyBatis的和M
- 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节点最多