- 博客(19)
- 收藏
- 关注
原创 SSM整合带流程图,知道要配置哪些配置文件以及各个配置的作用
SSM整合本文是在你使用maven管理框架,并且建立了标准的web目录的情况下介绍 首先引入依赖spring-context(spring框架)mybatisspring-webmvc(Spring-MVC)mybatis-spring(整合包)mysql-connector-java(MySQL的jdbc)spring-jdbcdruid(数据源)servlet-api(servlet)jsp-apijstl<dependencies> <depe
2021-04-06 20:47:06
397
原创 Spring整合数据源报错严重: create connection SQLException, url: jdbc:mysql://localhost:3306/library, errorCode
在Spring通过bean加载数据源时,报出以下错误我有点懵逼,但是仔细一看,发现明明我的配置文件里username是root,这里怎么显示我的电脑名ASUS。然后了解到,有些环境默认情况下,如果在指定的属性文件中找不到属性,它还会检查Java系统属性。虽然不知道为什么它不优先用我配置文件里的信息,但是,我把配置文件里的username改成user后,就成功了。因为username和你系统里的username重名,冲突了。或者你不想改,可以在扫描配置包的那条语句下加上这个属性 system-pr
2021-04-05 22:44:45
2594
3
原创 Mybatis快速入门(真的很快)——非简单贴图放代码
Mybatis快速入门 Mybatis是一个开源的持久层框架,非常普及,据说阿里就用它。 有同学问什么是持久层,你只需要浅薄的知道持久层就是数据库就ok了。Mybatis框架入门使用步骤创建核心xml配置文件创建持久化类(POJO)创建SQL映射xml文件编写测试代码我先来解释一下什么叫持久化类,持久化类是指其实例状态要被保存到数据库中的类,也就是一个javaBean。比如以下这个User类public class User{ int id; String n
2021-03-25 18:49:00
138
原创 servlet的生命周期(详细易懂)
servlet程序servlet程序是运行在web服务器上或应用服务器,如Tomcat服务器上的一段程序,它的作用是处理发送至服务器的请求,处在服务器上的应用程序或者数据库和web客户端之间。servlet接口为了实现servlet程序,我们通常需要直接或者间接实现servlet接口。servlet中,包含以下方法public interface Servlet { void init(ServletConfig var1) throws ServletException; Se
2021-02-02 00:55:14
868
2
原创 最长子序列LCS算法
问题描述:给定两个序列X,Y,求这两个序列的最长公共子序列;主要思想:动态规划解析:子序列:即序列中,下标按照严格递减所形成的序列即为子序列,比如 X <A,B,C,B,A>,那么 ACB也是该序列的子序列子序列可以有很多,但是最长子序列的长度是应该唯一的。推论:1:如果Xi=Yj,那么Zk=Xi=Yj,则Zk-1=Xi-1+Yj-12:如果Xi !=Yj,且Zk != Xi,则Zk是Xi-1与Yj的最长公共子序列3:如果Xi !=Yj,且Zk !=Yj,则Zk是Xi与Yj-1
2020-06-12 12:34:16
134
原创 矩阵链问题(动态规划和递归)
1.问题给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2 ,…,n-1。如何确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。2.解析假设在第k位置上找到最优解,那么问题就变成两个子问题:(Ai,Ai+1……Ak),(Ak+1……Aj);用dp[i][j]表示矩阵连乘的最优值,那么两个子问题对应的最优值变成dp[i][k],dp[k+1][j];设矩阵A的行数为P,列数为Q,矩阵是可连乘的,即相邻矩阵Q=P+1,所以(Ai,Ai+1……Ak)可
2020-05-26 14:40:58
252
原创 动态规划——投资问题
1.问题数学语言:有n个项目,m元钱,dp(x,y)表示第x个项目投资y元钱的效益,问如何投资使效益最大。2.解析维护一个二维数组dp[i][j],表示前i个项目投资j元钱的最大利益,从第一个项目开始考虑,到第n个项目,为n分配x元钱,m-x元钱的最大效益为dp[n-1][m-x]。for (i<项目数) { for (j <总金额) { for (k<j) { if (dp[i][j] < a[i][k] + dp[i - 1][j - k]) { 更新
2020-05-26 14:37:59
229
原创 分治法查找第k小/大的数
1.问题数学语言:给无序序列集中有n个元素,查询次数m和一个整数k,1<=k<=n,找出这n个元素中第k大的元素。2.解析利用快速排序,可以从序列中取一个中点mid,然后把序列分成小于等于mid和大于等于mid的两部分,由两个部分的元素个数和k的大小关系可以确定这个数是在哪个部分,以此类推,进行递归查找。3.设计if (两边指针相交) return -1; if (两边指针重合) return 当前元素; i = quicksort(a, l, r);//对当前序列进行快
2020-05-26 14:36:34
852
原创 分治思想
1:点的数量较少的情况可以直接用蛮力算法计算出,比如 n=1或者2;2:点的数量较多的情况,就需要利用分治的思想来实现,首先将每个点按照X轴升序排序,将点集合Q一分为二,称为Q1,Q2。然后分别求出Q1、Q2中最短点对d1与d2;但是我们不能断定求出的d=min(d1,d2)就是这个空间里最短点对,因为在Q1、Q2分割线两侧可能有两点之间的距离比d1和d2还小。所以我们设分隔线与x=m,找出Q点集中[m-d,m+d]之间的点,记该点集为Q3,然后将Q3中的点以y轴按升序排序,按照视频里的讲解,最多只用查找
2020-05-26 14:33:29
142
原创 二分归并排序
算法介绍:采用分治的思想,即将大问题转换为小问题,但是它们的前提一定要一样,否则就是两个问题了。归并排序即对一个序列进行一分为二,然后对两个子序列再进行一分为二,直到子列只有一个数,则返回,通过不断将子序列两两归并,最后将整个大序列归并排好序。因为我采取归并的方式,所以可以想象原来一个待排序的序列,先一分为二,但是这两个序列中不止一个元素,所以我们要继续一分为二,…直到一分为二后的序列只有一个元素,这时候我们可能已经向下递归很多层啦,接下来如果子序列只有一个元素我们就默认为有序的啦(也没得和别的数字排呀!
2020-05-26 14:31:07
213
原创 二分法与二叉查找树
二分查找法:对一个有序序列进行一分为二的检索,每次查找范围缩小一半,直到找到所需的数或者查找范围不存在;问题描述:对一个有序序列检索一个输入的数,若该数存在则返回下标,否则返回1;问题分析:这种问题最简单的方法是顺序检索,在数据量小的情况下,顺序和二分还有二叉查找树没有很大差别(此时是单边树),但在数据量大的情况下,对有序表的检索二分较优。这里用二叉查找树只是因为想复习一下数据结构学过的知识。时间复杂度:log(n)算法设计://// binary_search.cpp//////
2020-05-26 14:28:06
481
原创 Floyd和Dijkstra算法
Floyd算法算法解析:因为一张连通图中不是所有点到其他点都是有一条直接路径的,所以我们可以借助别的和终点相连的点到达终点,便是起点-中转…-终点;以小推大,小:假设当前只有1可以当中转点,start为起点,end为终点;因此当start点需要借助点1到end点时,便需要进行if(edge[start][end]>edge[start][1]+edge[1][end])的判断,这个判断的意思就是 :我的起点到终点的路径长度是否比中转方法的长度长,这时我们当然需要优先选择短的路径,并且在edge
2020-05-26 14:25:21
226
原创 最小生成树-Prim算法与Kruskal算法
最小生成树:求一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边.1:Prim算法(适合稠密图)`Prim(G){ //G为图 int addnow[maxen];//记录当前有多少点被纳入集合; int lowcost[maxen]; //记录当前集合中的点到其他点的最小距离的边集合; init();//初始化点集合与边集合; addnow[start]=true; //将起点纳入点集合 for(
2020-05-26 14:22:50
265
原创 深浅拷贝
深浅拷贝的区别:1、浅拷贝只是复制了对象的引用地址,两个对象指向同一个内存地址,所以修改其中任意的值,另一个值都会随之变化,这就是浅拷贝(例:assign())2、深拷贝是将对象及值复制过来,两个对象修改其中任意的值另一个值不会改变,这就是深拷贝。简单的理解就是:就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝。 如果拷...
2019-12-29 22:42:55
98
原创 聚合与组合
聚合关系中部分与整体之间并没有相同的生命周期,整体消亡后部分可以独立存在,并且多个整体可以共享部分。例如汽车与车轮,汽车报废车轮还是能独立存在组合关系中整体拥有部分的生命周期,所以整体删除时,部分一定会跟着删除。而且,多个整体不可以同时间共享同一个部分。...
2019-12-29 22:41:28
172
原创 Javadoc
定义javadoc是一种技术。它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形成程序的开发文档了。——来自百度百科自我理解:javadoc是一种注释,让代码看起来更加整洁。便于检查和修改。使用方法:写在类上面的Javadoc一般分为三段:第一段:概要描述,通常...
2019-12-29 22:36:47
118
原创 unicode和UTF-8、UTF-16、UTF-32区别
unicode是编码字符集,而UTF-8、UTF-16、UTF-32是字符集编码Unicode 分配给字符一个唯一的数字编号,这个编号范围从 0x000000 到 0x10FFFF (十六进制),有 110 多万,每个字符都有一个唯一的 Unicode 编号,这个编号一般写成 16 进制,在前面加上 U+。Unicode 就相当于一张表,建立了字符与编号之间的联系例如:U+0020 表示 ...
2019-12-29 22:34:56
292
原创 Eclipse的debug
eclipse 的debug使用Eclipse环境下进行debug与之前学习的C会不同,并非简单的调试可以完成。步骤如下:1->建立一个新文件"welcomewiththreemessages"2->在新的class下输入简单代码:3->选中需要debug的代码行,每行前会出现蓝色小圆点。4->点击Run内Debug5->出现如下见面后进行逐行debug:...
2019-12-29 22:33:29
96
原创 安装eclipse
**安装使用eclipse**第一天学习Java,就被安装eclipse的复杂程度震惊。首先找到eclipse的官网再点这里点了之后就会跳出来,点下载就可以。载好之后找到里面的exe就可以用,不需要安装。如果原先电脑没有装jdk,那还需要下载jdk。...
2019-09-04 14:22:45
88
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人