- 博客(87)
- 资源 (2)
- 收藏
- 关注
原创 MySQL优化
1. MySQL介绍1.1 my.cnf1、二进制日志log-bin:主从复制#my.cnf# 开启mysql binlog功能log-bin=mysql-bin2、错误日志log-error:默认关闭,记录严重的警告和错误信息,每次启动和关闭的详细信息等。#my.cnf# 数据库错误日志文件log-error = error.log3、查询日志log:默认关闭,记录查询的sql语句,如果开启会降低MySQL整体的性能,因为记录日志需要消耗系统资源。# my,cnf# 慢查询sq
2021-09-02 08:09:47
289
原创 Spring5学习笔记3——持久层整合(转载三方+补充)
Spring5学习笔记3——持久层整合文章目录Spring5学习笔记3——持久层整合第三部分:整合持久层框架及相关问题第一章、持久层整合1. Spring框架为什么要与持久层技术进行整合?2. Spring可以与那些持久层技术进行整合?3. Spring与MyBatis整合3.1 MyBatis开发步骤的回顾3.2 Mybatis在开发过程中存在问题3.3 Spring与Mybatis整合思路分析3.4 Spring与Mybatis整合的开发步骤分析:3.5 Spring与Mybatis整合真实编码:3.
2021-08-27 18:25:35
274
原创 SpringMVC环境搭建
项目搭建1、maven构建一个普通web项目在idea下,新建一个maven管理的普通web项目,初始目录只有webapp,其他的目录像java目录resources目录需要自己建立并配置。2、导入依赖2.1)新建maven项目的时候就会弹出是否开启自动导入依赖,开启后无需再次设置,如果没有开启,可以在setting中,搜索auto 相关的关键字设置即可。2.2)如果之搭建SpringMVC的环境,只需要将一个spring-webmvc核心jar的依赖写入pom.xml后,maven自动导入其他依
2020-11-20 16:15:38
384
原创 Mybatis整合相关
Mybatis1. 快速上手1、maven构建项目,引入依赖2、创建实体类、表3、创建dao接口,实现mapper文件mapper文件的放置位置可以放在dao接口所在包下,但是为了便于管理,模块化开发,通常将其放置resources目录下。在resources目录下配置的mapper文件,要想打包后和类在同一个目录下,需要在resources目录下构建和dao包同名的目录结构。mapper文件重要的几个属性:namespace,各种动态sql标签的id属性,resultType属性等。4、
2020-11-20 16:14:52
163
原创 MyBatisReview
零散点记录入门1、接口式编程原生: Dao -------> DaoImplmybatis:Mapper --------> xxxMapper.xml2、SqlSession代表和数据库的一次会话,用完必须关闭3、SqlSession和Connection一样都是非线程安全,若声明为成员变量,就有可能存在资源竞争,每次使用都应该获取新的对象。4、mapper接口没有实现类,但是mybatis会为这个接口生成一个代理对象。代理对象的产生(接口和xml绑定)session.ge
2020-11-20 16:13:40
249
原创 Git
分布式版本控制系统(Distributed Version Control System,简称 DVCS)面世了。 在这类系统中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。分布式版本控制图解Figure 3. 分布式版本控制.更...
2020-11-20 16:11:08
230
原创 spring boot与mybatis整合,配置类别名,jar包部署出错
BUG复现在SpringBoot项目,重写MyBatis自动配置产生的SqlSessionFactoryBean,在其中配置了类别名。@Configuration@MapperScan(basePackages = "springboot.o2ov1.dao")public class MybatisConfiguration { @Autowired private MybatisProperties mybatisProperties; @Bean publi
2020-11-09 09:37:23
390
原创 JavaFrag2
6. 泛型程序设计泛型,即“参数化类型”,将原来的具体类型参数化。在不创建新类型的情况下,通过泛型指定不同的类型形参,来控制实际传入实参的具体类型。换句话说,就是在使用和调用时传入具体的类型。为什么使用泛型?能够对类型进行限定(比如集合)将运行期错误提前到编译期错误获取明确的限定类型时无需进行强制类型转化具有良好的可读性和安全性6.1 泛型类泛型类的定义一个简单的泛型类,和普通类的区别是,类名后添加了<T>一个泛型标识,“T"类型参数(类型形参),传入的是类型实参,当然
2020-10-28 22:45:44
650
2
原创 JavaFrag1
总结Java在官网也有相应的教程,去JDK官网也能了解到新版本JDK相关的特性,所以说直接浏览JDK官网是没有任何信息差的。(自己有充足时间的前提下)《On Java》、《Effective Java》是必看的两本书,读书百遍,其义自见。读一遍也许理解不了什么。Centos7安装JDK安装步骤:1、下载安装包,建议直接搜索jdk linux安装包,网上已经有人整理成帖子或者分享了网盘链接可以直接下载,省去了再去官网翻阅查找的麻烦。2、解压缩# 创建java文件夹备用mkdir /usr/lo
2020-10-27 19:36:56
636
原创 Tomcat(JavaWeb片段二)
TomcatTomcat文档官网Servlet4.0 JSR规范安装配置win官网下载压缩包,解压后就可以完成Tomcat的安装了。bin目录下执行startup.bat脚本文件启动tomcat,浏览器访问localhost:8080看到tom猫代表安装成功。端口占用,黑窗口一闪而过,百度。Linux官网下载相应的安装包,一般将其放置/usr/opt目录下。解压缩后,bin目录下执行./startup.sh命令启动Tomcat。Linxu下配置JAVA_HOMEvi /etc
2020-10-27 16:35:16
187
1
原创 邮件发送(JavaWeb片段九)
邮件传输协议SMTP协议用户连接上邮件服务器之后,要想给它发送一封电子邮件,需要遵循一定的通讯规则,SMTP协议就是用来定义这种通讯规则的。因此,我们通常也把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器)。POP3协议同样,用户若想从邮件服务器管理的电子邮箱当中接收一封电子邮件话,它连上邮件服务器后,也要遵循一定的通讯格式,POP3协议就是用来定义这种通讯格式的。因此,我们通常也把处理用户pop3请求(邮件接收请求)的服务器称之为POP3服务器(邮件接收服务器)。
2020-10-27 16:32:26
1070
原创 自定义注解(JavaWeb片段八)
自定义@WebServlet注解Servlet3.0提供了注解来注册实例化servlet,使得不再需要在web.xml中进行servlet的部署描述,简化开发。本文根据@WebServlet的功能,通过开发自定义注解和注解处理器来模仿一个@WebServlet,以此来了解@WebServlet的大致流程。1、开发用于配置Servlet的相关注解/** * 自定义WebServlet注解,模拟Servlet3.0的WebServlet注解 * @Target 注解的属性值表明了 @WebServle
2020-10-27 16:31:12
172
原创 过滤器监听器(JavaWeb片段七)
ThreadLocal+Filter处理事务demo整体结构事务过滤器类实现Filter接口,重写doFilter方法,主要的连接设置和绑定都在这里面进行,当对请求前的数据库连接设置完毕之后,一定要调用chain.doFilter()方法放行,然后根据结果来判断本次事务操作是否提交。捕获chain.doFilter()(主要关注)或者其他连接相关异常的时候,需要将异常范围变大。public class TransactionFilter implements Filter { @Overr
2020-10-27 16:29:47
169
原创 JSP技术(JavaWeb片段六)
JSP技术JSP概述JSP(Java Server Pages),建立在Servlet规范之上的动态网页开发技术。与HTML页面最大的不同是在JSP文件中,HTML代码与JAVA可以共同存在,Java代码可以实现页面动态内容的显示。JSP运行原理当客户端发送一个.jsp文件的请求时,容器如果找到相应的.jsp文件会将.jsp文件转化为java文件,最终生成一个Servlet实例响应给客户端,从jsp文件到servlet的转换是一个动态的过程,转化发生在第一次请求时,并不是容器一开始就会将.jsp文
2020-10-27 16:28:16
765
3
原创 会话技术(JavaWeb片段五)
会话技术会话:会话是指一个终端用户与交互系统进行通讯的过程。比如你用浏览器打开一个或多个标签,然后浏览信息,之后关闭浏览器或这个标签页,这个过程就叫做一次会话。当用户通过浏览器访问web应用时,通常情况下,服务器需要对用户的状态进行跟踪,并且需要保存一些用户产生的数据,这就需要用到了会话技术。Cookie1、Cookie介绍Cookie客户端技术,它用于将会话过程的数据保存到用户的浏览器。当用户再次访问服务器上的web资源时,就会带着各自的Cookie去访问,这样web应用就能知道当前是哪个用户正
2020-10-27 16:27:07
324
原创 请求响应对象(JavaWeb片段四)
HttpServletResponseHttpServletResponse扩展ServletResponse接口以在发送响应时提供特定于HTTP的功能。例如,它有访问HTTP头和cookies的方法。servlet容器创建一个HttpServletResponse对象,并将其作为参数传递给servlet的服务方法(doGet、doPost等)。回传数据的方法输出字符在服务器端,数据是以哪个码表输出的,那么就要控制客户端浏览器以相应的码表打开,比如:outputStream.write(“中国”.
2020-10-27 16:25:59
227
原创 Servlet(JavaWeb片段三)
ServletServlet概述Servlet是使用Java语言编写的运行在服务器端的程序。狭义的Servlet是指Java语言的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类。通常来说,我们把实现了Servlet接口的类称为Servlet。Servlet由Servlet容器提供,所谓的Servlet容器是指提供了Servlet功能的服务器,Servlet容器将Servlet动态地加载到服务器上。Servlet应用程序的体系结构如下图所示。Servlet请求首先会被HTTP
2020-10-27 16:22:56
225
1
原创 XML基础和Web基本概念(JavaWeb片段一)
XML基础概述xml(eXtensible Markup Language)即可扩展标记语言,xml是互联网数据传输的重要工具,它可以跨越互联网任何的平台,不受编程语言和操作系统的限制,可以说它是一个拥有互联网最高级别通行证的数据携带者。XML 的设计宗旨是传输数据,而不是显示数据。HTML被设计用来显示数据。XML 是 W3C 的推荐标准。一个完整的XML文档<?xml version="1.0" encoding="UTF-8"?><book> <ti
2020-10-27 16:21:19
299
原创 ThreadLocal记录
ThreadLocal概述源码分析:/** * This class provides thread-local variables. These variables differ from * their normal counterparts in that each thread that accesses one (via its * {@code get} or {@code set} method) has its own, independently initialized *
2020-10-24 19:00:59
113
原创 红黑树-结点的删除(C语言实现)
红黑树结点的删除首先来回顾一下二叉树结点的删除,总共分为了三种情况:删除叶子结点,此时可以直接删除删除结点有左子树或者右子树的单支结点,将左子树或者右子树结点直接推到删除的结点即可删除结点同时存在左子树和右子树(双支节点),此时可以将它的直接前驱或者直接后继代替删除结点的位置,删除该结点就转化为删除它的直接后继或者直接前驱的结点,而删除结点的直接后继或者直接前驱结点只有两种情况,要么是叶子结点要么是单支结点,此时问题就间接转化为了1,2两种情况,这里涉及到两个转化,一定要理解透彻。红黑树的删除
2020-10-21 17:04:41
644
3
原创 红黑树-结点的插入(C语言实现)
红黑树介绍红黑树本质上是一种二叉查找树,但它在二叉查找树的基础上额外添加了一个标记(颜色),同时具有一定的规则。这些规则使红黑树保证了一种平衡,插入、删除、查找的最坏时间复杂度都为 O(logn)。它的统计性能要好于平衡二叉树(AVL树),这也正解释了红黑树为什么使用这么广的原因。红黑树的5个特性:每个结点要么是红色,要么是黑色。根节点永远是黑色的。所有叶子结点(nil结点)都是黑色的。(这里说的叶子结点是NULL结点)每个红色结点的两个子结点一定都是黑色(不能有两个连续(父-子
2020-10-21 16:37:43
568
原创 C3P0连接池
c3p0连接池的配置由三种方法:1)直接通过硬编码的形式配置数据库连接、用户名、密码、连接池属性等方式去设置。2)类路径下配置c3p0-config.xml文件3)类路径下配置c3p0.properties文件问题复现:ComboPooledDataSource dataSource = new ComboPooledDataSource("c3p0.properties");当我对数据库连接池进行编译测试的时候,抛出了如下异常警告: named-config with name 'c
2020-10-18 15:34:20
348
原创 数据库原理与技术
数据库原理与技术(新增章节)2020-10基本概念数据库(DB):是按照一定结构组织并长期存储在计算机内的、可共享的大量数据的有机集合。解释:1)数据库中的数据是按照一定的结构数据模型来进行组织的,即数据间有一定的联系以及数据有语义解释。数据模型:数据库系统的核心和基础,是关于描述数据与数据之间的联系、数据的语义、一致性约束的概念性工具的集合。数据模型的分类:三种基本数据模型:层次模型、关系模型(重点掌握)、网状模型。面向对象数据模型谓词模型(逻辑模型)XML数据模型非SQL数据模型
2020-10-16 19:07:08
1495
原创 IDEA项目路径初探
标签:maven idea默认项目路径 类路径下的配置文件IDEA项目路径普通Java项目普通Java项目,标准目录结构src下的路径就是classpath类路径,每次编译都会将src目录下新增的类和资源文件打包进类路径。如下图,类文件和配置文件都会被编译打包进类路径maven构建Java项目maven标准目录结构:src -main –bin 脚本库 –java java源代码文件 –resources 资源库,会自动复制到classes目录里
2020-10-14 06:55:29
6387
1
原创 VMWare网络模式(Centos7)
VM三种网络模式在介绍VM三种网络模式之前,先聊一下CentOS 7安装时会有一项网络配置,可以让IP采用DHCP的方式动态获取,也可以静态设置,这就是对应IP获取的两种方式,一种是DHCP,另一种是静态分配的方式,通常在安装的时候,都默认是DHCP模式,这也就有可能出现网络上遇到的各种各样的问题,比如ping不通(互ping)、虚拟机访问不了外网,更改网络连接模式后之前正常的网络突然不正常了。动态主机配置协议DHCPDHCP(Dynamic Host Configuration Protocol),
2020-10-10 16:21:29
367
原创 XML介绍
XML基础概述xml(eXtensible Markup Language)即可扩展标记语言,xml是互联网数据传输的重要工具,它可以跨越互联网任何的平台,不受编程语言和操作系统的限制,可以说它是一个拥有互联网最高级别通行证的数据携带者。XML 的设计宗旨是传输数据,而不是显示数据。HTML被设计用来显示数据。XML 是 W3C 的推荐标准。一个完整的XML文档<?xml version="1.0" encoding="UTF-8"?><book> <ti
2020-10-05 20:25:24
325
原创 Java内部类
内部类一个定义在另一个类中的类,叫做内部类public class JavaClass { public static void main(String[] args) { OuterClass outerClass = new OuterClass(); // 第一种访问内部类的方法,通过在Outer内部实例化Inner outerClass.show(); // 第二种访问内部类方法,直接实例化内部类对象 OuterClass.I
2020-10-04 22:14:17
115
原创 校园商铺o2o实战(SSM版)
校园商铺O2O技术栈前台:后端:项目工具idea开发、maven构建项目、Git代码管理、墨刀设计产品交互模型。maven的安装配置TODO校园商铺o2o1. 实体类分析首先对o2o涉及到的实体类进行一定的分析,绘制了不太规范的ER图,这里省略了各个属性,主要是把握全体。然后是借助数据库MySQL WorkBench工具生成的一张关于实体类表的ER图。o2o实体类相关ER图o2o表相关ER图因为后期要做无限分级板块,比如现在有一级Category为美食饮品、广告印刷,那么可
2020-10-03 19:53:25
1620
1
原创 集合-List列表
列表ListList接口在Collection的基础上添加了许多方法,允许在list中间插入和删除元素。List主要有两种类型的具体实现:ArrayList:底层数组实现,动态调整集合的大小,擅长随机访问,但在ArrayList中插入和删除元素速度较慢。LinkedList:底层链表实现,擅长插入和删除,对于随机访问来说相对较慢。List下面以一个例子来介绍List接口中方法的使用:首先定义一个外部类Phone,提供一个静态方法list返回一组Phone集合。class Phone {
2020-09-25 15:55:41
907
原创 分布式事务介绍
本地事务本地事务:支持事务的参与者、服务器、资源管理器(RM)和事务管理器(TM)位于单机之上,仅限对单一数据库资源的访问控制。就是表和数据库位于一个服务器上,事务的操作都在这一个服务器上进行。起初,事务仅限于对单一数据资源的访问控制:而我们的本地事务由资源管理器进行管理:事务的ACID是通过InnoDB日志和锁来保证。事务的隔离性是通过事务的锁机制实现的,持久性通过redo log(重做日志)来实现,原子性和一致性通过Undo log来实现。UndoLog的原理很简单,为了满足事务的原子性,在
2020-09-21 20:25:37
155
原创 泛型程序设计
泛型,即“参数化类型”,将原来的具体类型参数化。在不创建新类型的情况下,通过泛型指定不同的类型形参,来控制实际传入实参的具体类型。换句话说,就是在使用和调用时传入具体的类型。为什么使用泛型?能够对类型进行限定(比如集合)将运行期错误提前到编译期错误获取明确的限定类型时无需进行强制类型转化具有良好的可读性和安全性泛型类泛型类的定义一个简单的泛型类,和普通类的区别是,类名后添加了<T>一个泛型标识,“T"类型参数(类型形参),传入的是类型实参,当然也可以用其他字母标识,但是".
2020-09-21 18:31:32
241
原创 volatile域
内存模型的相关概念计算机中执行程序时,每条指令都是在CPU中执行,执行指令的过程必然会涉及到数据的读取和写入。而程序运行时的数据是存放在主存(物理内存)中,由于CPU的读写速度远远高于内存的速度,如果CPU直接和内存交互,会大大降低指令的执行速度,所以CPU里面就引入了高速缓存。脑补当初学习OS时的图 CPU->内存 CPU->寄存器->内存 也就是说程序运行时,会将运算所需要的数据从主存中复制一份到高速缓存,CPU进行计算的时候可以直接从高速缓存读取和写入,当运算结束时,在
2020-09-20 21:30:42
294
原创 5. 异常、断言和日志
5.1 异常分类如图所示,Throwable是所有异常的父类,往下划分为两大门派Error和Exception。Error类是指Java运行时系统的内部错误和资源耗尽错误,应用程序不会抛出这种类型的对象。如果出现这种错误,听天由命…Exception又分解为两个分支,可以看做是受查异常和非受查异常或者是其他分支和RuntimeException;程序错误导致:错误的类型转化、数组访问越界、空指针等都属于运行时异常,“如果出现RuntimeException异常,那么就一定是你的问题”很有道理。受查异
2020-09-20 08:36:40
190
原创 13. 触发器
触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。13.1 创建触发器CREATE [DEFINER = user] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW [trigger_order] trigger_bodytrigger_time: { BEFORE |
2020-09-19 12:09:27
130
原创 12. 存储过程和函数
MySQL官方文档有存储例程(Store routines)一说,它的两种类型就是存储过程和函数。12.1 什么是存储过程和函数存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合。可以把一些复杂的数据处理逻辑封装在存储过程和函数,这样就减轻了后端人员编写SQL语句的负担,提高了数据处理的效率。存储过程和函数的区别:函数必须有返回值,而存储过程没有。存储过程的参数可以使用IN、OUT、INOUT类型,函数的参数只能是IN类型。省略则默认参数类型为IN。12.2 存储过程和函数的
2020-09-16 17:15:24
183
原创 11. 视图
11.1 什么是视图 视图是一种虚拟存在的表,并不在数据库中实际存在,对用户透明,行列数据来自定义视图的查询中使用的表,并且在使用的过程中动态生成的。视图相对于普通表的优势主要包括:简单:使用视图的用户无需关心查询的数据后面对应的表结构、关联条件等。用户透明。对用户来说是已经过滤好的符合条件的结果集。安全:使用视图的用户只能访问他们被允许查询的结果集。数据独立:对原表增加列并不会影响视图,原表修改列名,可以通过修改视图来修改结构,不会造成对访问者的影响。11.2 视图操作11.2.1 创
2020-09-16 17:12:08
84
原创 8005端口导致的阿里云上的tomcat无法外部访问
前提:Tomcat需要Java运行时环境的支持,如果Java和Tomcat的环境变量都已经配置成功,启动后bash会打印相应的log,比如用到了哪个位置的jdk。解决方案:1、安全组策略是否开启,开启8080之后,默认情况下,输入公网IP:8080就可以访问。如果开启的是80端口,则需要修改conf/server.xml文件中的Connector标签中的port端口号,将其改为80端口,然后在浏览器中直接输入公网IP即可访问。2、端口问题查看当前端口情况[root@iz2zehjjhi300ky
2020-09-15 16:12:28
637
原创 10. 索引的设计和使用
10.1 索引概述数据库索引:是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据表中数据。索引的实现通常使用B树及其变种B+树。MySQL索引:索引用于快速查找具有特定列值的行。没有索引,MySQL必须从第一行开始,然后通读整个表以找到相关的行。索引的优点通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。加快数据的检索速度。减少磁盘I/O次数加速表和表之间的连接。在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。通过使用索引,可以在查询的过程
2020-09-15 14:40:15
192
ShareX-portable.zip 最新版
2020-03-13
Xshell(免费SSH客户端)v6.0.0189无限制版.zip
2020-02-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人