- 博客(172)
- 资源 (4)
- 收藏
- 关注
原创 java基础之iterator,foreach,for的差别
打印结果:打印结果:打印结果:原因 : 在集合增加同时,又做了删除操作,导致了list集合中 modCount 和 expectedModCount 不一致,导致抛出异常。这里用的是 list并且是单线程,已导致了异常报错,多线程情况下,异常报错的几率更高。可以使用CopyOnWriteArrayList,Collections.synchronizedCollection()等并发容器,来解决此类问题。......
2022-07-13 11:03:15
1215
原创 spring之事务配置
事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中 出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分 割的整体,就像化学中学过的原子,是物质构成的基
2022-07-08 22:01:44
522
原创 el-tree+Vue实现菜单权限分配
2、设置被选中的复选框关键点:没有子节点的父节点要把id传过来,而有子节点的父节点不能传过来。父节点如果设为选中,则子节点则全选中。
2022-07-06 23:50:05
1385
原创 Https协议简介
协议运行在 TCP 之上,明文传输,客户端与服务器端都无法验证对方的身份。Https 是通过 (Secure Socket Layer, 安全套接层 )或 (Transport Layer Security, 安全层传输协议)的组合使用,加密 的通信内容。属于通信加密,即在整个通信线路中加密。 采用共享密钥加密(对称)和公开密钥加密(非对称)两者并用的混合加密机制。若密钥能够实现安全交换,那么有可能会考虑仅使用公开密钥加密来通信。但是公开密钥加密与共享密钥加密相比,其处理速度要慢。窃听风险:通信
2022-07-05 18:49:16
317
原创 HTTP 协议简介
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它是基于 TCP 协议的应用层传输协议。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。 HTTP 是一种无状态 (stateless) 协议, HTTP 协议本身不会对发送过的请求和响应的通信状态进行持久化处理。这样做的目的是为了保持 HTTP 协议的简单性,从而能够快速处理大量的事务,提高效率。
2022-07-05 18:38:30
552
原创 Git版本控制
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。从一般开发者的角度来看,git有以下功能:从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:Git下载地址:https://git-scm.com/download/win然后把链接
2022-06-19 17:47:59
201
原创 java基础之线程创建
使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态。它保持这个状态直到程序 start() 这个线程。当线程对象调用了start()方法之后,该线程就进入就绪状态。就绪状态的线程处于就绪队列中,要等待JVM里线程调度器的调度。如果就绪状态的线程获取 CPU 资源,就可以执行 run(),此时线程便处于运行状态。处于运行状态的线程最为复杂,它可以变为阻塞状态、就绪状态和死亡状态。如果一个线程执行了sleep(睡眠)、suspend(挂起)等方法,失去所占用资源之后,该
2022-06-17 10:04:44
207
原创 Git设置使用rsa上传文件到gitee
然后在C:\Users\DELL\.ssh 找到.pub的文件复制里面的公钥。点进个人主页 ->个人设置出现下面字样说明成功添加 让后就可以上传文件了
2022-06-16 20:56:13
514
1
原创 Spring整合分页插件PageHelper
2、配置PageHelper拦截器插件(2种方法)方法一:1、在mybatis-config.xml中配置插件 方案二:在spring.xml中引入mybatis文件
2022-06-15 19:34:07
591
原创 SpringMvc框架之域对象共享数据
本次请求下数据有效。2、使用ModelAndView向request域对象共享数据ModelAndView有model 和 view的功能 Model主要用于请求域共享数据。view主要用于设置视图用于页面跳转。3、使用Model向request域对象传递数据4、使用map向request域对象传递数据5、使用ModelMap向request域对象传递数据6、Model,ModelMap,Map之间的关系Model,ModelMap,Map类型的参数其实本质
2022-06-13 12:51:21
154
原创 SpringMvc基础之获取请求参数
其实还是像原来在servlet中获取参数一样。2、通过控制器的形参获取参数在控制器中的参数设置与请求参数名字一样就可以获取到。注意:如果传过来是一个数组,也可以直接用String来接收(接收后类似于a,b,c这样的形式输出),也可以用数组来接收。@ResquestParam是将请求参数和控制器方法创建映射关系。@ResquestParam注释下有三个参数:4、@RequestHeader@RequestHeader 将请求头的信息和控制器方法的形参创建映射关系@RequestHea
2022-06-13 10:24:22
144
原创 Spring框架之BeanFactory和ApplicationContext的区别
从下图中可以看出BeanFactory是顶级接口而 ApplicationContext是它的子类。Spring容器顶层接口:获取Bean对象;管理类和类之间的关系(依赖关系)BeanFactory由org.springframework.beans.factory.BeanFactory接口定义 BeanFactory是工厂模式(Factory pattern)的实现,是IOC容器的核心接口,它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。BeanFactory中的API2、
2022-06-12 21:14:58
232
原创 SpringMvc框架之全局异常和拦截器的配置
springmvc框架的的搭建这里不再赘述,直接就开始全局异常和拦截器的配置。首先我们先创建一个专门放异常处理类的包,然后创建一个Myhandler的异常处理类。2、拦截器配置下图时是HandlerInterceptor接口default修饰的三个方法的调用顺序。 下面对着三个方法详细解释下何时执行。 然后我们来创建一个MyInterceptor实现HandlerInterceptor接口然后配置springmvc全局配置文件添加拦截器配置......
2022-06-12 18:44:15
254
原创 java基础之枚举类
枚举类型()是指由一组固定的常量组成合法的类型。中由关键字来定义一个枚举类型。下面就是枚举类型的定义。2、特点定义枚举类型的语句很简约。它有以下特点:1)使用关键字2) 类型名称,比如这里的3) 一串允许的值,比如上面定义的春夏秋冬四季4) 枚举可以单独定义在一个文件中,也可以嵌在其它类中除了这样的基本要求外,还有一些其他选择5)枚举可以实现一个或多个接口(Interface)6) 可以定义新的变量7) 可以定义新的方法8) 可以定义根据具体枚举值而相异的类 [中文:春天,枚举常量:SPRI
2022-06-11 13:38:08
352
原创 springMVC实现阿里OSS文件上传
您可以通过以下三种方式安装SDK。在Maven项目中加入依赖项(推荐方式)在Maven工程中使用OSS Java SDK,只需在pom.xml中加入相应依赖即可。以3.10.2版本为例,在中加入如下内容:如果使用的是Java 9及以上的版本,则需要添加jaxb相关依赖。添加jaxb相关依赖示例代码如下: 2、新建OSSClientOSSClient是OSS的Java客户端,用于管理存储空间和文件等OSS资源。新建OSSClient时,需要指定Endpoint。...
2022-06-10 22:58:56
321
原创 SpringMvc+element实现文件上传
在pom.xml添加这几个依赖二、在springMVC的配置文件添加配置 添加文件上传配置三、开始配置控制器四、jsp页面
2022-06-09 21:14:05
285
原创 SpringMVC常见错误之 Java 8 date/time type ` jackson.databind not supported by default
由于jackson-databind不支持java8的日期类型,所有需要添加新的依赖com.fasterxml.jackson.datatype在pom.xml中添加依赖然后在相应实体类字段中添加相应的注释
2022-06-08 09:19:52
562
原创 SpringMVC基础之初识SpringMVC
Spring的模型-视图-控制器(MVC)框架是围绕一个来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。处理器是你的应用中注解了和的类和方法,Spring为处理器方法提供了极其多样灵活的配置。在Spring Web MVC中,你可以使用任何对象来作为命令对象或表单返回对象,而无须实现一个框架相关的接口或基类。Spring的数据绑定非常灵活:比如,它会把数据类型不匹配当成可由应用自行处理的运行时验证错误,而非系统错误。你
2022-06-07 13:31:52
131
原创 Mybatis基础之pageHelper分页插件使用
2、在mybatis全局配置文件中添加拦截器3、使用pageHelper插件4、PageHelper 常用API介绍
2022-06-06 21:25:44
255
原创 Mybatis基础之mybatis-generator逆向工程
本次演示使用了maven,使用pom直接导入依赖。1、首先在pom.xml 加入下面依赖2、在项目根目录创建一个generator的xml配置文件3、在Java代码中运行配置文件最终效果
2022-06-06 20:36:43
141
原创 mybatis之二级缓存的配置和使用
一级缓存:是框架默认为我们开启的,我们不需要做任何配置,是SqlSession级别的缓存,在操作数据库的时候需要创建一个SqlSession,其中有一个HashMap,用于存储缓存数据。不同的SqlSession之间,其缓存数据的HashMap是不同的。所以当我们多次调用同一个Mapper和同一个方法的同一个参数,只会进行一次数据库查询,然后把数据缓存到缓冲中,以后直接先从缓存中取出数据,不会直接去查数据库。但是不同的SqlSession对象,因为不同的SqlSession都是相互隔离的,所以相同的Mapp
2022-06-06 18:48:36
1881
原创 mybatis基础之XML映射文件
SQL 映射文件只有很少的几个顶级元素(按照应被定义的顺序列出):在每个插入、更新或删除操作之间,通常会执行多个查询操作。因此,MyBatis 在查询和结果映射做了相当多的改进。一个简单查询的 select 元素是非常简单的。这个语句名为 selectPerson,接受一个 int(或 Integer)类型的参数,并返回一个 HashMap 类型的对象,其中的键是列名,值便是结果行中的对应值。符号#{id}这就告诉 MyBatis 创建一个预处理语句(PreparedStatement)参数,在 JD
2022-06-05 15:35:38
2167
原创 mysql基础之alter字段详解
删除字段i注意: 如果数据表中只剩余一个字段则无法使用DROP来删除字段。添加字段i使用 ADD 子句来向数据表中添加列,如下实例在表 testalter_tbl 中添加 i 字段,并定义数据类型:注意:执行以上命令后,i 字段会自动添加到数据表字段的末尾。也可以指定添加字段的位置,通过使用使用MySQL提供的关键字 FIRST (设定位第一列), AFTER 字段名(设定位于某个字段之后)。注意:FIRST 和 AFTER 关键字可用于 ADD 与 MODIFY 子句,所以如果你想重置数据表字段的位置就需
2022-06-05 09:15:09
1312
原创 Mybatis之mybatis配置文档介绍
这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。例如:设置好的属性可以在整个配置文件中用来替换需要动态配置的属性值。比如:如果一个属性在不只一个地方进行了配置,那么,MyBatis 将按照下面的顺序来加载:因此,通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的则是 properties 元素中指定的属性。从 MyBatis 3.4.2 开始
2022-06-02 10:59:12
359
原创 Mybatis基础之sql动态语句
测试的表结构2、choose choose就相当于多分支条件语句 类似于java中的switch...case...default3、trim标签trim元素可以帮助我们去掉一下and、or等,prefix代表语句前缀, prefixOverrides代表要去掉的字符串4、set元素set元素,它可以在遇到逗号的时候,把对应的逗号去掉5、include和sql标签sql标签位置:在映射文件中作用:可以存放多条SQL语句中重复的部分(一般用于存放重复的
2022-06-01 20:02:15
249
原创 java基础之线程状态
线程可以有以下6种状态:确定一个线程的当前状态,可调用getState方法 当用new操作符创建一个新线程时,如new Thread(r),该线程还没有运行。这意味着它的状态是new。当一个线程处于新建状态时,程序还没有开始运行线程中的代码。在运行之前,还有一些基础工作要做。 一旦调用start方法,线程处于runnable状态。一个可运行的线程可能正在运行也可能没有运行,这取决于操作系统给线程提供运行的时间。(Java的规范说明没有将它作为一个单独状态。一个正在运行中的线程仍然
2022-06-01 16:26:28
108
原创 错误解决:There is no getter for property named ‘id‘ in class ‘java.lang.String‘
问题图示:错误代码:解决方案:
2022-06-01 14:50:19
1196
原创 javaweb之NullPointerException
配置文件中的environments 和 environment中的default 和 id保持一致。
2022-05-31 15:44:24
135
原创 javaweb基础之引入maven+mybatis
1、首先引入maven和创建Javaweb项目可以通过Maven官网直接下载两个中任意一个都可以,然后直接解压到磁盘里。由于maven默认的下载远程仓库是国外的,下载比较慢,所以需要改成阿里云镜像。<!--默认依赖jar包下载位置 --> <localRepository>F:\Maven\.m2\repository</localRepository> <!-- 阿里云镜像 --><mirrors>...
2022-05-31 15:06:35
797
原创 java基础之Stream流(二)
1 其他流的转换distinct方法会返回一个流,它的流是从原有的流中产生的,即原来的元素按照同样的顺序剔除重复元素后产生的。这个流显然能记住它已经见过的元素。Stream<String> stream = Stream.of("work","word","sister","word") .distinct();对于流的排序,有多种sorted方法变体可用。其中一种利用操做Comparable元素的流,而另一种可以接受一个
2022-05-30 13:45:09
263
原创 java基础之Stream流(一)
流提供一种比集合更高级指定计算的视图。通过使用流,我们可以说明想要完成什么任务,而不是说明如何去实现它。我们将操作的调度留给具体的实现去解决。例如,假设我们想要计算某个属性的平均值,那么我们可以指定数据源和该属性,然后,流库可以对计算进行优化。例如,实用多线程来计算总和与个数,并将其合并。1.1 从迭代到流的操作在处理集合时,我们通常会迭代遍历集合所有的元素,并在集合的每个元素上执行某项操作。例如,假设我们想要对某本书中的所有长单词进行计数。首先,将所有单词放进一个列表中:String con
2022-05-30 10:42:48
286
原创 Vue基础之computed计算属性
计算属性顾明思义就是vue实例中的属性,而不是函数。但有时候我们见到下面这种var vm = new Vue({ el:'#app', data:{ }, computed:{ fullName:function(){ return "Tom Thomas"; } }, methods:{ getFullName:function(){ return "
2022-05-28 15:35:24
97
原创 axios发送post请求后台request.getParameter接不到参数
在学习axios过程中,发现直接通过把json放到post里后台通过getParameter接收不到。axios请求代码axios.post('url',{'username':'name'}).then(function(value){})然后,因为我们的参数是 JSON 对象,axios 帮我们做了一个 stringify 的处理。而且查阅 axios 文档可以知道:axios 使用 post 发送数据时,默认是直接把 json 放到请求体中提交到后端的。那么,这就与我...
2022-05-27 09:49:57
1000
原创 Element学习之表单验证输入框提示不消失
在学习Element UI时碰见了一个让人头疼的问题,碰巧发现输入框提示信息一直消失几经辗转才找到错误,最后发现原来是 el-form-item中的prop 要与 el-input中v-model绑定的值一致。仔细一样,不一致他那上验证去,所以才会一直提示。<div id="app"> <el-tabs v-model="activeName" @tab-click="handleClick" type="border-card"> .
2022-05-26 10:50:13
4597
原创 java基础之线程与进程的区别
多任务(multitasking):在同一刻运行多个程序的能力。例如,在编辑或下载邮件的同时可以打印文件。现在单台都拥有多个CPU的计算机,但是,并发执行的进程数目并不是由CPU数目制约的。操作系统将CPU的时间片分配给每一个进程,给人并行处理的感觉。多线程:在较低的层次上扩展了多任务的概念,一个程序同时执行多个任务。通常,每一个任务称为一个线程(thread),它是线程控制的简称。可以同时运行一个以上线程的程序称为多线程程序(multithreaded)。多进程:进程是程序的一次执行过程, 正在进
2022-05-25 14:31:41
105
原创 Vue实现简易计算器
主要采用了javascript中的eval函数和vue.js中的v-for 和v-model来实现计算器,其中处理括号的部分采用栈的特点处理。<head> <title>Title</title>//引入vue <script type="text/javascript" src="js/vue.js"></script>//简单设置下样式 <style> #app{
2022-05-24 14:06:45
2291
css+div实现小米商城主界面
2022-03-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅