- 博客(92)
- 收藏
- 关注
原创 Mysql(视图和MySQL管理)
概念:视图是一个虚拟表,其内容由查询定义,同真实的表一样,视图包含列,其数据来自对应的真实表(基表)基本使用:1.create view 视图名 as select 语句2.alter view 视图名 as select 语句(更新为新的视图)3.show create view 视图名(查看创建视图的指令)4.drop view 视图名1,视图名2(删除视图)注意事项:1.创建试图后,到数据库去看,对应视图只有一个视图结构文件(形式:视图名.frm)2.视图的数据变化会影响到基
2022-08-21 11:14:08
437
原创 Mysql(存储引擎)
表类型和存储引擎:1.Mysql的表类型由存储引擎决定,主要包括MyISAM、innoDB、Memory等2.Mysql数据表主要支持六种类型,分别是CSV、Memory、ARCHIVE、MRG_MYISAM、MYISAM、InnoBDB3.这六种又分为两类,一类是事务安全型,如:InnoDB;其余都属于第二类,称为非事务安全型 1、MyISAM不支持事务,也不支持外键,但其访问速度快,对事务完整性没有要求2、InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全,但InnoDB写的处理效率差一些
2022-08-20 18:01:20
696
原创 Mysql(事务)
不可重复读:同一查询在同一事务中多次进行,由于其它提交事务所做的修改或删除,每次返回不同的结果集,此时发生不可重复读。1.多个连接开启各自事务操作数据库中数据时,数据库系统要负责隔离操作,以保证各个连接在获取数据时的准确性。幻读:同一查询在同一事务中多次进行,由于其它提交事务所做的插入操作,每次返回不同的结果集,此时产生幻读。脏读:当一个事务读取另一个事务尚未提交的修改时,产生脏读。
2022-08-20 16:06:53
319
原创 Mysql(索引)
1.主键索引,主键自动的为主索引(类型primary)2.唯一索引(unique)3.普通索引(index)4.全文索引(fulltext)[适用于MylSAM] 开发中考虑使用:全文搜索Solr和ElasticSearch在哪些列上适合使用索引: 1.较频繁的作为查询条件字段应该创建索引2.唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件3.更新非常频繁的字段不适合创建索引4.不会出现在where子句中的字段不该创建索引
2022-08-19 18:05:02
227
原创 Mysql(多表查询)
语法:select .... limit start, rows表示从start+1行开始取,取出rows行,start从0开始计算公式:limit 每页显示记录数 *(第几页-1),每页显示记录数概念:在同一张表的连接查询(将同一张表看作两张表)特点:1.同一张表当作两张表使用 2.需要给表取别名 表名 表别名 3.列名不明确,可以指定列的别名 列名 as 列的别名概念:嵌入在其它sql语句中的select语句,也叫嵌套查询单行子查询:指只返回一行
2022-08-15 14:12:14
303
原创 Mysql(函数)
count 返回行的总数 select count(*) | count(列名) from tab_name [where definition]sum 返回满足where条件的行的和,一般用于数值列 select sum(列名) from tab_name [where definition]avg 返回满足条件的一列的平均值 select avg(列名) from tab_name [where definition]max/min
2022-08-10 18:51:38
194
原创 Mysql(增删改查指令)
insert into table_name(列1,列2....) values(value1,value2...)使用细节: 1.插入的数据应与字段的数据类型相同,如:把'abc'添加到int类型会报错2.数据的长度应在列的规定范围内3.在values中列出的数据位置必须与被加入的列的排列位置相对应4.字符和日期型数据应包含在单引号中5.列可以插入空值[前提是该字段允许为空]6.insert into tab_name(列名) values(),(),()形式添加多条记录7.如果是给表中的所有字段添加数据
2022-08-09 16:47:44
369
原创 Mysql(列类型)
1、TINYINT:1字节2、SMALLINT:2字节3、MEDIUMINT:3字节4、INT:4字节5、BIGINT:8字节在能够满足需求的情况下,尽量选择占用空间小的类型1.基本使用: bit(M) M指定位数,默认为1,范围1-642.细节说明: bit字段显示时,按照位的方式显示 查询的时候仍然可以使用添加的数值 如果一个值只有0/1,可以考虑使用bit(1),可以节约空间1.float:单精度,4字节2.double:双精度,8
2022-08-08 18:07:54
1008
原创 Mysql(库操作)
1.create database [if not exists] db_name2.character set:指定数据库采用的字符集,如果不指定字符集,默认为utf83.collate:指定数据库字符集的校队规则(常用的utf8_bin[区分大小写]、utf8_general_ci[不区分大小写],默认是utf8_general_ci)显示数据库语句:show databases显示数据库创建语句:show create database db_name数据库删除语句:drop databas
2022-08-08 09:34:14
349
原创 java(网络相关概念)
7.由于IPv4(4字节)最大的问题在于网络地址资源有限,严重制约了互联网的应用与发展,IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。6.IPv6(16字节)是互联网工程任务组设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址。5.一般主动发起通信的应用程序属客户端,等待通信请求的为服务端。3.IP地址的表示形式点分十进制xx.xx.xx.xx。2.通信的两端都要有Socket,是两台机器间通信的端点。..........
2022-07-24 11:26:51
222
原创 java(Properties)
基本介绍:1、专门用于读写配置文件的集合类 配置文件格式: 键 = 值 键 = 值2、键值对不需要有空格,值不需要引号括起来,默认类型是String常用方法:1.load:加载配置文件的键值对到Properties对象2.list:将数据显示到指定设备3.getProperty(key):根据键获取值4.setProperty(key,value):设置键值对到Properties对象5.store:将Properties中的键值对存
2022-07-11 22:42:11
884
原创 java(标准输入输出流、转换流、打印流)
转换流:InputStreamReader和OutputStreamWriter1、InputStreamReader:Reader的子类,可以将InputStream(字节流)包装成Reader(字符流)2、OutputStreamWriter:Writer的子类,可以将OutputStream(字节流)包装成Writer(字符流)3、当处理纯文本数据时,如果使用字符流效率更高,并且可以有效解决中文问题,建议将字节流转换成字符流4、可以在使用时指定编码格式(如utf-8,gbk,gb2312,ISO885
2022-07-11 21:38:35
712
原创 java(ObjectInputStream和ObjectOutputStream)
序列化和反序列化:1、序列化就是在保存数据时,保存数据的值和数据类型2、反序列化就是在恢复数据时,恢复数据的值和数据类型3、需要让某个对象支持序列化机制,则必须让其是可序列化的,为了让某个类是可序列化的,该类必须实现如下两个接口之一:Serializable、Externalizable;一般使用SerializableObjectOutputStream:ObjectInputStream:注意事项:1、读写顺序要一致2、要求实现序列化或反序列化的对象,需要实现Serializable3、序列
2022-07-11 14:42:59
279
原创 java(节点流和处理流)
1、节点流可以从一个特定的数据源读写数据,如FileReader、FileWriter2、处理流(也叫包装流)是“连接”在已存在的流(节点流或处理流)之上,为程序提供更为强大的读写功能,如BufferedReader、BufferedWriter3、关闭处理流时,只需要关闭外层流即可(关闭处理流时系统自动关闭节点流)二者区别:1、节点流是底层流/低级流,直接跟数据源相接2、处理流包装节点流,既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入输出3、处理流对节点流进行包装,使用了修饰器设计模式,
2022-07-10 16:19:30
1357
原创 java(FileReader和FileWriter)
FileReader和FileWriter是字符流,即按照字符来操作ioFileReader相关方法:1、new FileReader(File/String)2、read():每次读取单个字符,返回该字符串,如果到文件末尾返回-13、read(char[]):批量读取多个字符到数组,返回读取到的字符数,如果到文件尾返回-1相关API: new String(char[] c):将char[]转换成String new String(char[],int off,int len)
2022-07-09 16:53:12
513
原创 java(FileInputStream和FileOutputStream)
常用方法:available():返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取的估计剩余字节数close():关闭文件输入流并释放与此流有关的所有系统资源getChannel():返回与此文件输入流有关的唯一FileChannel对象read():从此输入流中读取一个数据字节read(byte[] b):从此输入流中将最多b.length个字节的数据读入一个byte数组中read(byte[] b,int off,int len):从此输入流中将最多len个字节的数据读入到一个byte数组中s
2022-07-09 14:21:34
265
原创 java(文件)
概念:文件是保存数据的敌方文件流:a.流:数据在数据源(文件)和程序(内存)之间经历的路径b.输入流:数据从数据源(文件)到程序(内存)的路径c.输出流:数据从程序(内存)到数据源(文件)的路径创建文件对象相关方法:获取文件的相关信息:目录的操作和文件删除:mkdir:创建一级目录mkdirs:创建多级目录delete:删除空目录或文件IO流原理:1、I/O是Input/Output的缩写,I/O技术是非常实用的技术,用于处理数据传输。如:读/写,网络通讯等2、java程序中,对于数
2022-07-08 17:03:08
136
原创 java(线程初级)
进程:1、进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存空间,当我们使用微信,又启动了一个进程,操作系统将为微信分配新的内存空间2、进程是程序的一次执行过程,或是正在运行的一个程序,是动态过程;有它自身的产生、存在和消亡的过程线程:1.线程由进程创建的,是进程的一个实体2.一个进程可以拥有多个线程单线程:同一时刻,只允许执行一个线程多线程:同一个时刻,可以执行多个线程并发:同一时刻,多个任务交替执行,造成一种“貌似同时”的错觉。简单的说,单核cpu实现的多任务就是并发
2022-07-04 15:47:18
88
原创 java(泛型)
泛型的好处:1、编译时,检查添加元素的类型,提高了安全性2、减少了类型转换的次数,提高效率概念:1、泛型又称参数化类型,解决数据类型的安全性问题2、在类声明或实例化时只要指定好需要的具体类型即可3、java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常。会使代码更简洁更健壮4、泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值类型,或者是参数类型注意事项:1、E只能是引用类型,不可以是基本数据类型2、在指定泛型具体
2022-06-28 17:20:51
539
原创 java(Collections工具类)
1、Collections是一个操作Set、List和Map等集合的工具类2、Collection中提供了一系列静态的方法对集合元素进行排序、查找和修改等操作1、reverse(List):反转List中元素的顺序2、shuffle(List):对List集合元素进行随机排序3、sort(List):根据元素的自然顺序对指定List集合元素按升序排序4、sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序5、swap(List,int,int):将指
2022-06-26 22:16:56
314
原创 java(HashMap类和Hashtable类)
1、Map接口常用的实现类:HashMap、Hashtable和properties2、HashMap是Map接口使用频率最高的实现类3、HashMap是以的方式来存储数据4、key不能重复,但是value可以重复,允许使用null键和null值5、如果添加相同的key,则会覆盖原来的value,等同于修改,(key不会改变,value替换)6、与HashSet一样,不保证映射的顺序,因为底层是以hash表的方式来存储的7、HashMap没有实现同步,因此是线程不安全的1、HashMa...........
2022-06-26 15:03:24
265
原创 java(Map接口)
1、Map用于保存具有映射关系的数据:Key---Value(双列元素)2、Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中3、Map中的key不允许重复,当有重复的key时,value就会发生替换4、Map中的value可以重复5、Map的key可以为null,value也可以为null,注意key为null时,只能有一个,value为null时,可以为多个6、常用的String类作为Map的key7、key和value之间存在单向一对一关系,即通过指定的
2022-06-25 22:29:29
531
原创 java(HashSet类)
1、HashSet实现了Set接口2、HashSet实际上是HashMap3、可以存放null值,但是只能由一个null4、HashSet不保证元素是有序的(存放的数据与取出元素的顺序不一致),取决于hash后,再确定索引的结果5、不能有重复元素/对象1.HashSet底层是HashMap2.添加一个元素时,先得到hash值-->转成-->索引值3.找到存储数据表table,看这个索引位置是否已经存放的有元素4.如果没有,则直接加入5.如果有,调用equals比较(可以自己设定),如果相同,就放弃添加
2022-06-24 23:03:09
414
原创 java(ArrayList、Vector、LinkedList底层结构和源码分析)
(1)允许所有元素,包含null,可以加入多个null(2)ArrayList是由数组来实现数据存储的(3)ArrayList基本等同于Vector,除了ArrayList是线程不完全(执行效率高),在多线程情况下,不建议使用ArrayList1、ArrayList中维护了一个Object类型的数组elementDatatransient:该属性不能被序列化 2、当创建ArrayList对象时,如果使用的是无参构造器,则初始elementData容量为0,第一次添加,则扩容elementData为10,如需
2022-06-22 18:45:20
357
原创 java(List接口)
介绍:List接口是Collection接口的子接口(1)List集合类中元素有序(即添加顺序和取出顺序一致)且可重复(2)List集合中的每个元素都有其对应的顺序索引,即支持索引(3)List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素(4)List接口常用的实现类为ArrayList、LinkedList、VectorList接口实现类常用方法1.void add(int index, Object obj):在index位置插入元素obj2.bool
2022-06-21 17:43:27
136
原创 java(Collection接口)
(1)可以动态保存任意多个对象,使用比较方便(2)提供了一系列方便的操作对象的方法:add、remove、set、get等(3)使用集合添加,删除新元素的示意代码单列集合: 双列集合:(1)collection实现子类可以存放多个元素,每个元素可以是Object(2)有些Collection的实现类,可以存放重复的元素,有些不可以(3)有些Collection的实现类,有些是有序的(List),有些是无序的(Set)(4)Collection接口没有直接的实现子类,是通过它的子接口Set和List来实现的1
2022-06-21 16:42:00
159
原创 java(日期类)
(1)精确到毫秒,代表特定的时间(2)SimpleDataFormat:格式化和解析日期的具体类Calendar类两者存在的问题:(1)可变性:像日期和时间这样的类应该是不可变的(2)偏移性:Data中的年份是从1970开始的,而月份都从0开始(3)格式化:格式化只对Data有用,Calendar则不行(4)它们也不是线程安全的;不能处理闰秒1、LocalData只包含日期,可以获取日期字段2、LocalTime只包含时间,可以获取时间字段3、LocalDataTime包含日期+时间,可以获
2022-06-20 14:58:05
1571
原创 java(Math类、Arrays类、System类、BigInteger类、BigDecimal类)
Math类常用方法Arrays类Arrays里面包含了一系列的静态方法,用于管理或操作数组(1)toString返回数组的字符串形式(2)sort排序(3)binarySearch通过二分搜索法进行查找,要求必须排好序(4)copyOf数组元素复制(如果要拷贝的长度大于原数组,则多出的部分置null(5)fill数组元素填充,将数组中的元素全部被填充为指定数(6)equals比较两个数组元素内容是否完全一样(7)asList将一组值转换为list............
2022-06-19 16:13:06
79
原创 java(StringBuffer类和StringBuilder类)
概念:StringBuffer代表可变的字符序列,可以对字符串内容进行增删;很多方法与String相同,但StringBuffer是可变长度的;StringBuffer是一个容器String VS StringBuffer(1)String保存的是字符串常量,里面的值不能更改,每次String类的更新实际上就是更改地址,效率较低(2)StringBuffer保存的是字符串变量,里面的值可以更改,每次StringBuffer的更新实际上是更新内容,不用每次更新地址(当空间大小不够的时候会重新开辟空间),
2022-06-19 11:03:34
206
原创 java(包装类)
1、针对八种基本数据类型相应的引用类型---包装类Double2、装箱和拆箱3、包装类型的和String类型的相互转化以Integer为例:4、Integer类和Character类的常用方法5、Integer注意事项valueOf的使用:String类(1)String对象用于保存字符串,也就是一组字符序列(2)字符串常量对象是用双引号括起来的字符序列(3)字符串的字符使用Unicode字符编码,一个字符占两个字节(4)String类常用的构造器 ne
2022-06-18 14:36:48
106
原创 java(异常处理)
概念:java语言中,将程序执行中发生的不正常情况称为异常(开发过程中的语法错误和逻辑错误不是异常)异常事件可分为两类:(1)Error:Java虚拟机无法解决的严重问题;Error是严重错误,程序会崩溃(2)Exception:其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理;Exception分为两大类:运行时异常[程序运行时,发生的异常]和编译时异常[编程时,编译器查出的异常]常用异常体系图异常处理的方式 :一、try---catch异常处理概念:try块用于包含可能出错的
2022-06-09 18:41:01
110
原创 java(枚举)
概念:枚举是一组常量的集合,属于一种特殊的类,里面只包含一组有限的特定的对象(一)自定义类实现枚举1、不需要提供set方法,因为枚举对象值通常为只读2、对枚举对象/属性使用final+static共同修饰,实现底层优化3、枚举对象名通常使用全部大写,常量的命名规范4、枚举对象根据需要,也可以有多个属性class Season{ private String name; //私有化构造器 private Season(String name) {
2022-05-31 19:00:53
270
原创 java(内部类)
概念:一个类的内部又完整的嵌套了另一个类结构,被嵌套的类称为内部类,嵌套其他类的类称为外部类语法:class Outer{ class Inner{}//内部类 }//外部类
2022-05-30 18:02:06
136
原创 java(接口)
概念:接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来语法:interface 接口名{属性,方法}class 类名 implements 接口{ 属性,方法,必须实现接口的抽象方法}interface A{ public int n1 = 1; public void say(); default public void hi(){}; public static void hello(){ ...
2022-05-29 16:26:32
93
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人