- 博客(49)
- 收藏
- 关注
转载 Spring JDBCTemplate
* Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发* 步骤: 1. 导入jar包 2. 创建JdbcTemplate对象。依赖于数据源DataSource * JdbcTemplate template = new JdbcTemplate(ds); 3. 调用JdbcTemplate的方法来完成CRUD的...
2019-07-08 16:39:06
131
转载 数据库连接池
标准接口:DataSource javax.sql包下的 1. 方法: * 获取连接:getConnection() * 归还连接:Connection.close()。如果连接对象Connection是从连接池中获取的,那么调用Connection.close()方法,则不会再关闭连接了。而是归还连接1. C3P0:数...
2019-07-08 15:15:11
103
转载 JDBC事务demo
public class JDBCDemo { public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt1 = null; PreparedStatement pstmt2 = null; ...
2019-07-02 14:05:08
225
转载 JDBC
概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库 * JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。各个对象: 1. DriverManage...
2019-07-02 13:12:28
149
转载 MySQL事务
1. 事务的基本介绍 1. 概念: * 如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。 2. 操作: 1. 开启事务: start transaction; 2. 回滚:rollback; 3. 提交:commit; 3. MySQL数据库中事务默认自动提交 ...
2019-07-01 17:25:45
81
转载 MySQL多表查询
多表查询的分类: 1. 内连接查询: 1. 隐式内连接:使用where条件消除无用数据 * 例子: -- 查询所有员工信息和对应的部门信息 SELECT * FROM emp,dept WHERE emp.`dept_id` = dept.`id`; -...
2019-07-01 13:49:27
134
转载 数据库设计-123范式
数据库设计的范式 * 概念:设计数据库时,需要遵循的一些规范。要遵循后边的范式要求,必须先遵循前边的所有范式要求 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德...
2019-07-01 11:48:35
355
转载 MySQL约束
* 概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。 * 分类: 1. 主键约束:primary key 2. 非空约束:not null 3. 唯一约束:unique 4. 外键约束:foreign key* 非空约束:not null,值不能为null 1. 创建表时添加约束 CREATE TABLE s...
2019-06-27 21:04:54
77
转载 MySQL基础
数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库-- SQL数据库类型: 1. int:整数类型 2. double:小数类型 3. date:日期,只包含年月日,yyyy-MM-dd ...
2019-06-27 10:52:44
99
转载 Java基础--注解
作用分类:编写文档:通过代码里标识的注解生成文档 代码分析:通过代码里标识的注解对代码进行分析 编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查自定义注解: 格式:元注解public @interface 注解名称{} 本质:public interface XXXX extends java.lang.annotation.Annot...
2019-06-26 12:03:44
79
转载 Java基础--反射
框架:半成品软件。可以在框架的基础上进行软件开发,简化编码反射:将类的各个组成部分封装为其他对象,这就是反射机制 * 好处: 1. 可以在程序运行过程中,操作这些对象。 2. 可以解耦,提高程序的可扩展性。获取Class对象的方式: 1. Class.forName("全类名(包名+类名)"):将字节码文件加载进内存,返回Class对象...
2019-06-20 19:42:58
62
转载 Java基础--Junit
测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。 2. 白盒测试:需要写代码的。关注程序具体的执行流程。Junit使用:白盒测试 * 步骤: 1. 定义一个测试类(测试用例) * 建议: * 测试类名:被测试的类名Test ...
2019-06-20 16:15:44
75
转载 JDK8新特性--Stream流
Stream(流)是一个来自数据源的元素队列 元素是特定类型的对象,形成一个队列。Java中的Stream并不会存储元素,而是按需计算。数据源流的来源。 可以是集合,数组 等。和以前的Collection操作不同, Stream操作还有两个基础的特征: Pipelining: 中间操作都会返回流对象本身。 这样多个操作可以串联成一个管道, 如同流式风格(fluent styl...
2019-06-19 18:37:51
175
转载 JDK8新特性--函数式接口 //TODO
函数式接口在Java中是指:有且仅有一个抽象方法的接口。(可以包含默认,静态,私有的方法)而Java中的函数式编程体现就是Lambda,所以函数式接口就是可 以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。@FunctionalInterface注解旦使用该注解来定义接口,编译器将会强制检查该接口是否确实有且仅有...
2019-06-18 21:42:38
131
转载 Java基础--TCP通信
在Java中,提供了两个类用于实现TCP通信程序:1. 客户端: java.net.Socket 类表示。创建 Socket 对象,向服务端发出连接请求,服务端响应请求,两者建 立连接开始通信。2. 服务端: java.net.ServerSocket 类表示。创建 ServerSocket 对象,相当于开启一个服务,并等待客户端 的连接。Socket类构造方法public S...
2019-06-18 18:14:53
192
转载 Java基础--缓冲流、转换流、序列化流
缓冲流也叫高效流,是对4个基本的 FileXxx 流的增强字节缓冲流: BufferedInputStream , BufferedOutputStream字符缓冲流: BufferedReader , BufferedWriter构造方法 public BufferedInputStream(InputStream in) :创建一个 新的缓冲输入流。public Buf...
2019-06-17 20:08:19
110
转载 Java基础--Properties类
java.util.Properties 继承于 Hashtable ,来表示一个持久的属性集。它使用键值结构存储数据,每个键及其 对应值都是一个字符串。是唯一一个和IO流结合的的集合构造方法public Properties() :创建一个空的属性列表。基本的存储方法 public Object setProperty(String key, String value) ...
2019-06-17 15:47:32
85
转载 Java基础--IO流
字节流字节流可以传输任意文件数据。字节输出流【OutputStream】java.io.OutputStream 抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。它定义了字节输出流的基本共性功能方法。public void close() :关闭此输出流并释放与此流相关联的任何系统资源。public void flush() :刷新此输出流并强制任何缓冲...
2019-06-13 21:56:50
126
转载 Java基础--递归
递归:指在当前方法内调用自己的这种现象。递归的分类: 递归分为两种,直接递归和间接递归。直接递归称为方法自身调用自己。间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。注意事项:递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。构造方法,禁止递归...
2019-06-11 16:54:10
75
转载 Java基础--File类
java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。绝对路径:是一个完整的路径,从盘符开始的路径相对路径:是一个简化的路径,相对 指的是相对于当前的根目录构造方法public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。public File(Strin...
2019-06-11 16:10:43
95
转载 Java基础--Lambda表达式
Java 8(JDK 1.8)中,加入了Lambda表达式的重量级新特性Lambda省去面向对象的条条框框,格式由3个部分组成: 一些参数 一个箭头 一段代码 (参数类型 参数名称) ‐> { 代码语句 }别注意:1. 使用Lambda必须具有接口,且要求接口中有且仅有一个抽象方法。 无论是JDK内置的 Runnable 、 Comparator 接口还是自定义...
2019-06-11 13:45:33
75
转载 Java基础--线程池
如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。线程池:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。 合理利用线程池能够带来三个好处: 1. 降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都...
2019-06-09 10:39:59
95
转载 Java基础--等待唤醒机制
一个线程进行了规定操作后,就进入等待状态(wait()), 等待其他线程执行完他们的指定代码过后再将其唤醒(notify());在有多个线程进行等待时, 如果需要,可以使用 notifyAll()来唤醒所有的等待线程。 wait/notify 就是线程间的一种协作机制。调用wait和notify方法需要注意的细节 1. wait方法与notify方法必须要由同一个锁对象调用。因为:对应...
2019-06-07 13:44:06
134
转载 Java基础--线程状态
线程状态 导致状态发生条件 NEW(新建) 线程刚被创建,但是并未启动。还没调用start方法。 Runnable(可运行) 线程可以在java虚拟机中运行的状态,可能正在运行自己代码,也可能没有,这取决于操作系统处理器。 Blocked(锁阻塞) 当一个线程试图...
2019-06-06 15:51:46
101
转载 Java基础--线程安全
如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 线程安全问题都是由全局变量及静态变量引起的。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。 同步代码...
2019-06-05 20:40:15
59
转载 Java基础--多线程
并发与并行并发:指两个或多个事件在同一个时间段内发生。 并行:指两个或多个事件在同一时刻发生(同时发生)。 线程与进程 进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。 线程:线程是进程中的一个执行单元,负责当前进程中程...
2019-06-05 18:03:10
74
转载 Java基础--异常
异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。 异常的根类是 java.lang.ThrowableThrowable体系: Error:严重错误Error,无法通过处理的错误,只能事先避免。Except...
2019-06-04 23:08:43
79
转载 Java基础--JDK9对集合添加的优化
Java 9,添加了几种集合工厂方法,更方便创建少量元素的集合、map实例。新的List、Set、Map的静态工厂方法可以更方便地创建集合的不可变实例。 例子: public class HelloJDK9 { public static void main(String[] args) { Set<String> str1=Set.of("a",...
2019-06-04 20:46:19
95
转载 Java基础--Map集合
Map常用子类 HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致(无序)。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。 LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重...
2019-06-04 20:40:02
125
转载 Java基础--Collections工具类
java.utils.Collections 是集合工具类,用来对集合进行操作。部分方法如下:public static boolean addAll(Collection c, T... elements) :往集合中添加一些元素。 public static void shuffle(List list) 打乱顺序 :打乱集合顺序。 public static vo...
2019-06-04 16:53:29
106
转载 Java基础--Set接口
同样继承自 Collection 接口,它与 Collection 接口中的方法基本一致,并没有对 Collection 接口进行功能上的扩充,只是比 Collection 接口更加严格了。与 List 接口不同的是, Set 接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。 没有索引,也没有带索引的方法,也不能使用普通的for循环。HashSetjava.util...
2019-06-04 14:14:27
125
转载 Java基础--可变参数
在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化成如下格式: 修饰符 返回值类型 方法名(参数类型... 形参名){ }其实这个书写完全等价与 修饰符 返回值类型 方法名(参数类型[] 形参名){ }只是后面这种定义,在调用时必须传递数组,而前者可以直接传递数据即可。 同样是代表数组,但是在调用这个带有可变参数的方法时,不用创...
2019-06-04 14:14:11
130
转载 Java基础--List集合
List接口java.util.List 接口继承自 Collection 接口,是单列集合的一个重要分支,习惯性地会将实现了 List 接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。 接口中常用方法...
2019-06-03 22:26:38
147
转载 Java基础--Collection
数组的长度是固定的。集合的长度是可变的。数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。**Collection**:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是`java.util.List`和`java.util.Set`。其中,`List`...
2019-06-03 17:07:40
78
转载 Java基础--StringBuilder类
由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象。StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。构造方法- `public StringBuilder()`:构造一个空的StringBuilder容器。- `public StringBuilder(St...
2019-06-02 20:30:39
304
转载 Java基础--Object类
`java.lang.Object`类是Java语言中的根类,即所有类的父类。如果一个类没有特别指定父类,那么默认则继承自Object类。toString`public String toString()`:返回该对象的字符串表示。toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。由于toString方法返回的结果是内存地址,而在开...
2019-06-02 19:43:39
84
转载 Java基础--内部类、匿名内部类
成员内部类 :定义在类中方法外的类。 局部内部类如果一个类是定义在一个方法内部的,那么这就是一个局部内部类。“局部”:只有当前所属的方法才能使用它,出了这个方法外面就不能用了。所以方法内部类只能在方法内new出对象使用,外部只能调用该方法,间接使用该类。局部内部类,如果希望访问所在方法的局部变量,那么这个局部变量必须是有效final的从Java8开始,只要局部变量事实不变,...
2019-06-01 21:19:31
152
转载 Java基础--final关键字、权限修饰符
final关键字final: 不可改变。可以用于修饰类、方法和变量。 类:被修饰的类,不能被继承。 方法:被修饰的方法,不能被重写。 变量:被修饰的变量,不能被重新赋值。只有一次赋值机会。被final修饰的常量名称,一般都有书写规范,所有字母都大写。 对于基本类型来说,不可变说的是变量当中的数据不可变。对于引用类型来说,不可变说的是变量当中的地址值不可改变。...
2019-06-01 14:58:38
209
转载 Java基础--多态
定义 多态: 是指同一行为,具有多个不同表现形式。 多态体现的格式: 父类类型 变量名 = new 子类对象;变量名.方法名();父类类型:指子类对象继承的父类类型,或者实现的父接口类型。 访问成员变量的两种方式:1.直接通过对象名称访问成员变量:看等号左边是谁,优先用谁,没有则向上找。不会向下找。2.间接通过成员方法访问成员变量:看该方法属于谁,优先用谁,没有则向...
2019-06-01 09:32:52
105
转载 Java基础--接口
public interface 接口名称 {// 抽象方法// 默认方法 Java8以后// 静态方法 Java8以后// 私有方法 Java9以后}接口的定义,它与定义类方式相似,但是使用 interface 关键字。它也会被编译成.class文件,但一定要明确它并不是类,而是另外一种引用数据类型。接口的使用,它不能创建对象,但是可以被实现( implements ,类似于...
2019-05-31 17:36:46
163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人