自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 关于ajax的简单使用(SpringMVC)

关于ajax的简单使用ajax其实原理并不复杂,其实就是一个部分发送请求的过程。那么什么是部分发送请求呢?其实并不难理解,我们每次点击百度的搜索框的时候,我们可以看一下浏览器network看一下发送的是什么请求,它发送的是xhr请求,这个请求对于ajax来说非常重要,它也是ajax比较重要的一个对象,负责发送请求并且接收返还数据。而这里发送的请求就是一个部分的请求,前端页面并没有刷新,只是数据刷新了而已。也就是说ajax的思想就是由原来发送请求后端接收请求之后就要返回一个前端的页面,主动权在后端的手上,

2021-01-31 14:32:07 116

原创 基于SpringMVC的拦截器

基于SpringMVC的拦截器SpringMVC的拦截器就像是我们以前在WEB项目里面写的filter过滤器,但是它又一样。首先是以前的过滤器是需要我们手动过滤掉静态资源,但是SpringMVC里面的拦截器是可以自动过滤的第二点就是拦截器需要注册在SpringMVC上面去拦截器的效率更高代码更容易写。拦截器的原理其实就是aop,它里面比较重要的三个方法,preHandle(req,resp,handler),postHandle,afterCompletion,都是横切过去的方法。我们可以通过p

2021-01-31 14:14:15 83

原创 高楼扔鸡蛋(重新定义的状态转移)

高楼扔鸡蛋(重新定义的状态转移)正常来说高楼扔鸡蛋想到二分解法的时候就已经想破脑袋了。但是还有一种更难的想到,而且即使知道这种想法,也很难把思路理清楚,因为真的特别绕。不过难是难,但是努力去往这个想法去靠近总会越来越接近答案的。现在就给出这个解法的思路。重新定义高楼扔鸡蛋的dp数组dp[k][m]原本这里的定义是有k个鸡蛋,n层楼,最坏的情况下最少的扔鸡蛋个数。虽然有点绕但是仔细思考也能够理清思路。而重新定义的dp[k][m]就换了一种说法,有k个鸡蛋,只允许你扔m次鸡蛋,在最坏的情况下最多能够测试多

2021-01-31 09:24:14 179 2

原创 SSM整合案例

SSM整合案例这个案例是狂神的ssm整合案例。练习了三次收获非常大,做的时候除了要熟悉开发的流程,更重要的是学会在案例中学习,如果碰到一些不是特别懂的代码就一定要去查。遇到的问题以及解决方式:①dao扫描包的代码不懂解决方式:通过自己阅读源码,百度搜索,翻看文档来一步步解析②事务处理器与aop的应用解决方式:尝试写一个简单的事务管理操作,熟悉流程,阅读源码,然后上网查找分析博客来解决自己的疑惑,但是仍存大量的疑惑需要解决③对于一些不懂的api解决方式:以阅读源码为主,然后通过一些debug来

2021-01-30 18:04:41 121

原创 谈谈SqlSessionFactoryBean和MapperScannerConfigurer

谈谈SqlSessionFactoryBean和MapperScannerConfigurer这两个类会在我们使用dao的时候扫描的时候会用到,如果我们不想创建一个Mapper接口类的实现类的话(通常spring管理Mybatis的mapper对象的时候都需要创建一个接口实现类来做做对数据库的操作,不然没办法访问到Mapper.xml的代理类,这个代理类通常是SqlSession来创建的)先给出代码 <bean class="org.mybatis.spring.SqlSessionFa

2021-01-28 23:28:04 1238

原创 Mybatis中mapper.xml的原理分析

Mybatis中mapper.xml的原理分析今天想了一下,对Mybatis里面mapper(就是以前dao的接口)接口的xml文件(其实就是dao的实现类)是怎么实现的挺感兴趣,然后就debug了一下发现。其实我们Mybatis首先是通过SqlSessionBuilder来读取xml文件,然后把这个文件的信息全部传入到了Configuration对象里面去。然后在我们sqlSession获取mapper的时候就会根据这一个Configuration的信息通过动态代理来创建对象,类似于spring中的A

2021-01-27 21:33:06 1159

原创 Mybatis-Spring的入门使用

Mybatis-Spring的入门使用(这里是跟着狂神学习的)1.首先配置环境导入mybatis-spring的jar包还有spring-jdbc的jar包,还有Mybatis和Spring框架需要的jar包2.写mybatis-config的配置文件,我们可以不在这个地方上面写映射器mapper,改到在spring的xml里面写。3.写实体类和实体类接口还要写接口的实现xml和接口的实现类(总共4个)4.写spring-dao.xml用于管理对象。创建Mybatis-spring所需的templ

2021-01-27 20:58:59 168

原创 Spring框架的IOC理解

Spring框架的IOC理解Spring的IOC容器其实是一种思想转变的开始。比如,我们以前的service层和dao层如果service需要调用dao的时候,我们就需要在service层里面创建dao的对象。这样类与类之间的联系就非常紧密,而联系紧密有什么不好的地方呢?联系紧密就会导致我们需要修改代码非常难,非常复杂。举个例子如果service需要一个连接mysql的dao对象来完成对数据库里面数据的存储我们就需要在service层创建这个对象。万一我需要改成连接oracle数据库来得到数据呢?是不是

2021-01-26 17:44:36 55

原创 Spring纯注解事务管理

Spring纯注解事务管理纯注解的事务管理只需要用一个配置类就好了,配置类需要几个注解@Configuration@EnableTransactionManagement这个是开启事务管理的,这个注解类似与tx:advice@@ComponentScan(basePackages = “haoren”)扫描注解在xml文件的事务管理中我们是需要创建三个对象的DataSource,JdbcTemplate还有DataSourceTransactionManager我们可以使用@Bean在注解类里面

2021-01-26 17:15:22 237

原创 Spring框架基于xml的事务管理

Spring框架基于xml的事务管理Spring的事务管理非常方便,其实原理就是通过aop的切面,来增强我们的切入点,添加了事务管理的功能。需要注意的是传播的方式,通常用的比较多的是required。那么什么是传播呢?传播其实就是处理事务的方式,比如现在有A方法,还有B方法,我需要把B方法加入到A方法里面去,A方法原本是有一个事务的,但是B没有,那么required就是可以不新建事务,用A方法的事务,只是把B方法加进来而已。还有别的传播方式,比如两个方法都有自己的事务管理,但是可以直接创建一个新的事务来

2021-01-26 16:13:24 140

原创 Spring框架基于注解的AOP使用

Spring框架基于注解的AOP使用注解相对于xml的使用来说比较方便,但是维护相对来说会比较难,如果我们需要改动,假设类特别多的时候改动就需要很大的精力,但是xml的相对维护简单。使用注解开发(导入相关jar,和aspectj包)1.我们需要一个注解配置类,需要有@Configuration来表明这个是注解类,@ComponentScan来扫描类在IOC容器里面创建对象由Spring容器来管理,@EnableAspectJAutoProxy用于扫描是否有通知类,通知类通常会有@Aspect注解表示我

2021-01-26 14:51:39 96

原创 Spring框架用XML实现AOP

Spring框架用XML实现AOP1.首先还是要搭建环境,如果是maven项目直接导入一个spring-mvcweb的包2.创建通知类(代理)和实体类3.创建xml文件,导入context和aop的命名空间4.准备测试类AOP其实就是一个动态代理的过程,有了spring框架的帮助下,我们可以在不修改源代码的情况下也能够添加一些新的功能。用xml来使用aop增强方法的原理也并不难,就是把我们通知类里面的增强部分(通知)通过切面放到切入点(实体类要增强的方法)的过程下面给出具体代码代码(stud

2021-01-26 14:29:31 124

原创 高楼扔鸡蛋问题(二分解法)

高楼扔鸡蛋问题(二分解法)二分解法是基于高楼扔鸡蛋的基本动态规划解法。今天就来讲一下高楼扔鸡蛋的第二种解法,二分解法。其实并不是特别难,只不过换了一种遍历的方式。我们继续看一下这个问题,为什么可以使用二分解法?为什么这道题符合二分搜索的要求?其实我们只要仔细观察这道题就会发现,我们原来定义的dp[k][n]在有k个鸡蛋,n层楼的最坏情况下扔鸡蛋的最少数目是会随着楼层的减少,扔鸡蛋的次数也会减少。原理很简单。。,你看少了一层楼,那么假设现在有6层楼,我们第一种方案就是一层一层的扔,最坏情况就是扔6次,如

2021-01-25 21:20:09 563

原创 动态sql和一对多关系以及多对一的关系

动态sql和一对多关系以及多对一的关系Mybatis里面比较优秀的地方,就是可以通过动态sql来完成一些sql的判断啊,where啊,set啊这些操作。而且还可以,通过resultMap来封装结果集。简单来说动态sql其实就是能够根据需求来动态改变sql语句,再简单一点就是能够很方便拼接sql,而且不需要担心写多了个逗号啊,and啊什么的。比如说我们select * from user where id = ? and xx=?and aa=?这种类型的语句,如果我们需求需要加上一个字段rr的话是不是

2021-01-24 23:33:22 221 1

原创 浅谈Mybatis的生命周期

浅谈Mybatis的生命周期首先我们从官方文档里面可以看到的是SqlSessionFactoryBuilder使用build来创建SqlSessionFactory,然后SqlSessionFactory再使用openSession开启一个会话连接来创建SqlSession对吧。但是过程并没有那么简单。首先我们来看一下SqlSessionBuilder有什么方法SqlSessionFactory build(InputStream inputStream)SqlSessionFactory buil

2021-01-24 23:07:06 222

原创 Mybatis简单介绍和环境搭建

Mybatis的入门学习既然是入门的学习,首先我们就需要了解Mybatis到底是一个什么样的东西,它是干什么的?简单来说它是一个轻量级的支持持久层的开源框架,就是主要来处理我们web项目中的dao层。那么问题来了什么是持久层?首先我们需要理解的是什么是持久化对吧。持久化就是把我们内存中的数据持久化到数据库啊,磁盘啊这些持久化的设备,也就是说持久化其实是一个动作。内存数据->可持久化设备。那么持久层是什么?想想我们什么时候需要把内存存储到数据库?不就是当我们处理web项目的一些用户啊,商品啊这些

2021-01-24 22:21:26 81

原创 高楼扔鸡蛋问题

高楼扔鸡蛋问题这个问题问的是有N层楼,K个鸡蛋,有第1<=F<=N层楼鸡蛋刚好不碎,最坏情况下至少扔多少次鸡蛋?对于这道问题比较难的就是理解题目的意思,穷举的本身和代码并不难,但是理解题目,解析出来比较难。现在我来谈谈自己对这道题目的思考。如果有不正确的地方希望大家能够指出。1.首先我需要抛出问题①什么是最坏的情况如何理解?②至少扔多少次鸡蛋在这道题又应该如何理解③为什么动态规划可以解决这道题现在我一个一个问题来解析。**最坏的情况什么意思?**现在举一个例子,在我们不考虑鸡蛋数目的

2021-01-21 22:22:12 170

原创 最大公共子序列长度的思考

最大公共子序列长度的思考我借鉴了挺多博主对这道题的看法,然后结合自己的思考整理了一下思路。对于我自己来说,这一道题非常的难,可能我是菜鸟的缘故,我是看过自顶向下的递归答案还有自底向上的思路求解,以及dp数组的一个定义进行的分析。我最开始最困惑的地方就是这里的递归解法,dp(i),j函数的i和j为什么会有两个意思,一个是代表两个字符串的指针,另一个意思就是字符串的长度。dp不都是解释为s1[0…j],s2[0…j]的最大子序列长度嘛。而我自己更偏向指针的思考。但后来发现两个都需要。我这里只讲思考所以就不贴

2021-01-20 00:28:48 89

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除