- 博客(18)
- 收藏
- 关注
原创 IOC操作bean管理(Bean的生命周期)
1.什么叫生命周期生命周期就是从创建对象到销毁对象的过程2.bean生命周期(1)通过构造器创建bean实例(使用无参构造器)(2)为bean的属性设置值和对其他bean引用(通过set方法)(3)调用bean的初始化方法(需要进行配置)(4)获取到bean对象之后可以使用bean(5)当容器关闭的时候,调用bean的销毁的方法(需要进行配置销毁的方法)3.测试bean生命周期(1)实现的类和相关方法public class Orders { private
2022-03-23 15:35:32
166
原创 JDBC编程6步
第一步:注册驱动(告诉java程序要连接哪个品牌的数据库)第二步:获取连接(表示JVM进程和数据库进程之间的通道打开了,进程之间的重量级通信,使用之后要关闭通道)第三步:获取数据库操作对象(专门执行sql语句的对象)第四步:执行sql语句(DDL、DQL...)第五步:处理查询结果集(只有当第四步执行的是select的语句的时候才有第五步)第六步:释放资源(使用完资源之后要关闭资源,Java和数据库之间属于进程之间的通信,使用之后要关闭)...
2022-03-09 20:59:34
1971
原创 数据库设计三范式
1.什么是数据库设计三范式?数据库表的设计依据,教你怎么进行数据库表的设计2.数据库设计范式分为哪几种?第一范式:最核心最重要的范式,所有的表设计都要满足,要求任何一张表必须要有主键,每一个字段原子性(最小的数据单元)不可再分第二范式:建立在第一范式的基础之上,要求所有非主键字段完全依赖主键,不要产生部份依赖第三范式:建立在第二范式的基础之上,要求所有非主键字段直接依赖主键,不要产生传递依赖设计数据库表的时候,按照以上的范式进行,可以避免表中数据的冗余,空间的浪费口诀:多对多
2022-03-09 11:06:21
476
原创 事务(transaction)
1.什么是事务?一个事务其实就是一个完整的业务逻辑,是一个最小的工作单元,不可再分2.只有DML与事务有关insertdeleteupdate因为只有这三个语句是对数据库中表的数据进行增删改,只要数据涉及到增删改就要考虑安全问题3.到底什么是事务?说到底事务就是多条DML语句同时成功或者同时失败4.事务是怎么做到多条DML语句同时成功或者同时失败?InnoDB存储引擎(缺点:效率低,优点:支持事务):提供一组用来记录事务性活动的日志文件在事务执行的过程中,可以提交
2022-03-07 22:28:32
148
原创 SQL子查询(重要)
1.什么是子查询?select语句中嵌套select语句被嵌套的select语句称为子查询2.子查询都可以出现在哪里?select..(select)..from..(select)..where..(select)..(1)where子句中的子查询案例:找出比最低工资高的员工名称和工资?select ename,sal from emp where (select min(sal) from emp);(2)from子句中的子查询注意:from后面的子查询,可以将子查询的查
2022-03-06 15:55:30
153
原创 SQL连接查询(重点)
1.什么是连接查询?从一张表中单独查询称为单独查询,从多张表中联合起来跨表查询数据被称为连接查询2.连接查询的分类?根据语法的年代分类:SQL99(重点)、SQL92根据表的连接方式分类:内连接:等值连接、非等值连接、自连接外连接:左外连接(左连接)、右外连接(右连接)全连接3.当两张表进行连接查询的时候,没有任何条件的限制会发生什么状况?最终查询结果的条数,是两张表条数的乘积,这种现象被称为:笛卡尔积现象4.怎么避免笛卡尔积现象?连接时附加条件,满足这个条件的记
2022-03-06 15:19:57
521
原创 分组查询(重要)
1.什么是分组查询?在实际的开发中,可能需要先对一组数据进行分组,然后再对每一组的数据进行操作,这时需要用到分组查询2.分组查询的语法select...from...group by...例如:计算每个部门的工资和?计算每个工作岗位的平均薪资?计算每个工作岗位的最高薪资?3.关键字的执行顺序问题select(4)...from(1)...where(2)...group by(3)...order by(5)...//顺序不能颠倒,需要记忆4.(1)找出每个工作岗位的工资和实
2022-03-02 22:59:42
5152
原创 单/多行处理函数
一、单行处理函数(数据处理函数)--特点:一个输入对应着一个输出和单行处理函数相对应的是:多行处理函数(特点:多个输入对应一个输出)常见单行处理函数:1.lower转小写:select lower(ename) from emp;2.upper转大写: select upper(ename) from emp;3.substr截取字符串:(substr(被截取的字符串,起始下标,截取的长度)),下标从0开始找出员工名字第一个字母是'A'的员工信息:第一种方式:select ena
2022-03-02 21:55:09
399
原创 基本SQL语句的使用
查询语句一、简单查询1.查询一个字段:select 字段名 from 表名;(注意:select和from是关键字,字段名和表名是标识符)2.查询两个或多个字段:select 字段名,字段名 from 表名;(用逗号隔开即可)3.查询所有字段:(1)可以把所有字段都写上:select 字段名,字段名,字段名... from 表名;(2)可以使用*号:select * from 表名;缺点:效率低,可读性差,在实际开发中不建议使用()4.给查询的列起别名:select 字段名
2022-03-02 20:00:18
1214
原创 SQL语句的分类
DQL:数据查询语言(凡是带有select关键字的都是DQL)select...DML:数据操作语言(凡是对表中的数据进行增删改的都是DML)insert(增) delete(删) update(改)DDL:数据定义语言(凡是带有create drop alter的都是DDL-主要操作表的结构(字段),而不是数据)TCL:事务控制语言包括:(1)事务提交commit (2)事务回滚rollback...DCL:数据控制语言例如:授权grant ...
2022-03-02 15:19:06
61
原创 关于注解Annotation
1.什么是注解?注解Annotation是一种引用数据类型,编译之后生成xxx.Class文件2.定义注解的语法格式[修饰符列表] @interface注解类型名{}注解在任何地方都可以使用3.java.lang包下的注解(1)@Deprecated:表示已过时的(2)@override:表示一个方法声明打算重写超类的方法声明@override注解是标识性注解,只能注解方法,这个注解是给编译器参考的,和运行阶段没有关系,java方法中凡是带有这个注解的,编译器会自动进行检查该
2022-03-01 01:16:44
173
2
原创 关于文件路径的问题?
1.怎么更加灵活的获取文件的绝对路径String path = Thread.currentThread().getContextClassLoad().getResourse("写相对路径,但是这个路径从相对路径src出发开始找").getPath();这种方式可以获取一个文件的绝对路径。(通用方式,不会受到环境移植的影响)但是用这种方式获取的文件必须放在类的根目录下,也就是必须放在src下。直接以流的方式进行返回:InputStream in = Thread.currentThre
2022-02-28 23:20:06
103
原创 关于反射机制
1.什么是反射机制,反射机制有什么作用通过反射机制可以操作字节码文件,反射机制可以让程序更加灵活2.反射机制相关的类在哪个包下?java.lang.reflect.*;3.反射机制相关的主要的类?java.lang.Class:类java.lang.reflect.Method:类的成员方法java.lang.reflect.Constructor:类的构造方法java.lang.reflect.Field:类的属性java.lang.reflect.Array:提供了静
2022-02-28 20:30:16
170
原创 如何用代码实现死锁
package com.edu.thread_;@SuppressWarnings({"all"})public class DeadLock { public static void main(String[] args) { Object o1 = new Object(); Object o2 = new Object(); Thread t1 = new Thread1(o1,o2); Thread t2 = new Th.
2022-02-24 22:08:02
164
原创 多线程的安全问题
在多线程的环境下数据什么时候会存在线程安全的问题?1.多线程并发2.线程之间有共享数据3.线程之间的共享数据有修改行为如何解决线程安全的问题?让线程不能并发,也就是让线程排队执行,这种机制被称为“线程同步机制”,这种机制会牺牲一部分效率,但是能保证线程的安全异步编程模型和同步编程模型异步编程模型:A线程和B线程两个线程分别交替独立执行,也就是多线程并发,虽然效率高,但是不安全同步编程模型:A线程需等待B线程结束才能执行,或者B线程需要等待A线程结束才能执行,两个线程之间存在排
2022-02-24 22:07:00
1482
原创 实现线程的三种方式
1.编写一个类继承thread线程类,重写run方法,直接new线程对象,在主方法中调start方法启动线程2.(1)编写一个类实现可运行接口Runnable,重写run方法,new线程对象,将编写的类封装到线程对象中,在主线程中调用start方法,启动线程3.直接在线程对象实例中new一个实现了可运行接口Runnable的匿名内部类,重写run方法,在主线程中调用start方法,启动线程...
2022-02-22 23:36:00
399
原创 线程、进程,并发和并行
1.什么是线程,什么是进程,为什么要有线程,有什么关系和区别进程:可以理解成一种应用程序线程:是进程中的一种实现场景线程是为了增加程序运行的效率进程与进程之间的内存空间是相互独立的,线程与线程之间只有栈空间是相互独立的,但是堆和方法区是内存共享的2.并发和并行是什么意思,有什么区别并发:两个或者多个线程在同一时间间隔运行,从宏观来看是在某一个时间区间同时运行的,从微观来看是在不同的时间间隔交替运行并行:两个或者多个线程在同一时间点同时运行区别:并行不需要交替执行,并发会交替执
2022-02-22 23:26:28
264
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人