- 博客(67)
- 收藏
- 关注
原创 【JDBC:连接MySQL数据库】出现SQL注入的解决办法、什么时候需要使用SQL注入、事务的使用、悲观锁乐观锁
以上的配置是针对文本编辑器的方式开发,使用IDEA工具的时候,不需要配置以上的环境变量。Oracle数据库有自己的原理、MySQL数据库也有自己的原理、MS SqlServer数据库也有自己的原理。JDBC开发前的准备工作,先从官网下载对应的驱动jar包,然后将其配置到环境变量classpass中。Statement的SQL注入在业务需要的时候需要进行sql语句的拼接。JDBC的本质是SUN公司制定的一套接口(interface)因为每一个数据库的底层实现原理都不一样。每一个数据库都有自己的实现原理。
2023-06-07 17:15:00
886
原创 3、34道MySQL练习题及答案
列出在部门"SALES"工作的员工的姓名,假定不知道销售部的部门编号。列出薪金高于(在部门30工作的所有员工的薪金)的员工姓名和薪金.部门名称.列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,雇员的工资等级。列出所有"CLERK"(办事员)的姓名及其部门名称,部门的人数.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。列出薪金等于(部门30中员工的薪金)的其他员工的姓名和薪金。求出部门名称中,带’S’字符的部门员工的工资合计、部门人数。
2023-06-06 18:45:00
645
原创 2、MySQL数据库基础
sql、DB、DBMS分别是什么?它们之间的关系?DB:DataBase(数据库,实际上在硬盘以上以文件的形式存在)DBMS:DataBase Management System(数据库管理系统,常见的有:MySQL Oracle DB2 SqlServer…)SQL:结构化查询语言,是一门标准通用的语言。标准的sql适合于所有的数据库产品。SQL属于高级语言,只要能看懂英语单词,都可以看懂sql语句是什么意思SQL语句在执行的时候,实际上内部也会先进行编译,然后再执行sql。
2023-06-05 07:15:00
944
原创 1、mysql的安装与配置
配置完环境变量后,在C:\Program Files (x86)\MySQL目录下新建一个配置文件mysql.ini,同时在bin的同级目录C:\Program Files (x86)\MySQL下创建一个data文件夹(用来存放数据库数据)退出输入:exit。直接关闭cmd窗口是没有退出的,要输入exit才会退出。win+R,输入cmd,进入dos窗口后,输入此代码后没有反应。服务启动成功后,需要登陆的时候输入命令(第一次登录没有密码)输入以下命令,回车,会提示安装成功。(没有设置密码,直接回车)
2023-06-04 12:01:11
603
原创 【基础9】SQL 游标的创建,在存储过程中的调用,使用变量的游标
游标的使用步骤:声明游标、打开游标、读取游标、关闭游标、释放游标。使用滚动游标逐行访问Employees表。使用游标逐行访问Employees表。循环读取游标结果集中的数据。使用游标循环调用存储过程。
2023-05-21 08:00:00
2301
原创 【基础7】SQL事务及触发器
instead of 触发器 在数据变动以前被激发,用来代替数据变动 (insert、update、delete) 操作,执行触发器定义操作。 对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,他不应该以任何方式依赖于或影响其他事务。DML触发器:与表密不可分,触发器是不能离开表独立存在的,主要用于保护表中的数据,实现数据的完整性。事务的各步操作是不可分的(原子的); 事务完成后,他对数据库的修改被永久保持,事务日志能够保持事务的永久性。一旦事务提交/回滚,则事务结束。
2023-05-20 08:30:00
1286
原创 【基础6】存储过程的 创建与调用
什么是存储过程类似于C语言中的函数。用来执行管理任务或应用复杂的业务规则存储过程可以带参数,也可以返回结果存储过程可以包含数据操纵等语句、变量、逻辑控制语句等。(单个select语句、select语句块、select语句与逻辑控制语句)存储过程的优点执行速度更快允许模块化程序设计提高系统安全性减少网络流量存储过程的分类系统存储过程由系统定义,存放在master数据库中。类似c语言中的系统函数系统存储过程的名称都以“SP_ ”开头或“XP_ ”开头。
2023-05-19 23:30:00
4968
原创 【基础4】SQL基础 索引与视图的建立
SQL Server中的数据也是按页(一页是4kb)存放。索引:是SQL Sever 编排数据的内部方法。它为SQL提供一种方法来编排查询数据索引页:数据库中存储索引的数据页;索引页类似于汉语字典中按拼音或笔画排序成的目录页索引的作用:通过使用索引,可以大大提高数据库的检索速度,改善数据库性能视图是一张虚拟表,他表示一张表的部分数据或多张表的综合数据,其结构和数据都是建立在对表的查询的基础上的数据并不存放在视图中,而是存放在视图所引用的原始表(基表)中,视图是基表数据的一个映射。
2023-05-18 23:30:00
1185
原创 【基础1】SQL 数据库分类 代码建库、代码修改属性 代码建表 代码修改数据表属性 代码为数据表插入信息 数据的修改与删除
触发器:检查信用值 约束方法:规则、存储过程、触发器约束的目的:确保表中数据的完整性常用的约束类型:主键约束 要求主键列数据唯一,并且不允许为空唯一约束 要求该列唯一,允许为空,但只能出现一个空值检查约束 某列取值范围限制、格式限制、如有关年龄的约束默认约束 某列的默认值,如班级男生较多,默认性别为男外键约束 用于两表间建立关系时指定引用主表的那一刻非空约束选择主键的原则:量少性:尽量选择单个键作为主键稳定性:尽量选择数值更新少的作为主键。
2023-05-17 13:15:37
927
3
原创 【java进阶13: 注解】java内置的需要掌握的注解、元注解、反射注解、反射方法上的注解、注解在开发中的作用
只能出现在类上面,要求这个类中必须有一个int类型的id属性,如果没有这个属性就报异常,如果有这个属性则正常运行。如果一个注解的属性名是:value,并且该注解类型中只有这一个属性时在使用的时候,该属性名可以省略。注解中的属性为数组时,如果只写一个参数,则大括号可以省略,属性有枚举类型时怎么用。这个Target注解用来标注“被标注的注解”可以出现在哪些位置上。用来标注“注解类型”的“注解”,称为“元注解”这是一个元注解,用来标注“注解类型”的“注解”这是一个元注解,用来标注“注解类型”的“注解”
2023-04-11 14:15:00
495
原创 【java进阶12: 反射】获取类的字节码的三种方式、获取文件绝对路径(包括以流的方式返回)、资源绑定器、可变长度参数、反射调用对象方法、获取某个类的父类/实现的接口
通过类加载器加载,看到以上代码类加载会找String.class文件,找到就加载,那么是怎么进行加载的呢? 注意:扩展类加载器专门加载:C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext*.jar。 如果通过“启动类加载器”加载不到的时候,会通过“扩展类加载器”加载。双亲委派,如果都加载不到,才会考虑从应用类加载器中加载。 如果“扩展类加载器”没有加载到,那么会通过“应用类加载器”加载。“父”无法加载到,再从“扩展类加载器”中加载,这个称为“母”
2023-04-10 13:00:00
1646
原创 【java进阶11:多线程】实现多线程的方式、线程的生命周期、线程调度、多线程并发中数据的安全问题、死锁、守护线程、定时器、wait和notify方法、生产者和消费者模式
多线程什么是进程?什么是线程?进程是一个应用程序(可以理解为是一个软件)。线程是一个进程中的执行场景/执行单元。一个进程可以启动多个线程。对于java程序来说,当在DOS命令窗口中输入:java HelloWorld 回车之后先启动JVM,而JVM就是一个进程。JVM先启动一个主线程调用main方法;同时再启动一个垃圾回收线程负责看护,回收垃圾。最起码,现在的java程序中至少有两个线程并发,一个是执行main方法的主线程,一个是垃圾回收线程。进程和线程的关系阿里巴巴:进程京东:进程。
2023-04-09 12:15:00
169
原创 【java进阶10:IO流】File类、序列化与反序列化、作业:目录拷贝、IO+Properties的联合应用
IO流,什么是IO?通过IO可以完成硬盘文件的读和写。IO流的分类:有多种分类方式:一种方式是按照流的方向进行分类:以内存为参照物。 往内存中去,叫:输入(Input),或者叫:读(Read) 从内存中出,叫:输出(Output),或者叫:写(Write)另一种方式是按照读取数据方式不同进行分类:字节流 有的流是按照字节的方式读取数据,一次读取一个字节byte(8个二进制位)。这种流是万能的,什么类型的文件都可以读取。包括:文本文件、图片、声音文件、视频文件等······
2023-04-08 13:00:00
399
原创 【java进阶09:集合】泛型、增强for、Collections集合工具类
集合概述什么是集合?有什么用?数组实际上就是一个集合。集合实际上就是一个容器,可以来容纳其他类型的数据。集合为什么在开发中使用的比较多? 集合是一个容器,是一个载体,可以一次容纳多个对象。在实际开发中,假设连接数据库,数据库当中有10条记录,那么假设把这10条记录查询出来,在java程序中会将10条数据封装成10个java对象,然后将10个java对象放到某一个集合当中,将集合传到前端,然后遍历集合,将一个数据一个数据展现出来。
2023-04-07 08:00:00
321
原创 【java进阶08:异常】finally关键字、自定义异常类、用户业务作业、军队武器作业
注意:java中异常发生之后如果一直上抛,最终抛给了main方法,main方法继续上抛,抛给了调用者JVM,JVM知道这个异常发生,只有一个结果:终止java程序的执行。假设java中没有对异常进行划分,没有分为编译时异常和运行时异常,所有的异常都需要在编写程序阶段对其进行预处理,将是怎样的效果? 异常发生之后,如果我选择了上抛,抛给了我的调用者,调用者需要对这个异常继续处理,那么调用者处理这个异常同样有两种处理方式。编译时异常和运行时异常,都是发生在运行阶段,编译阶段异常是不会发生的。
2023-04-05 22:35:11
494
1
原创 【java进阶07:常用类】String类、包装类、日期类Date、数字类、随机数、枚举类型
获取自1970年1月1日 00:00:00 000 到当前系统时间的总毫秒数,以及统计一个方法执行所耗时长。生成5个不重复的随机数[0~100],如果重复,则重新生成,然后放到数组当中,要求这5个随机数不能重复。String、int、Integer之间的互相转换。通过访问包装类的常量,来获取最大值和最小值。获取系统当前时间,以及对日期的格式化。String类中需要掌握的一些方法。String类型的字符串存储原理。Integer类当中常用的方法。String类的面试题一个。String类中的构造方法。
2022-11-25 09:15:00
497
原创 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法
数组总结:1、数组的优点和缺点,并且要理解为什么。空间存储上,内存地址是连续的每个元素占用的空间大小相同知道首元素的内存储地址通过下标可以计算出偏移量通过一个数学表达式,就可以快速计算出某个下标位置上元素的内存地址,直接通过内存地址定位,效率非常高优点:检索效率高缺点:随机增删效率低,数组无法存储大数据量注意:数组最后一个元素的增删效率不受影响。2、一维数组的静态初始化和动态初始化静态初始化:动态初始化://四个长度的一维数组,每个元素默认值0。
2022-11-24 10:00:00
662
原创 【java进阶05:内部类与匿名内部类】
当new的对象后面有{}时,这就是一个匿名内部类。只是new的不是一个接口的匿名内部类,而是一个类的,相当于匿名重写方法。所以当我们又加了一个{},表示的含义,其实就是一个代码块。
2022-11-23 08:00:00
115
原创 【java进阶04:继承】Object类需要重写的方法:toString()方法、equals()方法、finalize()方法 以及 hashCode()方法
这个老祖宗类中的方法需要先研究一下,因为这些方法都是所有子类通用的。任何一个类默认继承Object,就算没有直接继承,最终也会间接继承。String类中SUN重写了他的toString方法和equals方法。使用IDEA自动生成toString和equals方法。String对象比较的时候必须使用equals方法。Object类的 toString() 方法。GC负责调用的finalize方法。Object类的equals方法。equals()方法重写练习。hashCode()方法。
2022-11-22 08:00:00
1026
原创 【java进阶03: package和import】及访问控制权限
同一个包中import可以省不同包的两个类,一个类中要使用另一个类中的东西,必须有import解释之前接收键盘输入时使用的java.util.Scanner ,以及使用java.lang.下所有的类都不需要导。
2022-11-21 14:05:47
730
原创 【java进阶02:抽象类和接口】类与类之间的关系 抽象类与接口的区别
什么是抽象类非抽象类继承抽象类,该抽象类中有抽象方法,非抽象子类中一定要对该抽象方法进行实现,否则报错面试判断题:java中凡是没有方法体的方法都是抽象方法。错误的。
2022-11-18 08:00:00
319
原创 【java进阶01:final关键字】final修饰的变量只能赋一次值
final修饰的类无法继承。final修饰的引用一旦指向某个对象,则不能再指向其他对象,但该引用指向的对象内部的数据是可以修改的。编辑final修饰的实例变量必须手动初始化,因为系统不会赋默认值,强制手动赋值,否则报错final修饰的实例变量一般和static联合使用,成为常量。
2022-11-17 19:13:15
3280
原创 C语言基础15——程序环境和预处理。程序环境讲解、宏讲解、条件编译、文件包含、offsetof宏实现
程序的翻译环境和执行环境在ANSI C的任何一种实现中,都存在两个不同的环境:第一种:翻译环境,在这个环境中源代码被转换为可执行的机器指令。第二种:执行环境,它用于实际代码执行。翻译环境/* * 组成一个程序的每个源文件通过编译过程,分别转换成目标代码。(object code) * 每个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整的可执行程序。 * 连接器同时也会引入标准C函数库中任何被该程序所用到的函数,而且它可以搜索程序员个人的程序库,将需要的..
2022-05-16 01:00:00
210
原创 C语言基础14——文件操作。文本文件或二进制文件读写。通讯录的改造。文件缓冲区讲解
目录为什么使用文件?什么是文件?文件的打开和关闭文件指针文件的打开和关闭文件的打开方式流重定义文件文件流文件的顺序读写以字符形式读写文本文件fputc()函数fgetc()函数以字符串形式读写文本文件fputs()函数fgets()函数格式化读写文件fprintf()函数fscanf()函数以数据块的形式读写文件fwrite()函数fread()函数三种输入/输出函数的比较改造通讯录文件的随机读写fsee
2022-05-15 01:00:00
6779
原创 C语言基础13——动态内存管理。动态开辟内存函数、常见动态内存错误、C程序内存开辟讲解、柔性数组、atoi函数讲解
目录为什么存在动态内存分配?动态内存函数的介绍malloc()和free()函数calloc()函数realloc()函数常见的动态内存错误经典笔试题C/C++程序的内存开辟柔性数组练习atoi()函数为什么存在动态内存分配?我们使用过的开辟空间的方法:int val = 20; //在栈空间上开辟了4个字节char arr[10] = {0}; //在栈空间上开辟10个字节的连续空间/* * 上述开辟空间的方式有两个特点: * - 开
2022-05-14 01:00:00
343
原创 C语言基础12——自定义类型。结构体、位段、枚举、联合体。通讯录
结构体结构体的声明struct 结构体名字{ 结构体成员};//注意大括号后面的分号;不能少,这是一条完整的语句。//例如描述一个学生:struct Stu{ char name[20];//名字 int age; //年龄 char sex[5];//性别 char id[20];//学号};//分号不能丢 特殊声明:匿名结构体 //匿名结构体:结构体没有名字。//匿名结构体只有在声明的时候才能创建变量。并且之后无法再次创建,因
2022-05-13 01:00:00
1312
原创 C语言基础11——字符串函数、内存函数。字符串函数模拟实现、字符函数讲解、内存函数模拟实现
目录求字符串长度函数strlen()函数不可设置长度的字符串函数strcpy()函数strcat()函数strcmp()函数可设置长度的字符串函数strncpy()函数strncat()函数strncmp()函数字符串中查找字符strchr()strrchr()字符串查找函数strstr函数strtok()函数错误信息报告strerror()函数perror()函数字符函数字符分类函数字符转换函数内存函数memc
2022-05-12 01:00:00
399
原创 C语言基础10——指针进阶。字符指针、指针数组、数组指针、函数指针、函数指针数组、回调函数、数组名详解、杨氏矩阵、字符串旋转
字符指针 字符指针的另一种使用方式 #include <stdio.h>int main(){ //字符指针的使用 char ch = 'q'; char * pc = &ch; //本质上是把这个字符串的首字符地址存储在了指针变量ps中 const char * ps = "hello world"; //数组存储字符串时,是把整个字符串都存储在其中。 char arr[] = "hello world";
2022-05-11 01:00:00
496
原创 C语言基础09——数据在内存中的存储。整型的存储、大小端讲解、浮点数的存储、杨辉三角、找凶手、猜名次
目录数据类型基本内置类型类型的基本分类整型在内存中的存储计算机中整数的三种表示方法:原码、反码、补码大小端练习浮点型在内存中的存储为什么以下程序输出结果与想象不同?浮点数存储规则练习printf与scanf输入输出格式总结:%c 用于打印字符%s 字符串%d 用于有符号十进制整数%u 用于无符号十进制整数%f float浮点型%lf double浮点型%x 无符号十六进制整数1122aabb(小写)%X 无符号十六进制整数
2022-05-10 01:00:00
627
原创 C语言基础08——程序调试。断言、const讲解、strcpy()函数模拟实现、调整奇偶数顺序
目录以下程序发生死循环字符串拷贝断言的使用const修饰指针变量继续优化我们写的strcpy函数strcpy优化最终版自己编写strlen错误出现的类型、Debug与Release的区别编写方法,调整奇偶数顺序以下程序发生死循环/* * - i 和arr都是局部变量,局部变量存放在栈区上。 * - 栈区内存的使用习惯是:先使用高地址空间,再使用低地址空间 * - 数组随着下标的增长地址是由低到高变化的。 * * - 如果是先定义的i,再定义的数组。
2022-05-09 01:00:00
178
原创 C语言基础07——结构体
结构体类型的声明与初始化结构体的声明 结构体使C语言有能力描述复杂类型。结构体是一种集合,它里面可以包含多个变量或数组,它们的类型可以相同,也可以不同,这些变量或数组都称为结构体的成员(Member)。 结构体也是一种数据类型,它由程序员自己定义,可以包含多个其他类型的数据。 像 int、float、char 等是由C语言本身提供的数据类型,不能再进行分拆,我们称之为基本数据类型;而结构体可以包含多个基本类型的数据,也可以包含其他的结构体,我们将它称为复杂数据类型或构造数据类型。..
2022-05-08 01:00:00
413
原创 C语言基础06——指针、指针运算
目录什么是指针?指针和指针类型野指针指针运算指针和数组二级指针指针数组练习什么是指针? 指针就是地址。地址唯一标识一块地址空间。 指针变量:用于存放地址的变量。 地址的组成、指针的大小 /* * 内存是怎么样编号的?一个内存单元占用多大的空间? * 众所周知,我们的电脑分32位和64位的。 * - 32位的电脑,有32根地址线(这个地址线是物理线),通电就会产生电信号,强电信号就是1,弱电信号就是0 * 而电信..
2022-05-07 01:00:00
536
原创 【java基础19:super关键字】用法、内存图里的运行原理等 之前的作业:猜数字、计算器、打印时/分/秒(满进/少退)
super关键字 super是一个关键字 super: super能出现在实例方法和构造方法中 super的语法是:“super.”、“super()” super不能使用在静态方法中 super.大部分情况下是可以省略的。 super.什么时候不能省略 父类和子类中有同名属性/相同方法,想在子类中访问父类的东西,“super.”不能省 super()只能出现在构造方法第一行,通过当前的构造方法去调用“父类”中其他的构造方法
2022-05-06 01:00:00
398
原创 【java基础18:方法覆盖与多态】什么时候使用方法覆盖 toString方法的覆盖 多态的基础语法与作用 向上/向下转型
方法覆盖与多态;什么时候使用方法覆盖 toString方法的覆盖 多态的基础语法与作用 向上/向下转型
2022-05-05 01:00:00
597
原创 idea按两下shift出现全局搜索的解决办法(中英文两种)
最近遇到了左边shif双击弹出搜索全局的烦恼,因为我是用shift切换中英文,很容易就误触了,要打开IDEA内的注册表。1.中文CTRL+ALT+SHIFT+/ 组合键。双击“注册”或(按ctrl+shift+a,弹出搜索框,输入:注册)2.英文按ctrl+shift+a,弹出搜索框,输入:registry 然后回车3.找到“ide.suppress.double.click.handler”,将后面的复选框勾上4.勾选上复选框后关闭,然后双击shift的时候就不会再出现全局搜索框
2022-05-04 01:00:00
5038
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人