- 博客(83)
- 收藏
- 关注
原创 概述MyBatis-Plus
标识该属性是否为数据库表字段,因为如果不加配置则默认属性都是有同名的对应字段。意思是无状态,该类型为未设置主键类型。添加在实体类上,用于标识实体类所对应的表名注解,标识实体类对应的表。用于指定对应的主键字段名,如果不指定,则和属性名称一致。的基础上只做增强不做改变,为简化开发、提高效率而生。属性上的针对字段的注解,用于非主键类型的属性。可以有对应的映射文件,也可以没有映射文件。接口的注册,在主类上添加自动扫描注解即可。是主键注解,用于在属性上标识对应的注解。枚举类型,用于指定主键生成策略。
2023-01-29 22:13:10
249
1
原创 HTML学习------CSS选择器
把写在标签开始标签内部style属性中的样式,称为一个标签的行间样式。 使用行间样式编写代码,维护性很差,试想一个场景,文档中一行上面的代码,可以在页面中生成一个矩形盒子,如果需要生成1000个,该怎么办?答案是把代码复制1000次,有人说这并不麻烦,但如果现在客户需求改了,要求所有但盒子宽度都改成200px像素,那么你还觉得简单吗? 举个例子:在学校里面,校领导告诉班主任,给班里学生通知一下:明天放假。于是乎按照行间样式的方式,班主任需要挨个给每个学生通知一遍,这是个工作量很大的差失,但这还不是最
2022-12-03 11:21:34
495
原创 HTML学习-----CSS使用
由于创建高级的布局非常耗时,使用模板是一个快速的选项。通过搜索引擎可以找到很多免费的网站模板(您可以使用这些预先构建好的网站布局,并优化它们)通过编辑单一的文件,就可以改变所有页面的布局。标签可以把文档分割为独立的、不同的部分。浏览器上如果是盒子跟盒子平级,对应的代码中,就是标签跟标签平级。浏览器上如果是盒子跟盒子嵌套,对应的代码中,就是标签跟标签嵌套。注释是用来解释你的代码,并且可以随意编辑它,浏览器会忽略它。页面上的盒子按照从左到右,从上到下的方式排列盒子。是一个块级元素,也就是说,浏览器通常会在。
2022-12-01 21:30:16
280
原创 HTML学习------html基础
header定义页面的或区域的头部nav定义导航链接article定义文章的内容section定义网页中的一个区块,例如章节、页眉、页脚等aside定义网页页面部分的侧边栏footer定义网页的尾部HTML标题Heading是通过-等标签进行定义的标签只用于标题。不要仅仅是为了生成粗体或大号的文本而使用标题块级元素但是这里会涉及搜索引擎的优化和推广的问题,一般建议一个html文档中只有1个h1,3个左右的h2HTML段落是通过。
2022-11-24 20:25:26
298
原创 HTML学习----HTML文档基本结构
现实生活中,任何一个文档都是具有一定的格式,不同的文档,基本格式不同,例如:请假条、调休单、剧本、年中总结、十九大报告、等等,而我们所编写等html文档也是具有一定的编写基本格式的事实上W3C组织一直致力于规范的Html页面,但是事实上开发者基本不太理会严格规范。而html5事实上是一种妥协式的规范,HTML5规范十分宽松,甚至不再提供文档类型定义dtd。
2022-11-22 21:16:57
156
原创 HTML学习-----HTML开发代码构成
平时我们看到网页,除了可以看以外,还可以处理一些用户的交互行为,例如:鼠标的点击,键盘的控制等等。层叠样式表,用来对文档中的标签设置样式,从而改变超文本在浏览器上的渲染效果。的新特性,如果执行后显示一个矩形效果,则是支持;有开始有结束,主要功能是存放内容,可以是超文本,也可。文档中,并在网络上传输的 文字、图片、视频、音频。格式的文档,最终通过浏览器执行该文档,那么一个。格式的文档,最终通过浏览器执行该文档,那么一个。不能存放内容,多是一些功能性的标记。在浏览器上的人机交互功能。开发,本质上就是编写一个。
2022-11-22 20:46:23
381
原创 Mysql学习-----JDBC事务实现
因为实际开发中,每次获取的连接,不一定是新的连接,而是从连接池中获取的旧的连接,而且关闭也不是真关闭,而是还给连接池,供别人接着用。以防别人拿到后,以为是自动提交的,而没有。希望这两个语句要么一起成功,要么一起回滚。)在订单明细表中添加多条订单明细的记录,表示该订单买了什么东西。执行多条语句,并要求组成一个事务一起执行的话。默认每一个连接是自动提交事务的。、在执行之前关闭自动提交,设置手动提交事务。用两条修改语句来模拟组成一个简单的事务。的对象之前,把连接对象设置回自动提交,、如果执行成功,手动提交事务。
2022-11-19 20:30:00
235
原创 Mysql学习------MySQL事务
记录锁、间隙锁、临键锁,都属于排它锁记录锁就是锁住一行记录间隙锁只有在事务隔离级别RR可重复读 中才会产生唯一索引只有锁住多条记录或者一条不存在的记录的时候,才会产生间隙锁,指定给某条存在的记录加锁的时候,只会加记录锁,不会产生间隙锁普通索引不管是锁住单条,还是多条记录,都会产生间隙锁间隙锁会封锁该条记录相邻两个键之间的空白区域,防止其它事务在这个区域内插入、修改、删除数据,这是为了防止出现幻读现象普通索引的间隙,优先以普通索引排序,然后再根据主键索引排序事务级别是RC。
2022-11-18 20:43:31
156
原创 Mysql学习------Innodb中的锁机制
使用数据库的目的在于数据共享,需要考虑数据并发访问问题。锁主要包括全局锁、表锁、行锁、乐观锁和悲观锁,需要解决的问题是死锁。中的数据、索引以及其它的数据库对象如何存储,是一套文件系统的实现。
2022-11-16 20:21:02
217
原创 Mysql学习-----索引
索引是存储引擎用于快速查找记录的一种数据结构,需要额外开辟空间和数据维护工作按照物理存储方式:聚簇和非聚簇MyISAM:frm元数据文件、myd数据、sdi索引数据,MyISAM都是非聚簇索引,数据和索引分别存放InnoDB:ibd元数据文件、数据和索引,innodb存储引擎支持聚簇索引按照数据结构:B+树、hash等按照逻辑:主键索引、普通索引、唯一索引、空间索引(针对空间类型的数据)和全文索引B-treeB树是一种自平衡的多叉查找树,在一个B。
2022-10-25 20:10:57
86
原创 Mysql学习-------表和表之间的关系
主键可分为2大类:自然主键和代理主键。一般建议使用代理主键将表中的所有列的组合当作主键--候选码去除其中某些列查看是否还能唯一标识一行数据最后找到的所有候选码的真子集就是主码最佳实践:可以在表中添加一个与业务无关的字段充当主键。
2022-10-24 20:46:35
613
原创 Mysql学习-----函数
函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把经常使用的代码封装起来,需要 的时候直接调用即可。这样既提高了代码效率 ,又提高了可维护性。在SQL中也可以使用函数对检索出 来的数据进行函数操作。使用这些函数,可以极大地 提高用户对数据库的管理效率。从函数定义的角度出发,可以将函数分成内置函数和自定义函数。在SQL语言中,同样也包括内置函数 和自定义函数。内置函数是系统内置的通用函数,而自定义函数是根据自己的需要编写的在使用SQL。
2022-10-15 19:51:59
116
原创 Mysql学习------视图
视图一方面可以帮助使用表的一部分而不是表的所有,另一方面也可以针对不同的用户制定不同的查询视图。比如针对公司的销售人员,只想给他看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给他。再比如人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他人的查询视图中则不提供这个字段。
2022-10-14 22:05:01
101
原创 Mysql学习-----大对象Lob,操作方法补充
Lob实际上有2种类型,分别是用于存储大文本的字段Clob和存储二进制大量数据的字段Blob。不同的数据库处理方式略有区别,大字段一般都是采用流的方式进行处理由于大字段类型存储的数据较多,一般针对lob字段会采用分表存储的方式实现需求:存储学生信息,要求存储学生的照片将学生照片存储在文件系统中,实际数据中只存储照片的路径如果图片要求加密,存储在文件系统中则不合理可以利用DBMS提供的压缩加密功能将数据存储在数据表如果具体存储?一个表中存储相关的基本信息,非大字段数据。
2022-10-12 22:05:10
460
原创 Mysql学习------MySQL运算符
如果删除数据后,数据库系统仍旧会记录已经生成过的数据,不会从新开始,而是在以前的基础上继续加1。如果一个表中的数据和另外一个表中的数据相等时,最好保证数据类型一致。聚集函数用于对于一个集合中的数据进行处理,不是一行一行的数据。查询既不是软工、机壳,也不是大数据系的所有学生姓名和性别。如果不使用分组,聚集函数则用于处理所有查询结果数据。如果使用分组,则分别作用于各个分组查询的结果数据。平均值就是聚集函数,针对一个集合中的数据进行处理。运算符时指定的值是离散的数据,不是连续值。
2022-10-10 14:54:33
113
原创 Mysql学习-----SQL概述与DQL
语法的确提供了这个功能,一般来说只从一个表中查询数据,通常不需要增加一个固定的常数列,但如果想整合不同的数据源,用常数列作为这个表的标记,就需要查询常数。在查询语句中使用星号代表获取表中的所有列,如果只获取其中一部分列,例如只查询用户的名称。关系就是一个带有表头的二维表格,表中的每行数据就是一个元组,元组的集合就是关系,每个列。这列的取值是指定的,而不是从数据表中动态取出的。,在阿里的开发规范中强制规则,不允许使用星号,要求指明需要查询的列名称。元组就是事物特征的组合,可以用于描述一个具体的事物。
2022-10-09 20:00:41
241
原创 Mysql学习------完整性约束和表操作DDL/DML/DQL
用于针对表中的每个列指定对应的值,例如insert into tb_users values(null,'yanjun','123456','1989。语句,所以支持事务,支持撤销回滚操作,但是大量的删除数据时需要记录日志,所以执行效率很低。为了保证存储的数据都是完整有效的,避免存放垃圾数据,所以提供针对插入的数据进行检查。快速创建一个表和另外一个表的结构相同,只是克隆表结构,不会克隆数据。共同使用,每个无主键的数据表,插入一行数据,都会是当前的。负责检查,如果试图插入不合法的数据,则会自动报错,拒绝。
2022-10-08 19:57:35
187
原创 Mysql学习-----数据类型
定义数据类型就是定义列,数据类型决定数据的特性【域完整性】数据类型主要分为字符串类型、定点数和浮点数类型、日期类型、大对象类型【慎用】数据类型在不同的存储引擎上表现不同数据所采用的数据类型是根据业务需求和对应的数据类型特征进行选择,不建议使用过于复杂的数据类型。
2022-09-29 20:55:43
97
原创 Mysql学习====MySQL基本使用
数据库对象、变量的命名都采用英文字符,禁止使用中文命名,绝对不允许在对象名称中间出现空。一些可视化工具可以改名,它是建新库,把所有表复制到新库,再删旧库完成。数据类型主要分为字符串类型,浮点书类型和定点数类型,日期类型以及二进制类型。打开客户端连接已经启动的数据库服务,这里需要输入上面生成的临时口令。个数据库中的表名称不允许重复。数据库涉及的字符规范,注意不是语法规则,属于建议性质的规则。小心保留字,尽量保证命名中不采用保留字,避免容易产生冲突。中允许同时打开多个数据库,不同的数据库管理系统不一样。
2022-09-28 19:46:21
109
原创 Mysql学习====数据库概论
MySQL是由SQL接口、解析器、优化器、缓存、存储引擎客户端向MySQL服务器发送一个SQL语句服务器首先检查缓存,如果命中则立刻返回存储在缓存中的结果,否则下一步服务器首先进行SQL语句解析、预处理,再由优化器生成对应的执行计划MySQL服务器根据执行计划,调用存储引擎的API执行查询最后将查询结果返回客户端,同时缓存查询结果。
2022-09-27 19:39:40
131
原创 JAVA学习-----关于反射的学习与总结
动态获取类的信息以及动态调用对象的方法称为Java的反射Reflection机制。反射提供了封装程序集、模块和类型的对象。在Java运行时环境中,对于任意一个类的对象,可以通过反射获取这个类的信息。
2022-09-23 20:04:10
75
原创 JAVA学习----简单的Client/Server程序
前端任务和后端任务对计算资源有着根本不同的要求,例如处理器速度,内存,磁盘速度和容量以。式简单地讲就是基于企业内部网络的应用系统,大部分的应用逻辑都集中在客户端中,而一般服务。水平扩展意味着添加或删除客户。统最大的好处是不依赖企业外网环境,即无论企业是否能够上网,都不影响应用。服务器体系结构,它是一种网络体系结构,其中客户端是用户运行应用程序的。结构)结构即浏览器和服务器结构,瘦客户端应用,主要逻辑集中在服。服务器)结构,胖客户端应用,是软件系统体系结构的一种。务器端,客户端一般只包含的简单的显示逻辑。
2022-09-22 19:53:51
901
原创 JAVA学习------Java网络编程
计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来的,实现资源共享和数据传输的系统。对象代表统一资源定位器,是指向互联网资源的指针,资源可以是简单的文件或目录,也可以是对复杂对象的引用,例如对数据库或搜索引擎的查询。网络程序则不保证数据的可靠性,但是协议简单、传输速度快(比如用在音视频数据传输,它们不需要很高的可靠性,偶尔丢帧是可以忍受的)类用于表示服务器套接字,其主要功能是监听客户端的请求,然后将客户端的请求连接存入队列中,默认请求队列大小是。
2022-09-19 21:04:22
59
原创 JAVA学习-------Java集合中的快速失败机制
这是因为,当集合的结构被改变的时候,fail-safe机制会在复制原集合的一份数据出来,然后在复制的那份数据遍历。这是因为迭代器在执行开始前,基于原集合类元拷贝了一份元素副本,因此迭代器执行的操作,如遍历、添加或删除等,并非原集合类对象的内部元素。有线程在遍历集合的同时,有另外线程进行了集合结构的修改,则会引发异常,异常是告知遍历集合的线程当前集合已经发生了改变[modcount++],要求重新获取遍历器。一种实现是:遍历的是原集合类对象元素的拷贝,需要额外的内存空间用于拷贝的元素数组。
2022-09-17 23:15:39
248
原创 JAVA学习------ConcurrentHashMap实现原理
在JDK8中ConcurrentHashMap的结构,由于引入了红黑树,使得ConcurrentHashMap的实现非常复杂,红黑树是一种性能非常好的二叉查找树,其查找性能为O(logN),但是其实现过程也非常复杂,而且可读性也非常差,早期完全采用链表结构时Map的查找时间复杂度为O(N),JDK8中ConcurrentHashMap在链表的长度大于某个阈值的时候会将链表转换成红黑树进一步提高其查找性能。JDK8中彻底放弃了Segment转而采用的是Node,其设计思想也不再是JDK1.7中的分段锁思想。
2022-09-16 20:09:04
1386
原创 JAVA学习------hashMap总结
创建时如果不指定容量初始值,Hashtable默认的初始大小为11,之后每次扩充,容量变为原来的2n+1。HashMap是非线程安全的,HashTable是线程安全的;在Hashtable的类注释可以看到,Hashtable是保留类不建议使用,推荐在单线程环境下使用HashMap替代,如果需要多线程使用则用ConcurrentHashMap替代。Java8-中的HashMap是基于“数组+链表”的方式(链表法解决冲突),到了Java8,应该是“数组+链表/红黑树”的方式,默认阈值为树化8退化6。
2022-09-14 19:47:10
124
原创 JAVA学习-----Hashtable
Hashtable是一个散列表,它存储的内容是键值对(key-value)映射。通过"拉链法"实现的哈希表Hashtable继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。
2022-09-13 22:44:59
294
原创 JAVA学习-----TreeMap
put(K key, V value)用于添加一个Entry(结点,包括key和value)到TreeMap对象,key为与指定值将要关联的键,value为使用指定键关联的值。如果key对应的值已经存在,则将key对应的值修改为value。TreeMap是一个有序的key-value集合,它是通过红黑树实现的。TreeMap 实现了NavigableMap接口,意味着它支持一系列的导航方法。V get(Object key)方法用于获取指定key的value,key为与value相关联的键。
2022-09-08 20:10:29
635
原创 JAVA学习-----LinkedHashMap
存储的数据是有序的【添加顺序】accessOrder涉及到LinkedHashMap存储的顺序,具体的存储顺序分为两种:插入顺序(false)和。HashMap是无序的,当我们希望有顺序地去存储key-value时,就需要使用LinkedHashMap了。这也是默认值,表示LinkedHashMap中存储的顺序是按照调用put方法插入的顺序进行排序的。如果true采用访问顺序,而111对应的数据被访问过后自动自动到末尾;如果一个key被访问过了的元素则自动添加到默认位置的末尾。
2022-09-07 20:00:12
1747
原创 JAVA学习-----HashMap
每个Node[]数组中的元素被称一个桶bucket,一个桶对应一个hash映射的值,例如0,1等,可能会出现不同的key,但是hash映射的位置相同,例如16、32等,这采用链表结构存储hash映射值相同的所有数据(JDK8+在单个链表长度大于阈值8时自动转换为红黑树,删除节点使某单个链表节点数小于阈值6时会自动从红黑树退化为链表结构)将高位数据移位到低位进行异或计算,这是因为有些数据计算出的哈希值差异在于高位,而HashMap里的哈希寻址是忽略容量以上的高位的,可以有效地避免类似情况下的哈希碰撞。
2022-09-06 21:04:14
208
原创 JAVA学习-----Map接口
要求key类型需要实现equals和hashCode发方法,首先调用hashCode方法获取key对应的hash值,然后当key值和map中的,key值相同时才会继续调用equals进行等值判断,否则是false。按照key值修改原始数据,如果key对应的值为空,则修改数据为value,否则返回旧有数据,不修改。按照key值获取key所对应的value值,如果key值不存在则返回defaultValue;按照指定的key进行修改,要求key对应的value非空或者包含对应的key。
2022-09-05 19:43:01
113
原创 JAVA学习----HashSet类
无序:不仅不能保证元素插入的顺序(如果需要顺序则可以使用LinkedHashSet) ,而且在元素在以后的顺序中也可能变化(这是由HashSet按HashCode存储对象(元素)决定的,对象变化则可能导致HashCode变化)如果需要访问的顺序和插入的顺序一致,可以使用HashSet的子类LinkedHashSet。所以如果要重写保存在HashSet中的对象的equals方法,也要重写hashCode方法,重写前后hashCode返回的结果相等(即保证保存在同一个位置)。
2022-09-02 20:54:25
163
原创 JAVA学习----Set集合
extends HashSet 继承于HashSet具体的存储实现和HashSet一致,具体实现为LinkedHashMap初始化容积16,负载因子0.75,}}
2022-09-01 19:52:26
144
原创 JAVA学习-----泛型方法及继承
所谓泛型方法,就是带有类型参数的方法,它既可以定义在泛型类中(例如public void show(T aa),在使用泛型上没有任何特殊语法要求),也可以定义在普通类中(需要自定义参数类型,那么把泛型参数放在方法上就可以了,就是放在返回值类型之前,例如public void show(T aa)),静态方法不能访问类的泛型,如果需要泛型只能在方法上使用泛型,例如。泛型是运用在编译时期的技术:编译时编译器会按照的类型对容器中的元素进行检查,检查不匹配,就编译失败。可以通过反射获取类型参数。...
2022-08-31 20:15:27
4309
原创 JAVA学习------通配符参数
定义泛型接口}定义泛型类上给泛型添加约束在泛型类或者泛型接口中不允许直接使用super在这里, Integer 可以认为是 Integer 的 "父类"List
2022-08-30 19:40:56
322
原创 JAVA------泛型类
所谓泛型类generic class就是具有一个或多个类型参数的类如果定义了泛型类,但是引用时不声明泛型值,系统则识别泛型为Object类型不会报错,但是有警告信息,不建议这种用法正确正确name可以传入任意类型的数据,因为系统识别 name为Object类型class A1中T是类型参数的名称。在创建一个对象时,这个类型名称用作传递给A1的实际类型的占位符。因此在A1中,每当需要类型参数时,就会用到T。注意T是被括在中的。每个被声明的类型参数,都要放在尖括号中。...
2022-08-29 20:00:00
339
原创 JAVA--------泛型
泛型是jdk5引入的类型机制,就是将类型参数化。泛型作为一种安全机制而产生泛型机制将类型转换时的类型检查从运行时提前到了编译时,使用泛型编写的代码比杂乱的使用object并在需要时再强制类型转换的机制具有更好的可读性和安全性。泛型在本质上是指类型参数化。所谓类型参数化,是指用来声明数据的类型本身,也是可以改变的,它由实际参数来决定。在一般情况下,实际参数决定了形式参数的值。而类型参数化,则是实际参数的类型决定了形式参数的类型。...
2022-08-28 20:00:00
97
原创 JAVA----ArrayList的使用和实现
由于在不同的平台上,受到平台的影响导致能够为数组分配的实际最大数值并非为Integer.MAX_VALUE(2,147,483,647),而是与这个值相接近的数值。数组的拷贝操纵定义在Arrays工具类中,copyof会新建一个指定长度newLength的数组,并且将原始数组中的所有元素拷贝到新数组中,同时返回新创建的数组。要分配的最大数组大小(除非必要)。如果直接初始ArrayList,则采用延迟初始化处理【初始化数组长度为0】的方式以节约内存,当添加数据时,才进行数组的初始化,默认初始化容积为10。..
2022-08-26 20:00:01
299
原创 JAVA------集合学习3(List接口、Set集合)
java要求当两个对象的equals为true时,要求两个对象的hashCode值相等。hashCode值相等并不一定equals为true。调用方法时要求传入参数为自定义比较器。
2022-08-25 21:27:43
51
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人