- 博客(244)
- 资源 (3)
- 收藏
- 关注
原创 27.2 JDBC操作数据库、查询结果封装为对象、封装工具类、键盘输入用户名与密码判断是否登录成功
在项目中关于jdbc的优化,封装jdbc工具类
2020-09-30 20:17:10
543
原创 27.1 JDBC入门、第一个JDBC程序、详解JDBC各个对象
目录1JDBC入门1.1客户端操作mysql数据的方式1.2什么是jdbc1.3使用 JDBC 的好处1.4 JDBC 的核心 API2第一个JDBC程序3详解各个对象3.1DriverManager驱动管理对象a注册驱动b获取数据库连接c 乱码的处理3.2Connection数据库连接对象a.获取执行sql的对象b.事务管理3.3Statement执行sql语句对象3.4ResultSet结果执行对象3.5P...
2020-09-30 20:16:12
286
原创 26.6 事务(介绍、四大特征、隔离级别)、DCL用户管理(创建、删除、修改、查询用户)、DCL用户权限(用户授权、撤销授权、查询权限)
多对多多对多(m:n) 例如:老师和学生,学生和课程,用户和角色多对多关系建表原则: 需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一/* 多对多 创建用户表 tab_user*/CREATE TABLE tab_user( uid INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(100) NOT NULL UNIQUE,-- 用户名长度 100,唯一,非空 PASSWORD VARCHAR(30) NO.
2020-09-30 20:14:28
351
原创 26.5 多表查询:内连接(隐式、显示)、外连接(左外、右外)、嵌套查询、练习
一对多一对多(1:n) 例如:班级和学生,部门和员工,客户和订单,分类和商品一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键
2020-09-30 20:13:20
871
原创 26.4 表与表的关系:1对多/多对多/1对1,三大范式:1NF/2NF/3NF
目录1 表与表之间的关系2 一对多列:一对多:一个旅游线路分类中有多个旅游线路3 多对多列:多对多:一个用户收藏多个线路,一个线路被多个用户收藏4 一对一5 数据库设计5.1 什么是范式5.2 三大范式1NF2NF3NF5.3 三大范式小结1 表与表之间的关系一对多 最常用的关系 部门和员工 多对多 学生选课表 和 学生表,一门课程可以有多个学生选择,一个学生选择多门课程 一对一 相对使用比较少。员工表 简历表...
2020-09-28 17:12:48
1259
原创 26.3 数据库表的约束、主键约束:主键自增、 唯一约束、非空约束:非空约束默认值、 外键约束:级联操作
目录1 数据库表的约束1.1约束的作用1.2约束种类1.3 约束种类--主键约束主键约束:创建表时添加主键约束主键约束:创建完表后,添加主键主键约束:删除主键约束主键约束:创建表时,添加主键约束,并且完成主键自增长auto_increment主键约束:删除自动增长主键约束:添加自动增长1.4 约束种类--唯一约束唯一约束:在创建表时,添加唯一约束唯一约束:删除唯一约束唯一约束:在表创建完后,添加唯一约束1.5 约束种类--非空约束...
2020-09-27 13:04:25
1103
原创 26.2 SQL介绍、通用语法、SQL语句分类、DDL 操作数据库和表、DML:表实现增删改数据、DQL:条件查询、模糊查询、排序、聚合函数、分组、分页、数据库备份与还原
目录1 SQL结构化查询语言2 SQL通用语法3 SQL 语句分类4 DDL 操作数据库、表4.1DDL操作数据库(数据库CRUD)DDL操作数据库-- C(Create):创建数据库DDL操作数据库-- R(Retrieve):查询数据库DDL操作数据库-- U(Update):修改数据库DDL操作数据库-- D(Delete):删除数据库DDL操作数据库-- 使用数据库4.2 DDL操作表(数据表CRUD)DDL操作表-- C(Create):创建表...
2020-09-25 21:40:46
640
1
原创 26.1 什么是数据库、MySQL数据库的安装与卸载、数据库服务的启动与登录、控制台连接数据库、SQLyog 图形化工具、 MySQL 目录结构、数据库管理系统
目录1 数据存储方法2 什么是数据库2.1 常见数据库3 MySQL数据库的安装4 卸载 MySQL5 数据库服务的启动与登录5.1 Windows 服务方式启动5.2 DOS 命令方式启动6 控制台连接数据库6.1 控制台连接数据库--登录格式 16.2 控制台连接数据库--登录格式 26.3 控制台连接数据库--登录格式 36.4 退出 MySQL7 SQLyog 图形化工具——客户端8 MySQL 目录结构9 数据库管理系统1 数据存
2020-09-25 12:38:16
373
原创 25.2 注解、jdk中预定义的注解、自定义注解、注解的属性、元注解、注解写一个框架
目录1 注解注解作用2 JDK中预定义的一些注解列:预定义的注解练习3 自定义注解注解格式:注解本质:注解属性:列:注解的属性练习4 元注解列:元注解练习列:使用注解写一个“框架”1 注解概念:说明程序的。给计算机看的定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。.
2020-09-20 18:12:16
360
原创 25.1 Junit单元测试、反射、 Class对象:三种方式获得Class对象、获得Class对象的成员变量、构造方法、成员方法、类名
目录1 Junit单元测试测试分类Junit单元测试(白盒测试)列:Junit单元测试练习2 反射:框架设计的灵魂3 Class对象Class对象--获得Class对象的三种方式列:获得Class对象的三种方式练习Class对象--获取成员变量们列:获得类对象成员变量练习Class对象--获取构造方法列:获得Class对象的构造方法练习Class对象--获取成员方法列:获取Class对象成员方法练习Class对象--获取类名列:Class对象.
2020-09-20 17:30:54
1270
原创 24.2 方法引用详解:通过类名引用成员方法与静态方法、super与this引用成员方法、类的构造器引用、数组的构造器引用
目录方法引用用方法引用改进代码列:实现方法引用方法引用:通过对象名引用成员方法方法引用:通过类名称引用静态方法方法引用:通过super引用成员方法方法引用:通过this引用成员方法方法引用:类的构造器引用方法引用:数组的构造器引用方法引用用方法引用改进代码 双冒号 :: 写法,这被称为“方法引用”,而双冒号是一种新的语法双冒号 :: 为引用运算符,而它所在的表达式被称为方法引用。如果Lambda要表达的函数方案已经存在于某个方法的实现中,那么则可以通过双冒
2020-09-13 13:48:20
587
原创 24.1 传统集合的多步遍历代码、Stream流更优写法与stream、forEach、filter、count、limit、skip、concat方法、静态方法:tream.of()
目录传统集合的多步遍历代码Stream的更优写法Stream流Stream流:获取流 列:单列集合、双列集合、数组获取stream流Stream流中的常用方法:forEach 延迟方法与终结方法 逐一处理:forEachStream流中的常用方法:filterStream流中的常用方法:countStream流中的常用方法:limitStream流中的常用方法:skipStream流中的静态方法:concat列:集合元素处理(传统方式...
2020-09-13 13:46:55
731
原创 23.2 常用函数式接口:api查询、Supplier接口、Consumer接口与accept方法、Predicate接口与test方法、Function接口与apply方法
目录常用函数式接口API查询函数式接口Supplier接口练习:求数组元素最大值Consumer接口Consumer接口中:accept抽象方法Consumer接口中:andThen 默认方法Predicate接口Predicate接口抽象方法:testPredicate接口中默认方法:and Predicate接口中默认方法:orPredicate接口中默认方法:negate练习:Predicate接口集合信息筛选Function接口Funct.
2020-09-13 00:15:32
1055
原创 23.1 语法糖、函数式接口:(FunctionalInterface注解、自定义函数式接口)、函数式编程:(Lambda的延迟执行、更优写法、线程、)
目录函数式接口@FunctionalInterface注解自定义函数式接口列:自定义函数式接口练习函数式编程Lambda的延迟执行列:性能浪费的日志案例列:体验Lambda的更优写法列:线程接口就是一个函数式接口列:使用函数式接口作为方法的返回值函数式接口函数式接口在Java中是指:有且仅有一个抽象方法的接口函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有..
2020-09-13 00:11:37
525
原创 22.2 TCP通信:客户端Socket类、服务端ServerSocket类、客户上传文件到服务器、模拟B\S服务器
目录TCP通信程序客户端Socket类构造方法成员方法客户端ServerSocket类构造方法成员方法列:客户端向服务器发送数据列:从客户上传文件到服务器(基础版)列:从客户上传文件到服务器(优化版)模拟B\S服务器列:服务器程序中字节输入流可以读取到浏览器发来的请求信息列:模拟B\S服务器TCP通信程序TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务端(Server)。客户端:java.net.S
2020-09-12 14:06:35
571
1
原创 22.1 网络编程:软件结构、网络通信协议、UDP与TCP协议、(网络编程三要素:协议、ip地址、端口号)、查看ip地址、检测网络是否连通、判断ip是否可用
目录1、网络编程软件结构网络通信协议TCP/IP协议协议分类UDPTCP网络编程三要素协议IP地址列:查看本机ip地址端口号2、TCP通信程序客户端Socket类构造方法成员方法客户端ServerSocket类构造方法成员方法列:客户端向服务器发送数据列:从客户上传文件到服务器(基础版)列:从客户上传文件到服务器(优化版)模拟B\S服务器列:服务器程序中字节输入流可以读取到浏览器发来的请求信息列:模拟B\S服
2020-09-10 02:59:04
823
原创 21.3 序列化流ObjectOutputStream与反序列化流ObjectInputStream、打印流PrintStream、 改变输出语句的目的地
目录序列化与反序列化对象序列化流:ObjectOutputStream类构造方法常用方法序列化操作列:序列化练习反序列化流:ObjectInputStream构造方法常用方法反序列化出现异常的解决方案ClassNotFoundException 异常InvalidClassException异常列:序列化与反序列化练习列:集合的序列化与反序列化练习打印流PrintStream构造方法列:打印流练习改变输出语句的目的地序列化与...
2020-09-06 23:06:50
355
原创 21.2 字符集编码与解码、常见字符集、转换输入流InputStreamReader与转换输出流OutputStreamWriter、文件格式转换
目录字符的编码与解码字符集Charset常见字符集列:编码引出的问题,读取文件出现乱码转换输入流InputStreamReader列:转换输入流InputStreamReader练习转换输出流OutputStreamWriter列:转换输出流OutputStreamWriter列:读取GBK格式文件并存储文件为utf-8格式字符的编码与解码计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按...
2020-09-06 23:04:30
375
原创 21.1 字节缓冲流BufferedInputStream、BufferedOutputStream与字符缓冲流BufferedReader、BufferedWriter、文件排序、测试复制文件时间
目录缓冲流概述字节缓冲流构造方法列:字节缓冲输入流与字节缓冲输出流练习字符缓冲流构造方法字符缓冲流常用方法列:字符缓冲输出流与字符缓冲输入流练习列:对如下文本进行排序列:测试字节流与字节缓冲流复制文件消耗时间字符的编码与解码字符集Charset常见字符集列:编码引出的问题,读取文件出现乱码转换输入流InputStreamReader列:转换输入流InputStreamReader练习转换输出流OutputStreamWriter...
2020-09-06 23:00:41
198
原创 20.2 IO流中的异常处理与优化、Properties集合:数据的存储与读取
目录在jdk1.7之前使用try catch finally 处理流中的异常JDK7的IO处理JDK9的IO处理列:实现图片复制Properties集合Properties常用方法列:Properties集合练习,数据的存储与读取在jdk1.7之前使用try catch finally 处理流中的异常格式:try{ 可能会产出异常的代码}catch(异常类变量 变量名){ 异常的处理逻辑}finally{ 一定会指定的代码 资源释
2020-09-06 11:48:40
293
原创 20.1 IO流、IO流分类、字节输出流FileOutputStream、字节输入流:FileInputStream、字符输入流FileReader、字符输出流.FileWriter
什么是IO以内存为基准,分为输入input 和输出output ,即流向内存是输入流,流出内存的输出流。Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。输入也叫做读取数据,输出也叫做作写出数据。IO的分类根据数据的流向分为:输入流和输出流。 输入流 :把数据从其他设备上读取到内存中的流。 输出流 :把数据从内存 中写出到其他设备上的流。 格局数据的类型分为:字节流和字符流。 字节流 :以字节为单位,读写数据的流。 字符流 :以字符
2020-09-05 02:58:15
473
原创 19.3 递归、1-n的和与阶乘、文件遍历、以特定字符结尾的文件遍历、过滤器:FileFilter接口实现过滤器、FilenameFilter接口实现过滤器
目录递归递归概述列:简单的递归列:使用递归计算1-n之间的和、使用递归计算阶乘n的阶乘:n! = n * (n-1) *...* 3 * 2 * 1列:递归打印多级目录和目录中的文件列:打印目录中的以.java结尾的文件文件过滤器优化listFiles文件遍历java.io.FileFilter 是一个接口的抽象方法java.io.FilenameFilter接口中抽象方法列:java.io.FileFilter接口实现过滤器列:java.io.F...
2020-09-03 15:04:34
208
原创 19.2 File类:isDirectory、createNewFile、delete、mkdirs、list、listFiles方法
目录列:exists判断文件或文件夹是否存在、isDirectory判断是否是目录、isFile判断是否是文件创建删除目录与文件的方法列:createNewFile创建文件、delete删除文件或目录、mkdir创建目录、mkdirs创建多级目录目录的遍历列:目录(文件夹)遍历 :list():返回字符串、listFiles():返回目录File抽象类判断目录与文件是否存在的方法public boolean exists() :此File表示的文件或目录是否实际存...
2020-09-03 15:03:15
571
原创 19.1 File类:构造方法、pathSeparator、separator、、getAbsolutePath、getName、length
目录File类概述静态方法列:pathSeparator路径分割符与separator目录分割符练习构造方法列:构造方法练习常用方法列:绝对路径与相对路径练习列:练习getAbsolutePath绝对路径、getPath获取路径、getName获取路径中最后一个文件或目录、length获取文件长度判断功能的方法列:exists判断文件或文件夹是否存在、isDirectory判断是否是目录、isFile判断是否是文件创建删除功能的方法列:cre...
2020-08-31 23:53:05
481
原创 18.3 线程池的引入、概念与newFixedThreadPool、sumbit、shutdown方法、Lambda表达式
目录线程池线程池引入线程池概念线程池使用列:线程池练习Lambda表达式Lambda标准格式列:使用匿名类实现开启线程列:Lambda无参数无返回值表达式练习列:Lambda无参无返回值练习列:Lambda有参有返回值表达式练习列:计算两数相加线程池 线程池引入并发的线程多,所以线程频繁创建和销毁,这样大大降低系统的效率,所以可以使用线程池实现这种效果线程池概念线程池:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线
2020-08-31 20:56:37
555
原创 18.2 线程安全、线程同步(同步代码块、同步方法、Lock锁)、线程状态、线程通信、线程调度常用方法、atm机取钱实例、医生看病实例、多种方法实现老板卖包子顾客吃包子方法
目录线程安全什么是线程安全列:模拟买票,三个线程同时对共享的票进行售卖线程同步同步代码块列:使用同步代码块实现买票同步方法列:使用同步方法块实现买票Lock锁列:Lock锁实现售票线程状态列:实现老板卖包子,顾客吃包子列:实现老板卖包子,2个顾客吃包子线程安全 什么是线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的线...
2020-08-28 11:02:17
357
原创 18.1 多线程:并发与并行、进程与线程、继承Thread类实现多线程、Runnable接口实现线程、匿名内部类方式实现线程
目录多线程并发与并行进程与线程进程线程继承Thread类实现多线程列:使用继承的方式实现多线程多线程 并发与并行 并发:指两个或多个事件在同一个时间段内发生。 并行:指两个或多个事件在同一时刻发生(同时发生)。单核处理器的计算机肯定是不能并行的处理多个任务的,只能是多个任务在单个CPU上并发运行。同理,线程也是一样的,从宏观角度上理解线程是并行运行的,但是从微观角度上分析却是串行运行的,即一个线程一个线程的去运行,当系统只有一个CPU时,线程会以某种顺序执行多
2020-08-27 01:02:24
324
原创 17 异常的产生过程解析、抛出异常throw、声明异常throws、捕获异常try…catch、异常注意事项、自定义异常、Objects非空判断
目录异常异常体系列:编译期异常、运行期异常、错误练习Throwable中的常用方法异常的产生过程解析异常处理抛出异常throw列:throw异常练习Objects非空判断声明异常throws列:throws练习捕获异常try…catchfinally 代码块异常注意事项列:1. 多个异常分别处理。 2. 多个异常一次捕获,多次处理。 3. 多个异常一次捕获一次处理。列:父类抛出异常,子类继承父类实例自定义异常列:实现自定义异常异常.
2020-08-27 00:58:25
795
原创 4.1 idea工具的使用:官网下载IDEA、IDEA安装、IDEA项目结构层次、第一次启动创建项目
目录IDEA下载IDEA安装运行idea选择安装路径配置安装选项开始菜单安装完毕IDEA项目结构层次IDEA首次启动并创建一个项目选择不导入任何设置选择主题选择 Create New Project,创建项目创建一个空白项目填写项目名称新建modeules(模块)点击 new 按钮,配置安装的 JDK9 版本给module取个名...
2020-08-26 12:23:08
441
原创 16 集合总结
目录单列集合集合工具类双列集合接口.of()单列集合 Collection元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储 常用方法:add(),clear(),remove(),contains(),isEmpty(),size(),toArray() java.util.List 元素存取有顺序 add(),get(),revmove,set() java.util.Set ArrayLi..
2020-08-26 12:00:34
242
原创 15 Map接口(HashMap、LinkedHashMap)、keySet()方式遍历、Entry方式遍历、HashTable、of方法、Debug追踪、模拟斗地主、统计字符串中字符出现次数
目录Map集合MaMap常用子类Map接口中的常用方法HashMap列:HashMap集合实现put()、remave()、get()方法列:HashMap()遍历:keySet()-->将键存储到set集合中列:使用Entry对象遍历列:HashMap存储对象列: 计算一个字符串中每个字符出现次数LinkedHashMapHashtableJDK9对集合添加的优化列:接口.of()方法使用、Collections集合工具类中addAll...
2020-08-26 02:14:06
490
原创 14.2 Collections工具类、Comparator比较器(Comparable接口中的方法compareTo()、Comparator接口中的compare()方法)
目录Collections是集合工具类列:集合工具类中addAll()、shuffle()方法练习Comparator比较器列:基本类型的包装类排序列:重写Comparable接口中的方法compareTo()方法实现对象的排序列:使用Comparator接口中的compare()方法实现排序简述Comparable和Comparator两个接口的区别Collections是集合工具类 public static <T> boolean addAll(Coll
2020-08-26 01:08:04
467
原创 14.1 常见数据结构、List集合(ArrayList、LinkedList)、Set集合(HashSet、LinkedHashSet)、可变参数方法
目录常见的数据结构栈队列数组链表红黑树二叉树binary treeList集合List接口中常用方法列:List接口常用方法练习ArrayList集合LinkedList集合列: LinkedList类常用方法练习Set集合(接口 )HashSet集合介绍列:set集合练习结果:列:HashSet存储对象LinkedHashSet列:HashSet与LinkedHashSet的遍历可变参数列:使用可变参数方法实现n..
2020-08-26 01:06:03
626
原创 13.2 使用泛型好处、类使用泛型、方法使用泛型、接口使用泛型、泛型通配符、泛型上限与下限、模拟斗地主发牌
想了解更多请查看java学习(idea版)目录泛型使用泛型的好处列:使用泛型和不使用泛型的区别练习类使用泛型列:类使用泛型方法使用泛型列:方法使用泛型练习接口使用泛型泛型通配符列:泛型通配符练习通配符高级使用----受限泛型列:泛型上限与下限的练习列:按照斗地主的规则,完成洗牌发牌的动作。 具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。泛型泛型:可以在类或方法中预支地使用未知的类型。使用泛
2020-08-19 22:43:51
245
原创 13.1 Collection集合(add、clear、remove、cotains、isEmpty、size、toArray方法)迭代器(iterator、hasNest、next方法)、增强for
想了解更多请查看java学习(idea版)目录Collection集合集合框架Collection 常用功能列:接口共性方法练习Iterator迭代器Iterator迭代器引入Iterator原理列:Iterator练习for...each语句Collection集合 集合:集合是java中提供的一种容器,可以用来存储多个数据集合和数组既然都是容器,它们有啥区别呢?数组的长度是固定的。集合的长度是可变的。 数组中存储的是同一类型的元素,可以存储..
2020-08-19 22:21:26
650
原创 12.3 StringBuilder类(append方法、toString方法)、包装类(基本类型与字符串之间的转换)
想了解更多请查看java学习(idea版)目录StringBuilder类2个构造方法常用方法append()方法toString方法包装类基本类型与字符串之间的转换列:字符串与基本类型的转换StringBuilder类在API中对String类有这样的描述:字符串是常量,它们的值在创建后不能被更改。每当进行字符串拼接时,总是会在内存中创建一个新的对象根据这句话分析我们的代码,其实总共产生了三个字符串,即 "Hello" 、 "World" 和 "Hell
2020-08-18 23:58:28
793
1
原创 12.2 Date类:getTime方法、DateFormat抽象类与子类SimpleDateFormat(format与parse方法)、Calendar抽象类与常用方法
目录Date类两个构造方法常用方法列:Date两个构造方法、getTime()方法联系DateFormat类format方法,parse方法练习: 请使用日期时间相关的API,计算出一个人已经出生了多少天。Calendar类常用方法:get方法、set方法、add方法、getTime方法列:get/set方法、add方法、getTime方法练习Date类java.util.Date 类 表示特定的瞬间,精确到毫秒。两个构造方法public Da...
2020-08-18 23:54:15
913
原创 12.1 Object类(toString方法、equals方法)、Objects工具类、System类(currentTimeMillis()方法、 arraycopy方法)
目录Object类toString方法列:toString()练习equals方法Objects类System类currentTimeMillis()方法arraycopy方法列:将src数组中前3个元素复制到dest数组的前3个位置上,复制元素前:src数组元素[1,2,3,4,5],dest数组元素[6,7,8,9,10],复制元素后:src数组元素[1,2,3,4,5],dest数组元素[1,2,3,9,10]Object类java.lang.Obje...
2020-08-18 23:46:59
318
1
原创 11 final关键字(修饰类、方法、变量)、权限修饰符(4中)、内部类、内部类中this与super、匿名内部类、引用类型总结
为了避免子类继承父类,使用final关键字final修饰类final修饰方法final修饰变量修饰局部变量(变量是基本类型)修饰局部变量(变量是基引用类型)修饰成员变量(变量是基本类型)权限修饰符内部类成员内部类匿名内部类---------------------------...
2020-08-18 09:42:02
349
java基础练习 模拟B\S服务器
2020-09-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅