- 博客(43)
- 资源 (2)
- 收藏
- 关注
原创 常用设计模式 (一、单例模式)
1)单例模式保证了系统内存中该类只存在一个对象,节省了系统资源,对于一些需要频繁创建销毁的对象,使用单例模式可以提高系统性能2)当想实例化一个单例类的时候,必须要记住使用相应的获取对象的方法,而不是使用new3)单例模式使用的场景需要频繁的进行创建和销毁的对象、创建对象时耗时过多或耗费资源过多(即重量级对象),但又经常用到的对象、工具类对象、频繁访问数据库或文件的对象(比如数据库、session工厂等)httpshttpshttps。...
2022-08-01 09:51:01
135
1
原创 sql中的聚合函数:where,having
where 是一个约束声明在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且where后面不能使用 “聚合函数”having 是一个过滤声明所谓过滤是在查询数据库的结果返回之后进行过滤,即在结果返回之后起作用,并且having后面可以使用“聚合函数”使用角度:where之所以不能使用聚合函数是因为where的执行顺序在聚合函数之前select * from user where avg(age) >18 #错误示范...
2022-04-26 16:01:04
958
原创 select distinct 去重语句
SELECT DISTINCT在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。distinct 关键词用于返回唯一不同的值。SELECT DISTINCT column_name FROM table_name;
2022-04-22 14:30:28
5022
原创 Mysql中的Decimal类型是什么?
decimal详细介绍decimal(a,b)参数说明:a:指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度为38.b:指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从0~a之间的值,默认小数位数是0. 举例说明,11615.23653234568这个数存你说的三个格式decimal:11615decimal(3):999decdimal(3,2):9.99decimal(10,5)11615.23653超出精度范围的数会被强制进位并只显示数据类型定义的格式
2022-04-21 14:21:15
2886
原创 Linux 配置redis 开机自动启动
编写脚本vim /etc/init.d/redis内容如下#!/bin/bash# chkconfig: 2345 10 90 # description: Start and Stop redis PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT=6379 EXEC=/usr/local/redis/bin/redis-server #对应你自己的配置地址REDIS_CLI=/usr/local/redis/bi.
2022-04-20 11:18:43
1376
原创 Linux 上 redis 安装配置
redis安装把tar包放到 /opt/ 目录下并解压升级gcc版本安装redis6.0以上时,需要升级gcc版本# 查看gcc版本gcc -v # 升级gcc版本yum -y install centos-release-sclyum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilsscl enable devtoolset-9 bash # 临时生效# 加入环境变量
2022-04-19 15:52:14
585
原创 spring 动态代理模式
动态代理代理模式为某一个对象(委托类)提提供一个代理(代理类),用来控制这个对象的访问。委托类和代理类有一个共同的父类或父接口。代理类会对请求做预处理、过滤,将请求分配给指定对象代理模式在java开发中是一种比较常见的设计模式。设计目的旨在为服务类和客户类之间插入其他功能,插入的功能对于调用者是透明的,起到伪装控制的作用。如住房的例子:房客、中介、房东;对应于代理模式中即:客户类、代理类、委托类(类代理类)代理模式设计原则代理类 和 委托类 具有相似的行为(共有)代理类 增强 委托
2022-04-18 15:21:18
429
原创 bean对象 生命周期
bean对象生命周期在Spring中,Bean的生命周期包括Bean的定义、初始化、调用、销毁 4个阶段bean初始化 方式一在bean标签配置 init-method属性 来指定初始化时调用的方法public class TypeDao { //定义初始化时被调用的方法 public void test1() { System.out.println("TypeDao..."); }}xml配置文件 bean标签<!--通过init-
2022-04-18 14:47:12
183
原创 bean对象作用域
bean对象作用域singleton 单例作用域默认情况下,Spring容器中加载Bean对象都是单例作用域。Spring容器在启动时会实例化bean对象,并将对象设置到单例缓存池中,下次获取时直接从缓存池中得到。<bean id="typeDao" class="com.zh.dao.TypeDao" scope="singleton" lazy-init="false"/>懒加载lazy-init属性,表示懒加载,默认为false,即Spring容器启动时实例化如果为
2022-04-18 14:28:06
251
原创 Spring 依赖注入 DI
手动注入set方法注入定义TypeDao.javapublic class TypeDao { public void test1() { System.out.println("TypeDao..."); }}定义TypeService.java,service层set方法 手动注入bean对象public class TypeService { //bean对象 private TypeDao typeDao; /**
2022-04-18 14:10:03
299
原创 bean对象实例化 模拟实现
定义测试类UserDao 测试方法test()public class UserDao { public void test(){ System.out.println("UserDao类"); }}定义UserDao的bean对象 userDao<?xml version="1.0" encoding="UTF-8"?><beans> <bean id="userDao" clazz="com.zh.dao.User.
2022-04-18 13:59:39
137
原创 springMVC 最新复习
#Spring MVCMVC模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计思想。MVC模式的主要核心思想是将业务逻辑从页面中分离出来,允许它们单独改变而不会互相影响。Spring MVC中央处理器是DispatcherServlet;应用控制器拆为 处理器映射器(handler mapping)进行处理器管理,和 视图解析器(View Resolver)进行视图管理;支持本地化/国际化(Locale)解析以及文件上传等;提供了灵活的数据校验、格式化和数据绑定机制
2022-04-14 16:44:11
238
原创 spring IOC AOP
spring学习内容Spring IOC 控制反转、依赖注入Spring AOP 面向切面编程Spring JDBC + 事务Spring Task 定时调度Spring Mail 邮件发送Spring的作用Controller层 Servlet(接收请求、响应数据、地址配置、页面转发) 对应框架:Spring MVCService层 Spring框架并不是针对service层的业务逻辑的,service没有适合框架DAO层 JDBC操作
2022-04-02 10:14:48
199
原创 Linux 离线安装 mysql 5.7
mysql检查系统是否自带mysql和mariadb,有的话删除把下载好的 mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz 放到 /opt/ 路径下解压tar -zxvf /opt/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz移动并重命名mv /opt/mysql-5.7.37-linux-glibc2.12-x86_64 /usr/local/mysql-5.7.37递归修改权限为 my
2022-03-09 17:13:05
1681
1
原创 Linux 入门笔记 持续更新
linux 入门笔记网络连接的三种模式1.桥接模式:虚拟系统可以和外界直接通讯,容易造成IP冲突2.NAT模式:网络地址转换模式,虚拟系统可以和外部系统通讯,不造成IP冲突;但只能从虚拟系统访问外界,外界无法访问虚拟机3.主机模式:独立的系统虚拟机快照在使用虚拟机时,如果想回到某一个状态,也就是说你担心可能某些误操作可能造成系统异常,需要回到原先某个正常运行的状态共享文件方式一:vmtools1.最高权限进入系统,重新安装VMware Tools,进入VMwareTools目录,将
2021-11-10 09:44:55
173
原创 Map接口实现:HashMap
Map接口1.Map用于存放具有映射关系的双列数据:key-value 2.Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中3.Map中的key值不允许重复,value值可以重复,(key为null,只能有一个)4.常用String类作为Map的key5.key和vaule存在单向一对一关系,即通过指定的key总能找到对应的valueMap常用方法remove(Object key) 删除size() 返回元素个数isEmpty() 判断是否
2021-10-14 17:04:52
308
原创 Set接口实现:HashSet、LinkedHashSet
Set1.无序(存放和取出的顺序不一致),没有索引,不能用普通for循环遍历2.不允许重复元素,最多有一个null3.取出的顺序固定,按hashCode排列HashSet1.HashSet的底层是HashMap,HashMap的底层是:数组+链表+红黑树例:数组+链表public class HashSet源码解析 { public static void main(String[] args) { //创建Node[] 数组 Node[] tab
2021-10-14 16:59:39
194
原创 List接口实现:ArrayList、LinkedList、Vector
#ListList 介绍list集合每个元素都对应索引,索引从0开始list集合中元素有序(添加和取出顺序一致),可重复常用方法 get 获取 set 修改 indexOf 返回在集合中首次出现的位置 lastIndexOf 返回在集合中最后一次出现的位置 subList 返回从fromIndex到toIndex位置的子集合,包括前面List接口练习 使用 list接口实现类添加三本书,并遍历 要求: 1.按价格排序,从低到高(冒泡排序) public clas
2021-10-14 16:52:30
434
原创 HashMap源码分析
Map接口1.Map用于存放具有映射关系的双列数据:key-value 2.Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中3.Map中的key值不允许重复,value值可以重复,(key为null,只能有一个)4.常用String类作为Map的key5.key和vaule存在单向一对一关系,即通过指定的key总能找到对应的valueMap常用方法remove(Object key) 删除size() 返回元素个数isEmpty() 判断是否
2021-10-14 11:01:07
78
原创 ArrayList扩容源码分析
ArrayList的底层操作机制1.ArrayList中维护了一个Object类型的数组elementData2.当创建ArrayList对象时,如果使用的是无参构造器,则初始elementData的容量为0,第一次添加则扩容elementData为10,如需要再次扩容,则扩容elementData为1.5倍3.如果使用的是指定大小的构造器,则初始elementData容量为指定大小,如果需要扩容,则直接扩容elementData的1.5倍源码分析...
2021-09-24 16:17:16
94
原创 vue底层逻辑:MVVM模型
MVVMV :view(视图层):展示数据M :model(模型层):data中的数据VM :viewModel(视图模型层),vue实例对象Vue.js 是一个提供了 MVVM 风格的双向数据绑定的 Javascript 库,专注于View 层。它的核心是 MVVM 中的 VM,也就是 ViewModel。ViewModel负责连接 View 和 Model,保证视图和数据的一致性。其核心是View 和 ViewModel 双向数据绑定,使ViewModel 的状态改变可以自动传递给
2021-08-23 17:05:36
235
原创 一篇文章入门多线程,2021
普通方法调用和多线程线程基本规则线程有独立的执行路径 程序运行中,即使没有自己创建线程,后台也会有多个线程,如主线程、gc线程 main() 称为主线程,为系统的入口,用于执行整个程序 在一个线程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序不受人为干涉 对同一资源操作时,会存在资源抢夺问题,需要加入并发控制 每个线程在自己的工作内存交互,内存控制不当会造成数据不一致多线程创建的三种方式继承Thread类创建线程方式一:
2021-07-06 16:58:19
83
原创 简单明了的带你理解springboot原理和三大核心注解
一、springboot的定义Spring Boot是伴随着Spring4.0共同诞生的,它的目的就是简化spring的配置及开发,并协助开发人员可以整体管理应用程序的配置而不再像以前那样需要做大量的配置工作,它提供了很多开发组件,并且内嵌了web应用容器,如tomcat和Jetty等。其目的便是使我们的开发变得简化并且能大幅度提高开发人员的开发效率,为了简化Spring功能的配置我们可以引入或启动我们需要的Spring功能。这样做的好处就是避免开发人员过多的对框架的关注,而把更多的精力与时间放在系统的
2020-12-28 10:47:37
857
原创 mybatis-plus入门
1、配置1.1、application.propertiesmysql8.0以上,springboot 2.1,配置文件发生变化#mysqlspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8spring.datasource.username=roots
2020-12-09 11:36:41
1807
转载 MySQL的安装与配置——详细教程
免安装版的Mysql MySQL关是一种关系数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用的标准化语言,其特点为体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,在 Web应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 在本博文里,我主要以Mysql免安装版为例,帮助大家解决安装与配置mysql的步骤。 首先:要先进入mysql官网里(M..
2020-12-07 10:30:01
301
原创 springmvc笔记补充—请求转发重定向,异常处理,拦截器
请求转发和重定向当处理器对请求处理完毕后,向其他资源跳转时,有两种跳转方式:请求转发 与 重定向 。而根据所要跳转的资源类型,又分为两类:跳转到页面与跳转到其他处理器。注意,对于请求转发的页面,可以是 WEB-INF 中的页面;而重定向的页面,是不能为 WEB-INF中的页面。因为重定向相当于用户再次发出一次请求,而用户是不能直接访问 WEB-INF 中资源的。springmvc框架把原来的servlet中的请求转发和重定向进行了封装,现在可以使用简单方式实现了。 forward:表
2020-11-24 09:59:10
2861
2
原创 springmvc笔记回顾——持续更新
springmvc 概述springmvc定义:是基于spring的一个框架,实际上就是spring的一个模块,专门是做web开发的。理解为servlet的升级。web开发底层是servlet,框架是在servlet基础上面加入一些功能,让开发方便。对比:springmvc:就是一个spring。spring是容器,ioc能够管理对象,使用<bean>标签,@Component,@Repository,@Service,@Controller标签。 springmvc:能够创建
2020-11-12 16:21:22
9677
12
原创 mybatis学习笔记——持续更新——附b站视频网址
mybatis主要类的介绍Resources: mybatis中负责读取主配置文件String config = "mybatis.xml";InputStream in = Resources.getResourceAsStream(config);SqlSessionFactoryBuilder: 创建SqlSessionFactory对象SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();SqlSe
2020-11-09 10:22:55
3904
6
原创 Linux配置JDK环境——步骤详解
Linux安装docker1.安装dockeryum install docker2.启动dockersystemctl start docker3.设置开机启动dockersystemctl enable docker4.查看docker版本,关闭dockerdocker -vsystemctl stop docker docker配置阿里云镜像加速[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bAY2hRLy-1604310390198)(C
2020-11-02 17:49:04
465
原创 内网环境安装Docker,我见过最简单方法
下载 Dockerhttps://download.docker.com/linux/static/stable/x86_64/解压压缩文件tar -zxvf docker-19.03.8.tgz将解压好的 Docker 文件复制到 /usr/bin 目录下cp docker/* /usr/bin/在 /etc/systemd/system/ 目录下新增 docker.service 文件,将 docker 注册为服务,内容如下[Unit]Description...
2020-10-20 16:53:49
2042
1
原创 docker安装Tomcat,404解决方案
查找tomcat的containerID,进入tomacat目录:[root@promote ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb52c4a46a432 nginx "/docker-entry
2020-10-10 11:13:04
252
1
原创 CentOS安装redis docker镜像
在Xshell中连接CentOS系统启动docker容器[root@promote ~]# service docker startRedirecting to /bin/systemctl start docker.service查看本地镜像[root@promote ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEdock.
2020-10-09 10:46:54
257
原创 使用阿里云对docker拉取镜像加速
使用docker时,需要下载很多镜像,直接访问https://hub.docker.com/_/mysql?tab=tags外网下载又太慢。阿里云可以加速下载:1、注册登录阿里云,淘宝支付宝账号直接扫码登录:https://www.aliyun.com/2、直接搜索:容器镜像服务(第一次需要开通)3、复制加速地址(步骤3):4、在/etc/docker目录下新建文件daemon.json将加速器地址写入:[root@promote ~]# vim /etc/docke.
2020-09-30 12:34:01
576
原创 MyBatis 第一个入门案例(建表到查询)
目录:数据库建表:执行结果:加入maven依赖:在pom.xml中 添加mybatis依赖和mysql驱动<!--mybatis依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.4</version...
2020-09-28 16:06:20
176
原创 Java自学路线 —— b站视频篇
前言:基本上都是b站上高质量的教学视频,而且每个模块都有推荐的视频观看。博主本人也在自学java,希望和各位共勉。入门肯定要从视频看起,后期可以2倍速度观看,笔记和博客当作复习。编程没有多少深奥的东西,难点就是知识点多,难点就是需要你坚持去学。台湾漫画家蔡志忠说过:人生不是走斜坡,你持续走就可以走到巅峰;人生像走阶梯,每一阶有每一阶的难点,学物理有学物理难点,学漫画有漫画的难点,你没有克服难点,再怎么努力都是原地跳。如果一件事最重要最核心的部分没做到位,那么其他细枝末节做的再好,也可以徒劳无功,
2020-08-08 10:34:37
2456
原创 hibernate中实体类:瞬时态、持久态、托管态的介绍和实现
一 先介绍hibernate实体类的 增删改查 操作1 添加调用session.save()方法实现2查询 根据id调用session.get()方法实现3修改先查询,后修改4删除操作调用session.delete()方式实现二hibernate中实体类:瞬时态、持久态、托管态 的介绍和实现1瞬时态 : 对象里面没有id值,对象与session没有关联,一般做添加操作2持久态 : 对象里...
2020-08-07 17:52:04
499
原创 hibernate的映射文件和核心配置文件
项目结构:实体类 User.javapublic class User { /*hibernate要求实体类有一个属性唯一的*/ private int uid; private String username; private String password; private String address; public int getUid() { return uid; } public void.
2020-08-05 21:02:45
223
原创 hibernate环境搭建,实现update添加操作(IDEA版)
第一步:导入jar包lib\required数据库连接池jar包第二步:创建实体类注意:使用hibernate时候,不需要自己手动创建表,hibernate会自动把表创建;get/set方法别忘了第三步 配置实体类和数据库表一一对应关系(映射关系)使用配备文件实现映射关系1、创建xml格式的配置文件映射配置文件名称和位置没有固定要求建议:在实体类所在包里面创建,实体类名称.hbm.xml2、配置...
2020-08-03 20:33:32
260
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人