- 博客(68)
- 资源 (1)
- 收藏
- 关注
原创 MySql
如果现在有两个事务:一个是删除条件数据,一个是插入一条数据,在RC隔离级别下,删除事务在执行完但是未提交时插入事务执行完并提交,最后删除事务提交,这样在主库中是会只有一条刚插入的数据,但是由于bin log记录的是SQL原文,这是从库拿到的执行语句就是先插后删,从库就没有数据,这就导致主备不一致。悲观锁:认为并发修改的概率很高,所以修改数据时直接对数据加锁。InnoDB的RR级别中,加锁的基本单位是Next-Key Lock,只要扫描到的数据都会加锁,唯一索引上的范围查询会访问到不满足条件的第一个值为止。
2025-07-06 15:38:14
738
原创 Mybatis相关
二级缓存基于命名空间(namespace),可配置全局或者局部生效,可以跨会话,在多个会话之间共享数据,但是二级缓存不适用于多表查询,比如联表查询两张表student和class,获取结果result,namespace=student的空间中缓存了result,此时namespace=class下更新了class,namespace=student是不会更新的,这会导致脏数据。每次执行SQL语句时,MyBatis框架会依次调用所有插件的Intercept方法,实现对SQL语句的拦截和修改。
2025-07-05 11:55:51
647
原创 spring相关
声明式事务是基于AOP的,AOP又是基于动态代理实现的,代理失效可能的场景有类的内部调用、final方法、static方法,这时候无代理则事务也不生效。然后就是初始化Bean:initiallizeBean方法,其中包括检查Aware,调用BeanPostProcessor的前置处理,调用InitiallizingBean的afterPropertiesSet方法或自定义的初始化方法,调用BeanPosrProcessor的后置处理方法,在这个后置方法里完成了AOP的代理的创建。
2025-07-04 19:07:19
770
原创 java并发相关
在java内存模型(JMM)中,所有变量都存在于主内存中,每个线程有自己的工作内存,这个工作内存中存放的是主内存中的变量的副本,线程对变量的操作只在自己的工作内存中,而不是直接读写主内存。volatile的可见性:volatile变量在被修改时,JVM会向处理器发送一个lock前缀的指令,将缓存中的变量回写到系统主存中,其他处理器的缓存由于由于遵守了缓存一致性协议,也会把这个变量的值从主存加载到自己的缓存中,这几保证了volatile在并发编程中其值在多个缓存中是可见的。调用线程会尝试执行任务。
2025-07-03 18:56:45
568
原创 Redis相关
如上,我们在讨论CAP时其实有一个既定的事实那就是分布式系统,分布式环境下,网络分区是必然的,那就是要满足P,至于提升P,需要提升基础设施的稳定性,重在长期的稳定的运营改进。其次大多数大型互联网应用的场景中,主机众多,部署分散,集群规模不断扩大,节点故障、网络异常是常态,为了保证服务,其实多是保证高可用,这种情况下,其实说是舍弃了一致性,也并不准确,其实更多的是退而求其次保证最终一致性来保证数据的安全。主从复制:一个主节点多个从节点,主节点负责写和读操作,从节点负责复制主节点的数据并只能提供读操作。
2025-06-13 22:44:37
1155
原创 框架简述 && 带你认识 Mybatis
框架概述什么是框架框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;或者定义为应用开发者定制的应用骨架。综上,框架是某种应用的半成品,是一组组件,供开发者选用以完成系统构建。框架一般处在低层应用平台(如 J2EE)和高层业务逻辑之间的中间层。软件设计思想面向对象——三层架构(表现层、业务层、持久层)区分层次的目的即为了“高内聚,低耦合”的思想① 持久层:该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。采用DAO模式,建立实体类和数据库表映射(OR
2021-06-27 16:22:44
581
原创 Maven怎么用?
Maven是什么?Maven简介 Maven 是一个项目管理工具,包含了一个项目对象模型(POM : Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System )和用来运行定义在生命周期阶段中插件目标的逻辑。Maven的优势 能帮你构建工程,管理 jar包,编译代码,还能帮你自动运行单元测试,打包,生成报表,甚至能帮你部署项目,生成 Web 站点。Ma
2021-06-27 16:14:02
1154
原创 监听器简单了解
概述监听器就是一个实现了特殊接口的Java类,这个Java类用于监听另一个Java类的方法调用和属性的改变,当被监听的对象发生了上述事件后,监听器的某个方法将会立即被执行。用途:用来监听其他对象的变化的,主要应用在图形化界面开发上。监听器的术语:事件源:指的是被监听的对象(汽车)监听器:指的是监听的对象(报警器)事件源和监听器的绑定:(在汽车上安装报警器)事件:指的是事件源对象的改变(汽车被踹了一脚)监听器入门案例创建WEB项目建包和类:package com.dayu.listene
2021-06-26 09:28:02
1084
原创 XML--可扩展标记语言
创建XML文件–格式要求1)第一行必须是版本声明等信息2)必须要有唯一的根标签3)不区分大小写,推介使用小写4)自定义的标签名不能是关键字5)标签之间必须正确嵌套6)标签名不能用数字开头7)可以有属性,属性格式:属性名=”属性值”XML文件的作用1)配置文件2)结构化存储数据3)数据交换(典型应用:AJAX)dom4j解析XML文件xpath解析XML文件...
2021-06-26 09:26:37
180
原创 MVC设计模式
分层开发:三层架构表示层:与用户交流的页面业务逻辑层:表示层与数据访问层之间的桥梁,实现逻辑控制数据访问层:与数据库打交道三层架构优缺点优点:1)结构清晰,耦合性低2)可维护性高,可扩展性大3)有利于多人同时开发4)适应需求的变化缺点:1)降低系统性能2)增加了代码量MVC模式全名Model View Controller:M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,业务逻辑、数据、界面显示分离。MVC工作流程:MVC模式与三层架
2021-06-26 09:24:10
224
原创 JSTL (JSP标准标签库)
JSTL的标签库c标签(core标签库)fmt标签(国际化标签库)xml标签sql标签jstl函数库(EL函数)JSTL的使用1、引入JSTL的jar包2、新建jsp页面3、在jsp中引入标签库<%@ taglib uri="标签库的路径(alt+/进行选择)" prefix="标签库的别名"%> 比如引入核心标签库core标签库 之前的写法: <% pageContext.setAttribute("name","aaa");
2021-06-26 09:21:11
232
原创 EL表达式语言
作用EL和JSTL一起使用取代JSP页面中嵌入Java代码功能语法:${EL表达式}EL获取数值EL执行运算EL获取Web开发常用的对象EL表达式语句在执行的时候,会调用pageContext.foindAttribute()方法,分别从page、request、session、aaplication范围内查找对象,找到就返回相应对象,找不到就返回""(不是null,是空字符串)。EL获取的数据需要在如上四个作用域中。EL获取数值<% pageContext.setAttribute
2021-06-26 09:16:32
192
原创 会话技术(Cookie && Session)
1、会话技术的概述用户打开一个浏览器,点击多个超链接访问服务器的web资源,然后关闭浏览器,整个过程就是一次会话。每个用户与服务器进行交互时,都会产生一些各自的数据,程序想要把这些数据进行保存就需要使用会话技术。为什么需要会话技术?如下例:购物request域:保存的数据只在一次请求范围内有效,每次响应结束后,request会被销毁,其中保存的数据丢失。用户的多次购买请求发出后,最后发现除了最后一次之前的数据都丢失了。ServletContext域:保存的数据在整个web项目运行时都有效,当w
2021-06-26 09:11:57
566
原创 动态网页开发技术(三):jsp
Jsp概述java server pages—java服务器页面,是一种动态网页技术标准,在传统的网页HTML中插入Java程序段(Scriptlet和JSP标记tag),从而形成JSP文件。JSP=HTML+Java代码+JSP自身东西。因为Servlet存在如下缺点,所以sun公司开发了新的动态网页开发技术JSPServlet的缺点:Servlet需要进行配置,不方便维护Servlet很难向网页中输出HTML页面内容jsp的运行原理,浏览器发送请求到服务器,服务器找到对应的jsp文件,将其翻
2021-06-26 00:24:16
2219
1
原创 动态网页开发技术(二):Servlet
ServletConfig对象1)ServletConfig是用来获得Servlet的相关配置的对象2)获得ServletConfig对象—通过Servlet的实例调用getServletConfig()方法3)ServletConfig对象的API获得Servlet的初始化参数(了解)这个只是获取单独Servlet的内部的参数,多个Servlet则使用ServletContext对象中的方法---web,xml中配置初始化参数,比如: <servlet>
2021-06-26 00:17:13
199
原创 动态网页开发技术(一):Servlet
1. Servlet1.1 Servlet概述java EE ApiServlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。1.2 Servlet的使用编写一个Java类实现Servlet接口—>重写service()方法;在web.xml中配置这个类(方便服务器识别并执行和访问)。配置web.xml: 配置servle
2021-06-26 00:01:48
916
1
原创 Tomcat服务器 && Servlet
1. 软件架构(C/S,B/S)1、C/S架构,即Client/Server(客户机/服务器)结构。C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。但是该结构的程序是针对性开发,变更不够灵活,维护和管理的难度较大。通常只局限于小型局域网,不利于扩展。并且,由于该结构的每台客户机都需要安装相应的客户端程序,分布功能弱且兼容性差,不能实现快速部署安装和配置,因此缺少通用性,具有较大的局限性。2、B/S架构,即Browser/Server(浏
2021-06-25 23:51:58
253
原创 JAVA8的新特性之Stream
JAVA8的新特性之Stream1、概述:在jdk1.8中,提供了一个Stream,可以对数据进行过滤2、好处:比不断自定义循环,要简单很多Stream类型数据的获取1、Collection 的获取调用stream()方法,返回Stream类型的实现类对象2、Map的获取,不能直接获取Stream类型(1)keySet().stream();(2)entrySet().stream();3、数组的获取Stream中的of方法,Stream.of(数组)package com.uji
2021-06-22 21:37:21
496
1
原创 JAVA8的新特性之函数式接口
JAVA8的新特性之函数式接口1、Lambda表达式使用的前提,就是接口必须是一个函数式接口2、定义在接口中,只有一个抽象方法3、检查是否是函数式接口用的注解@FunctionalInterface如果不是函数式接口,编译报错4、函数式接口理解(1)函数:更想让他表达的是方法的内容,由于方法不在任何类中,所以称为函数(2)函数式接口:其实想表达的是一个函数的声明5、作用:使用函数式接口表达方法的声明:使用函数式接口的实现类对象表示函数的实现6、使用原因:java中不支持将函数作为一
2021-06-22 21:35:09
273
1
原创 案例:用户登录(html--servlet--mysql)
案例:用户登录(html–servlet–mysql)需要用到的内容:HTML+CSS,Tomcat,Servlet,DBUtils,c3p0,MySQL1、创建web项目student_management1)导入jar包,放入WEB-INF下的lib文件夹中—c3p0,dbutils,mysql,2)在src 下创建包com.offcn.dao----放操作数据库的文件,即增删查改com.offcn.javabean—对应数据库的实体类com.offcn.servlet3)c3p0的配置
2020-06-21 19:53:50
666
原创 数据库MySQL基础---事务相关特性--连接池DBCP--C3P0--JavaBean--DBUtils工具
事务相关特性–连接池DBCP–C3P0–JavaBean–DBUtils工具事务的概念事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。完成一个需求,需要执行多条SQL语句时,我们就可以用事务将这几条SQL语句绑定成一个逻辑单元;要么全部执行成功,如果中任意一条出现问题,则全部失败,已执行部分要回滚(回到未执行状态)。事务的特性(ACID):1)原子性Atomicity :事务是数据库的逻辑工作单位,事务
2020-06-20 21:14:24
386
原创 数据库MySQL基础---JDBC开发步骤--JDBC封装工具类--PreparedStatement实现CRUD操作
JDBC简介1、JDBC定义 Java数据库连接(Java Database Connectivity,简称JDBC): 是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。 JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。 JDBC原理: 由sun提供的一套访问数据库的规范(一组接口)。各个数据库厂商就会遵守这一套规范,提供一套访问自己公司数据库的程序, 这套程序就叫数据库驱动。2、主要用
2020-06-20 09:31:24
605
原创 数据库MySQL基础---约束、表关系、聚合函数、连接查询、分组查询和子查询
约束1、主键约束 亦成为主码,关键字:primary key,设置了主键约束的列的数据要求:不能为空,不允许重复。2、自增长策略 针对主键,不需要手动给值,自动的值是当前表中该列最大值+1 关键字:auto_increment 自增长的特点: 1)只有整型数据列才能设置自增长 2)只有主键才会设置自增长 3)自增长列在插入数据时不用给值 4)初始值为1,增量为1 5)默认的存储引擎下,自增列的数据一旦被使用就不会再出现3、唯一约束 限定某列值不能重复,唯一约束允许值为空。通常应用于
2020-06-19 20:52:07
410
原创 数据库MySQL基础---DDL/DML/DQL
MySQL基础数据库简介数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。与数据库相关的概念 数据库系统:DBS(DataBase System):由数据库、数据库管理系统、数据库管理员组成。 数据库管理系统:DBMS(DataBase Management System)是一种操作和管理数据库的大型软件,用于建立,使用和维护数据库。 数据库管理员:DBA(DataBase Administrator),管理和维
2020-06-19 20:49:15
2437
原创 Web前端基础---JQuery特效及操作CSS、属性和DOM+表单验证
jQueryjQuery特效:1、显示隐藏 显示:show(毫秒值,回调函数):无参时瞬间显示,有参时按照指定的事件慢慢显示出来,回调函数是整个显示出来以后执行的函数。 隐藏:hide(毫秒值,回调函数):无参时瞬间隐藏,有参时,按照指定的时间慢慢隐藏,回调函数是整个隐藏起来后执行的函数。2、淡入淡出效果淡入显示:fadeIn(毫秒值,回调函数):无参时瞬间显示,有参时,按照指定的时间慢慢显示出来,回调函数是整个显示出来以后执行的函数。淡出隐藏:fadeOut(毫秒值,回调函数):无参时瞬间
2020-06-19 20:47:09
316
原创 Web前端基础---JQuery的页面加载+选择器+电子时钟案例
Day04 jQueryjQuery的页面加载<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>jQuery的使用方式</title> <script type="text/javascript" src="js/jquery-3.4.1.js" ></script> <script type="text/jav
2020-06-19 18:56:24
470
原创 页面弹球练习
页面弹球练习<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>页面弹球代码1</title> <style type="text/css"> html{ height: 100%; } body{ height: 100%; overflow: hidden; margin: 0; }
2020-06-14 20:46:38
276
原创 Web前端基础---JavaScript函数&事件及其绑定&DOM模型&BOM模型
Day03 JavaScriptJavaScript是一种属于网络的高级脚本语言,被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。JavaScript作用可以通过事件操作HTML的元素、读写元素内容、验证提交数据、检验浏览器信息。也可以在HTML中添加动画效果。JavaScript组成ECMAScript(ECMA标准):核心部分,包含基本语法,语句,事件,对象等DOM(Do
2020-06-14 20:44:45
388
原创 Web前端基础---CSS样式--盒子模型--浮动与定位
Day02 CSS样式DIV和CSS DIV是层叠样式表中的定位技术,全称DIVision,即为划分。有时可以称其为图层。 DIV元素是用来为HTML文档内大块(block-level)的内容提供结构和背景的元素。即<div> 标签。 CSS:层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML或XML等文件样式的计算机语言。CSS可以将样式定义在HTML元素的style属性中,也可以将其定义在HTML文档的head部分,也可以将样式声明在一个专门
2020-06-14 11:00:06
971
原创 Web前端基础---认识HTML及其组成---标签、框架
HTMLHTML:Hypertext Markup Language 超文本标记语言超文本:能够记录文字、标点符号,输入文本、图片、视频、音频和超链接等内容标记(标签):将所有内容封装成标签,需要时使用对应标签HTML用于编写网页,可以使用开发者模式(F12)查看源码。特点:(1)HTML文件名的扩展名为.html或.htm(2)根标签是<html>,里面分为两个部分<head> , <body> (3)标签名称不区分大小写,推荐小写(4)大部分标
2020-06-13 14:48:25
499
1
原创 Java基础---学Java怎么能不了解多线程---Lambda表达式
多线程程序,进程,线程1、程序(program):一个固定的运行逻辑和数据的集合,是一个静态的概念,一般都存储在磁盘中2、进程(process):一个正在运行的程序,是一个程序的一次运行,是一个动态的概念,有自己独立的资源分配,是一个独立资源分配单位。资源:cpu 和 内存(ram)3、线程(thread):一条独立的执行路径,多线程中,在执行某个程序的时候,该程序可以有多个子任务,每个线程都可以独立的完成其中的一个任务,在各个任务之间,没有依赖关系,可以单独运行4、进程和线程的关系进程是用于资
2020-06-04 19:05:26
196
原创 Java基础---认识IO流---字节流、字符流---缓冲流---转换流
一、认识IO流I/O就是用于设备之间进行数据交互的对象所属的类型IO流的体系结构:根据分类,有四种流对象类型字节流:可以直接操作字节信息的流对象字节输入流:InputStream字节输出流:OutputStream字符流:字符输入流:Reader字符输出流:Writer二、字节流InputeStream1、字节输入流的顶层父类2、常用方法:int read() :从当前的字节输入流中,读取并返回一个字节,返回-1表示未读取到。int read(byte[] arr):将最多a
2020-06-04 19:02:45
250
原创 Java基础---File类,就是这么简单
File类1、概述:File类:用于表示一个文件或者是文件夹的路径对象(抽象路径名)2、路径:用于描述文件或者文件夹所在位置的字符串D:\P.txt D:\codeData\eclipse_workspace3、路径分类:绝对路径:从根目录下开始的路径称为绝对路径windows:C,D ,E,盘符目录就是根目录,从盘符开始的就是绝对路径eg:D:\codeData\eclipse_workspaceLinux系统中:/就是根目录,从/开始就是绝对路径相对路径:相对于某个路径而言相对于
2020-06-04 19:00:58
492
原创 Java基础---异常---turow和throws
异常1、Throwable:可抛出的,是异常的顶层父类,其他的异常或者错误都是Throwable的子类类型,只有是Throwable的体系类型,才可以使用异常的处理机制2、Error:错误,是Throwable的子类,用于描述那些无法捕获和处理的错误情况,属于非常严重的错误 StackOverflowError3、Exception:异常,是Throwable的子类,用于描述那些可以捕获和处理的不正常情况,属于不太严重的错误NullPointerException4、RuntimeExcep
2020-06-04 19:00:04
381
原创 Java基础---集合的概述---list、set、map、泛型、collections
集合的概述单列集合的体系:Collection 单列集合的顶层接口List Collection的子接口,增加了一些特有的方法,有序 可以重复 有索引ArrayList 底层采用的数组结构实现,顺序存储,查询修改快LinkedList 底层采用的是双向链表实现,链式存储,增加删除快Set Collection的子接口,无序 不可以重复 没有索引HashSet 哈希表存储(数组+单向链表)LinkedHashSet 可以维护集合元素的顺序双列集合的
2020-06-04 18:58:57
267
原创 Java基础---认识正则表达式
认识正则表达式正则表达式概述1、正则表达式:本质上就是一个字符串,这个字符串可以表达一类具有某种规则的字符串。2、字符类型:表示单个的字符,使用的符号是中括号[]只要使用了方括号无论里面写了多少内容,都表示的是单个字符3、方括号的表示形式:[abc]:a或者b或者c的一个字符[^abc]:除了a,b,c以外的任何的单个字符[a-zA-Z]: a-z 和A-Z中的一个字符4、判断某个字符串和正则表达式的规则相匹配的,要用String类中的match(String regex) public
2020-06-04 18:55:20
185
原创 Java基础---常用类之Arrays工具类+基本类型的包装类
常用类之Arrays工具类1、binarySearch(int[] a,int key) 使用二分搜索法来搜索指定的 int 型数组2、fill(int[] a,int val)将指定的 int 值分配给指定 int 型数组的每个元素。3、sort(int[] a) 对指定的 int 型数组按数字升序进行排序4、toString(int[] a) 返回指定数组内容的字符串表示形式。package com.DaYu;import java.util.Arrays;public class D
2020-06-04 15:25:39
174
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人