- 博客(91)
- 收藏
- 关注
原创 设计模式 一、软件设计原则
所以我们可以先写一个粗粒度的类,满足业务需求,随着业务的发展,如果粗粒度的类越来越大,代码越来越多,这个时候我们就可以将这个粗粒度的类,拆分成几个更细粒度的类,这就是所谓的持续重构。单一职责原则的定义非常简单,一个类只负责完成一个职责或者功能,也就是说,不要设计大而全的类,要设计粒度小、功能单一的类,换个角度来讲,就是一个类包含了两个或者以上业务不相干的功能,那我们就说它职责不够单一,应该将它拆分成多个功能更加单一,粒度更细的类。1.1 如何理解单一职责原则(SRP)1.2 如何判断类的职责是否单一。
2025-03-09 20:19:15
254
原创 EasyExcel的应用
这里我们可以使用最新的。版本,也可以选择之前的稳定版本,大致相同,新的版本也会向前兼容(可能在高版本被废弃),关于。版本适配问题,具体可参考。
2025-01-17 18:26:17
911
原创 四、CSS3
CSS3 是 CSS2 的升级版本,他在CSS2的基础上,新增了很多强大的新功能,从而解决一些实际面临的问题。CSS3的新特性如下:1、新增了更加实用的选择器,例如:动态伪类选择器、目标伪类选择器、伪元素选择器等等。2、新增了更好的视觉效果,例如:圆角、阴影、渐变等。3、新增了丰富的背景效果,例如:支持多个背景图片,同时新增了若干个背景相关的属性。4、新增了全新的布局方案——弹性盒子。5、新增了Web字体,可以显示用户电脑上没有安装的字体。6、增强了颜色,例如:HSL。
2024-12-17 18:19:35
628
原创 二、HTML5
HTML5 是新一代的 HTML 标准,2014年10月由万维网联盟(W3C)完成标准制定。官网地址:W3C提供:WHATWGHTML5在侠义上是指新一代的HTML标准,在广义上是指:整个前端2、HTML5 优势1、针对JavaScript,新增了很多可操作的接口。2、新增了一些语义化标签、全局属性3、新增了多媒体标签,可以很好的替代 flash。4、更加侧重语义化,对于SEO 更友好。5、可移植性好,可以大量应用在移动设备上。
2024-12-16 11:05:51
968
原创 三、CSS2
CSS全称为:层叠样式表(Cascading Style Sheets)。CSS 也是一种标记语言,用于给HTML结构设计样式,例如:文字大小、颜色、元素宽高等等。css可以美化HTML,让HTML更漂亮HTML搭建结构,CSS添加样式,实现了,结构与样式的分离。
2024-11-19 19:32:17
994
原创 一、HTML
内核是浏览器的核心,用于处理浏览器所得到的各种资源。例如,服务器发送图片、视频、音频的资源,浏览器就需要使用内核来进行处理这些资源。内核处理完这些资源之后,我们才能看到页面。这五大浏览器都有自己的内核。五大浏览器,四大内核。不在这五个之中的统称为其他浏览器。其他浏览器就是在上述的内核的基础上,加上了一些精美的UI界面,实用的小功能等等。
2024-11-11 18:30:31
875
原创 二、SSM框架制作CRM系统案例
虽然上述配置都可以在springconfig中进行配置,但其实 datasource 数据源的配置和 mappers 映射文件的配置,通常会配置在 spring 的配置文件中。Spring 的核心功能之一是通过 IoC(控制反转)容器来管理对象。4、添加 mybatis-config.xml 配置文件。映射文件配置,我们放到spring的配置文件中去。1、首先创建下面的目录结构。中定义 Bean 是最常见的操作。暂时没用到先不进行配置。
2024-11-08 19:26:02
357
1
原创 一、使用配置类简易SpringMVC项目
MVC全称Model View Controller,是一种设计创建Web应用程序的模式。这三个单词分别代表Web应用程序的三个部分:指数据模型。用于存储数据以及处理用户请求的业务逻辑。在Web应用中,JavaBean对象,业务模型等都属于Model。用于展示模型中的数据的,一般为jsp或html文件。是应用程序中处理用户交互的部分。接受视图提出的请求,将数据交给模型处理,并将处理后的结果交给视图显示。
2024-10-28 18:45:07
1019
原创 HTTP 四、HttpClient的使用
HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。HTTP和浏览器有点像,但却不是浏览器。
2024-09-10 18:53:39
838
原创 HTTP 二、进阶
HTTPS为 HTTP 增加了四大安全特性。HTTPS 其实是一个“非常简单”的协议,RFC 文档很小,只有短短的 7 页,里面规定了新的协议名“https”,默认端口号 443,至于其他的什么请求 - 应答模式、报文结构、请求方法、URI、头字段、连接管理等等都完全沿用 HTTP,没有任何新的东西。
2024-09-04 14:36:27
2488
原创 HTTP 一、基础知识
HTTP(Hyper Text Transfer Protocol): 全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP 是一种应用层协议,是基于 TCP/IP 通信协议来传递数据的,其中 HTTP1.0、HTTP1.1、HTTP2.0 均为 TCP 实现,HTTP3.0 基于 UDP 实现。现主流使用 HTTP1.0 和 HTTP3.0。
2024-09-03 11:36:17
3283
原创 MyBatis-Plus 三、(进阶使用)
typeHandler 实现类例如当我们 某个字段存储的类型为List或者Map时,我们可以自定义一个TypeHandler,以 list 为例,我们想存储一个字段类型为 list ,在数据库中的存储的格式是 多条数据以逗号分割,当查询时会自动根据逗号分割成列表格式。需要实现@Override@Override@Override@Override@MappedJdbcTypes:表示SQL语句中查出来的类型;@MappedTypes:表示要转成 Java 对象的类型;
2024-08-23 15:58:03
2604
原创 MyBatis-Plus 一、(基础应用)
MybatisPlus可以节省大量时间,所有的CRUD代码都可以自动化完成MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特性:无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求。
2024-08-19 18:36:45
1406
原创 Mybatis - 应用篇 (二、进阶应用)
是一次性把全部数据查询加载进内存 ,然后再进行分页。这样优点是减少IO次数,适合频繁访问、数据量少的情况。缺点是不适合大数据量,容易造成内存溢出。如果我们要实现分页逻辑,一般前端会传 pageNum(第几页) , pageSize(多少条数据)。我们需要自己计算分页逻辑。是利用limit语法在数据库中进行分页。他的优点是适合分页大数据量数据。缺点是频繁查询数据库,消耗性能。这种方式缺点是比较麻烦,要自己计算分页数据和封装Page类。mapper接口中:意思就是 从第几行开始拿多少条数据。
2024-08-09 18:30:19
440
原创 Mybatis - 应用篇 (一、基础应用)
MyBatis 本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
2024-08-05 18:36:18
1047
原创 JDBC 二、进阶篇
而我们Java是面向对象的,一个表对应的是一个类,一行数据就对应的是Java中的一个对象,一个列对应的是对象的属性,所以我们要把数据存储在一个载体里,这个载体就是实体类!在数据中,执行新增操作时,主键列为自动增长,可以在表中直观的看到,但是在Java程序中,我们执行完新增后,只能得到受影响行数,无法得知当前新增数据的主键值。,作用是在编程中,把面向对象的概念跟数据库中表的概念对应起来,以面向对象的角度操作数据库中的数据,即一张表对应一个类,一行数据对应一个对象,一个列对应一个属性!
2024-07-24 17:42:05
744
原创 JDBC 一、基础篇
注册驱动【依赖的驱动类,进行安装】获取连接【Connection建立连接】创建发送SQL语句对象【Connection创建发送SQL语句的Statement】发送SQL语句,并获取返回结果【Statement 发送sql语句到数据库并且取得返回结果】结果集解析【结果集解析,将查询结果解析出来】资源关闭【释放ResultSet、Statement 、Connection】
2024-07-24 16:14:45
591
原创 MYSQL 七、mysql 日志与备份
中继日志只在主从服务器架构的从服务器上存在。从服务器为了与主服务器保持一致,要从主服务器读取二进制日志的内容,并且把读取到的信息写入本地的日志文件中,这个从服务器本地的日志文件就叫中继日志。然后,从服务器读取中继日志,并根据中继日志的内容对从服务器的数据进行更新,完成主 从服务器的 数据同步。搭建好主从服务器之后,中继日志默认会保存在从服务器的数据目录下。从服务器名 -relay-bin.序号。从服务器名 -relaybin.index,用来定位当前正在使用的中继日志。在实际工作中,我们常常将。
2024-07-22 19:19:58
1212
原创 MYSQL 六、mysql锁 2(多版本并发控制)
MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样 在做查询的时候就不用等待另一个事务释放锁。MVCC没有正式的标准,在不同的DBMS中MVCC的实现方式可能是不同的,也不是普遍使用的(大家可以参考相关的DBMS文档)。
2024-07-21 21:54:21
700
原创 MYSQL 六、mysql锁 1
在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的 资源。为保证数据的一致性,需要对并发操作进行控制,因此产生了锁。同时锁机制也为实现MySQL 的各个隔离级别提供了保证。锁冲突也是影响数据库并发访问性能的一个重要因素。所以锁对数据库而言显得尤其重要,也更加复杂。
2024-07-19 12:40:12
1095
原创 MYSQL 五、mysql事务 1(事务基础知识)
ACID是事务的四大特征,在这四个特性中,原子性是基础,隔离性是手段,一致性是约束条件, 而持久性是我们的目的。数据库事务,其实就是数据库设计者为了方便起见,把需要保证。
2024-07-16 19:42:41
932
原创 MYSQL 四、mysql进阶 10(数据库其它调优策略)
如果MySql的连接数达到 max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即 back_log,如果等待连接的数量超过back_log,将不被授予连接资源,将会报错。磁盘的I/O能力,也就是它的寻道能力,目前的SCSI高速旋转的是7200转/分钟,这样的速度,一旦访问的用户量上去,磁盘的压力就会过大,如果是每天的网站pv (page view) 在150w,这样的一般的配置就无法满足这样的需求了。当然,这个值不是越大越好,它的大小取决于内存 的大小。
2024-07-16 13:02:57
888
原创 MYSQL 四、mysql进阶 9(数据库的设计规范)
可以理解为,一张数据表的设计结 构需要满足的某种设计标准的级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。
2024-07-15 12:01:40
1233
原创 MYSQL 四、mysql进阶 8(索引优化与查询优化)
关于数据库调优的知识非常分散。不同的DBMS,不同的公司,不同的职位,不同的项目遇到的问题都不尽相同。这里我们分为三个章节进行细致讲解。虽然SQL查询优化的技术有很多,但是大方向上完全可以分成。
2024-07-10 18:39:57
513
原创 MYSQL 四、mysql进阶 7(性能分析工具的使用)
我们可以通过观察了解数据库整体的运行状态,通过性能分析工具可以让我们了解执行慢的SQL都有哪些,查看具体的SQL执行计划,甚至是SQL执行中的每一步的成本代价,这样才能定位问题所在,找到了问题,再采取相应的行动。字母 S 的部分代表观察(会使 用相应的分析工具),字母 A 代表的部分是行动(对应分析可以采取的行动)。SHOW [GLOBAL|SESSION] STATUS LIKE '参数';在MySQL中,可以使用。行动(Action)
2024-07-08 18:39:44
554
1
原创 MYSQL 四、mysql进阶 6(索引的创建与设计原则)
使用参数FULLTEXT 可以设置索引为全文索引,在定义索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值,全文索引只能创建在 CHAR 、VARCHAR或TEXT类型及其系列类型的字段上,查询数据量较大的字符串类型的字段时,使用全文索引可以提高查询速度,例如、表student的字段information是text类型,该字段包含了很多文字信息,在字段information上建立全文索引后,可以提高查询字段information的速度。如果组成 索引的所有列都被删除,则整个索引将被删除。
2024-07-05 16:44:14
1083
原创 MYSQL 四、mysql进阶 5(InnoDB数据存储结构)
页a、页b、页c...页n这些可以不在物理结构上相连,只要通过双向链表相关联即可,每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表,每个数据页都会为存储在它里面的记录生成一个页目录,在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可,快速找到指定的记录。
2024-06-27 18:41:33
916
原创 MYSQL 四、mysql进阶 4(索引的数据结构)
1.为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教科书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。Mysql中也是一样的道理,进行数据查找时,首先查看查询条件是否命中某条索引,符合则通过索引查找相关数据,如果不符合则需要全表扫描,即需要一条一条的查找记录,直到找到与条件符合的记录。 如上图所示,数据库没有索引的情况下,数据 分布在硬盘的不同位置上面,读取数据时,摆臂需要前后摆动查找数据,这样操作非
2024-06-19 18:18:40
1064
原创 MYSQL 四、mysql进阶 3(存储引擎)
4.1 InnoDB引擎:具备外键支持功能的事务存储引擎MySQL从3.23.34a开始就包含InnoDB存储引擎。大于等于5.5之后,默认采用InnoDB引擎。InnoDB是MySQL的默认事务型引擎,它被设计用来处理大量的短期事务。可以确保事务的完整提交(Commit)和回滚(Rollback)。事务是最重要的区别除了增加和查询外,还需要更新、删除操作,那么,应优先选择InnoDB存储引擎。除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB。
2024-06-19 14:51:19
693
原创 MYSQL 四、mysql进阶 2(mysql逻辑架构以及查询流程)
1. 逻辑架构剖析 1.1 服务器处理客户端请求 mysql是典型的c/s架构,即 client/server 架构,不论是客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(sql语句),服务器进程处理后再向客户端进程发送一段文本(处理结果) 下面具体展开看一下: 系统(客户端)访问 MySQL 服务器前,做的第一件事就是建立 TCP 连接。 经过三次握手建立连接
2024-06-18 10:29:16
1163
原创 MYSQL 三、mysql基础知识 7(MySQL8其它新特性)
MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上 做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是多优化器进行了改进。不仅在速度上得到了改善,还为用户带来了更好的性能和更棒的体验。1.1 MySQL8.0 新增特性1. 更简便的NoSQL支持NoSQL泛指非关系型数据库和数据存储。随着互联网平台的规模飞速发展,传统的关系型数据库已经越来越不能满足需求。从5.6版本开始,MySQL。
2024-06-14 11:34:55
851
原创 MYSQL 三、mysql基础知识 6(触发器)
在实际开发中,我们经常会遇到这样的情况:有 2个或者多个相互关联的表,如商品信息和库存信息分别存放在 2 个不同的数据表中,我们在添加一条新商品记录的时候,为了保证数据的完整性,必须同时在库存表中添加一条库存记录。这样一来,我们就必须把这两个关联的操作步骤写到程序里面,而且要用事务包裹起来,确保这两个操 作成为一个原子操作,要么全部执行,要么全部不执行。要是遇到特殊情况,可能还需要对数据进行手 动维护,这样就很容易忘记其中的一步,导致数据缺失。这个时候,咱们可以使用触发器。
2024-06-13 18:42:29
1008
原创 MYSQL 三、mysql基础知识 5(变量、流程控制与游标)
定义条件是事先定义程序执行过程中可能遇到的问题,处理程序定义了在遇到问题时应当采取的处理方 式,并且保证存储过程或函数在遇到警告或错误时能继续执行。这样可以增强存储程序处理问题的能 力,避免程序异常停止运行。说明:定义条件和处理程序在存储过程、存储函数中都是支持的。2.1 案例分析创建一个名称为的存储过程。SET @x = 2;SET @x = 3;# 调用存储过程:+------+| @x |
2024-06-13 15:58:48
835
原创 MYSQL 三、mysql基础知识 4(存储过程与函数)
含义:存储过程的英文是。它的思想很简单,就是一组经过预先编译的SQL 语句的封装。执行过程:存储过程预先存储在 MySQL 服务器上,需要执行的时候,客户端只需要向服务器端发出调用 存储过程的命令,服务器端就可以把预先存储好的这一系列 SQL语句全部执行。好处1、简化操作,提高了sql语句的重用性,减少了开发程序员的压力2、减少操作过程中的失误,提高效率3、减少网络传输量(客户端不需要把所有的SQL 语句通过网络发给服务器)4、减少了SQL。
2024-06-12 17:31:01
1063
原创 MYSQL 三、mysql基础知识 3(视图)
视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如,针对一个公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给他。再比如,人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他人的查询视图中则不提供这个字段。刚才讲的只是视图的一个使用场景,实际上视图还有很多作用。最后,我们总结视图的优点。2、视图的理解:视图是一种虚拟表,本身是不具有数据的,占用很少的内存空间,它是SQL中的一个重要概念。
2024-06-12 11:32:48
625
原创 MYSQL 三、mysql基础知识 2(约束)
1.1为什么需要约束数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(它是防止数据库中 存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面考虑:实体完整性(:例如,同一个表中,不能存在两条完全相同无法区分的记录域完整性(:例如:年龄范围0-120,性别范围男女引用完整性(:例如:员工所在部门,在部门表中要能找到这个部门。
2024-05-24 19:04:43
364
原创 MYSQL 三、mysql基础知识 1(数据类型)
浮点数和定点数类型的特点是可以处理小数,你可以把整数看成小数的一个特例。因此,浮点数和定点数的使用场景,比整数大多了。MySQL支持的浮点数类型,分别是FLOATFLOAT 表示单精度浮点数;DOUBLE 表示双精度浮点数;REAL默认就是DOUBLE。如果你把SQL模式设定为启用,那 么,MySQL就认为REAL是FLOAT。如果要启用,可以通过以下SQL语句实现:SET问题1FLOAT和DOUBLE这两种数据类型的区别是啥呢?SET。
2024-05-23 14:53:51
851
原创 MYSQL 二、SQL语句总结 2 (创建和管理表 以及 数据增删改)
保持字段名和类型的一致性:在命名字段并为其指定数据类型的时候一定要保证一致性,假如数据 类型在一个表里是整数,那在另一个表里可就别变成字符型了。软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名。必须保证你的字段没有和保留字、数据库系统或常用方法冲突。修改表指的是修改数据库中已经存在的数据表的结构。数据库名、表名、字段名等对象名中间不要包含空格。数据库名、表名不得超过。个字符,变量名限制为。
2024-05-17 18:33:34
387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人