- 博客(34)
- 收藏
- 关注
原创 PreparedStatement JDBC控制事物 数据库连接池 Spring JDBC
练习:* 需求:1. 通过键盘录入用户名和密码2. 判断用户是否登录成功例:import cn.itcast.util.JDBCUtils;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Scanner;/** * 练习: * * 需求: * 1. 通过键盘录入用户名
2021-11-09 22:47:14
243
原创 JDBC基础
JDBC:1. 概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库* JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。2. 快速入门:* 步骤:1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar1.复制mysql-connect
2021-11-05 01:37:11
119
原创 多表查询 事物 DCL(管理用户,授权)
多表查询:* 查询语法: select 列名列表 from 表名列表 where....* 准备sql # 创建部门表 CREATE TABLE dept( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) ); INSERT INTO dept (NAME) VALUES ('开发部'),('市场部'),('财务部'); # 创建员工表 CREATE TABLE emp ( id INT PRIMARY KEY
2021-11-02 23:39:49
154
原创 约束 主键 外键 范式 数据库的备份和还原
约束* 概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。 * 分类: 1. 主键约束:primary key 2. 非空约束:not null 3. 唯一约束:unique 4. 外键约束:foreign key* 非空约束:not null,值不能为null 1. 创建表时添加约束 CREATE TABLE stu( id INT, NAME VARCHAR(20) NOT NULL -- name为非空 ); 2. 创建表完后,添加非空约束 A
2021-11-01 16:51:58
199
原创 Mysql DML增删改 DQL查询表中的记录 约束
DML:增删改表中数据添加数据:* 语法:* insert into 表名(列名1,列名2,…列名n) values(值1,值2,…值n);* 注意:1. 列名和值要一一对应。2. 如果表名后,不定义列名,则默认给所有列添加值insert into 表名 values(值1,值2,…值n);3. 除了数字类型,其他类型需要使用引号(单双都可以)引起来删除数据:语法:delete from 表名 [where 条件]注意:如果不加条件,则删除表中所有记录。如果要删除所
2021-10-31 18:08:24
108
原创 MySQL安装与卸载 基本语法
MySQL数据库软件1. 安装2. 卸载1. 去mysql的安装目录找到my.ini文件* 复制 datadir=“C:/ProgramData/MySQL/MySQL Server 5.5/Data/”2. 卸载MySQL3. 删除C:/ProgramData目录下的MySQL文件夹。配置* MySQL服务启动1. 手动。2. cmd–> services.msc 打开服务的窗口3. 使用管理员打开cmd* net start mysql : 启动mysql的服务* n
2021-10-31 01:40:33
112
原创 Junit单元测试 反射 注解
Junit单元测试:测试分类:1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。2. 白盒测试:需要写代码的。关注程序具体的执行流程。Junit使用:白盒测试* 步骤:1. 定义一个测试类(测试用例)* 建议:* 测试类名:被测试的类名Test CalculatorTest* 包名:xxx.xxx.xx.test cn.itcast.test2. 定义测试方法:可以独立运行* 建议:* 方法名:test测试的方法名 testAdd()* 返回值:void*
2021-10-29 15:48:24
75
原创 Stream流 方法的引用
Stream流使用Stream流的方式,遍历集合,对集合中的数据进行过滤Stream流是JDK1.8之后出现的关注的是做什么,而不是怎么做import java.util.ArrayList;import java.util.List;public class Demo02Stream { public static void main(String[] args) { //创建一个List集合,存储姓名 List<String> list
2021-10-27 17:10:38
392
原创 函数式接口 常用的函数式接口
函数式接口概念与定义:函数式接口:有且只有一个抽象方法的接口,称之为函数式接口当然接口中可以包含其他的方法(默认,静态,私有)@FunctionalInterface注解作用:可以检测接口是否是一个函数式接口是:编译成功否:编译失败(接口中没有抽象方法,抽象方法的个数多余1个)例:@FunctionalInterfacepublic interface MyFunctionalInterface { //定义一个抽象方法 public abstract void meth
2021-10-23 01:42:58
322
原创 网络编程 服务器
C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等网络编程:就是在一定的协议下,实现两台计算机的通信的程序。网络通信协议:TCP/IP协议: 传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是Internet最基本、最广泛的协议。它定义了计算机如何连入因特网,以
2021-10-15 16:18:19
393
原创 缓冲流 转换流 序列化 反序列化 打印流
缓冲流:BufferedOutputStream:字节缓冲输出流java.io.BufferedOutputStream extends OutputStreamBufferedOutputStream:字节缓冲输出流继承自父类的共性成员方法:- public void close() :关闭此输出流并释放与此流相关联的任何系统资源。- public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。- public void write(byte[] b):将 b.l
2021-10-14 02:51:43
115
原创 IO流 Properties集合
IO流字节流:可以读取任意的文件java.io.OutputStream:字节输出流此抽象类是表示输出字节流的所有类的超类。抽象类无法直接使用,使用其子类定义了一些子类共性的成员方法:- public void close() :关闭此输出流并释放与此流相关联的任何系统资源。- public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。- public void write(byte[] b):将 b.length字节从指定的字节数组写入此输出流。- publi
2021-10-13 00:43:37
89
原创 File类 递归 FileFilter过滤器
File类java.io.File类文件和目录路径名的抽象表示形式。java把电脑中的文件和文件夹(目录)封装为了一个File类,我们可以使用File类对文件和文件夹进行操作我们可以使用File类的方法创建一个文件/文件夹删除文件/文件夹获取文件/文件夹判断文件/文件夹是否存在对文件夹进行遍历获取文件的大小File类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法重点:这三个单词file:文件directory:文件夹/目录path:路径File的
2021-10-11 11:13:28
193
原创 等待与唤醒机制 线程池 Lambda表达式
等待与唤醒机制案例:/* 资源类:包子类 设置包子的属性 皮 陷 包子的状态: 有 true,没有 false */public class BaoZi { //皮 String pi; //陷 String xian; //包子的状态: 有 true,没有 false, 设置初始值为false boolean flag = false;}/* 生产者(包子铺)类:是一个线程类,可以继承Thread 设置线
2021-10-09 16:40:35
105
原创 多线程原理 匿名内部类实现线程的创建 线程安全 线程同步 线程状态
多线程原理多线程的内存图解获取线程名称的两种方式:获取线程的名称:1.使用Thread类中的方法getName()String getName() 返回该线程的名称。2.可以先获取到当前正在执行的线程,使用线程中的方法getName()获取线程的名称static Thread currentThread() 返回对当前正在执行的线程对象的引用。例:// 定义一个Thread类的子类public class MyThread extends Thread { //重写Thre
2021-10-08 23:59:09
271
原创 异常体系 异常的处理 Objects类中的静态方法 异常处理 自定义异常类与练习 多线程 线程的创建
异常:指的是程序在执行过程中,出现的非正常情况,最终会导致JVM的非正常停止Java中异常的处理是中断处理java.lang.Throwable:类是 Java 语言中所有错误或异常的超类。Exception:编译期异常,进行编译(写代码)java程序出现的问题RuntimeException:运行期异常,java程序运行过程中出现的问题异常就相当于程序得了一个小毛病(感冒,发烧),把异常处理掉,程序可以继续执行(吃点药,继续革命工作)Error:错误错误就相当于程序得了一个无法治愈的毛病(
2021-10-07 23:50:27
112
原创 Map集合 JDK9新特性 Debug追踪 斗地主案例
Map集合java.util.Map<K,V>集合Map集合的特点: 1.Map集合是一个双列集合,一个元素包含两个两个值(一个key,一个value) 2.Map集合中的元素,key和value的数据类型可以相同,也可以不同 3.Map集合中的元素,key是不允许重复的,value是可以重复的 4.Map集合中的元素,key和value是一一对应的java.util.HashMap<K,v>集合implements Map<k
2021-10-01 02:16:47
145
原创 List ArrayLinked HashSet LinkedHashSet Collections中的方法
java.util.List接口 extends CollectionList接口的特点 1 有序的集合,存储元素和取出的元素是一致的(存储123 取出123) 2 有索引,包含了一些带索引的方法 3 允许储存重复的元素 List 接口中带索引的方法(特有) - public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。 - public E get(int index
2021-09-25 13:40:17
149
原创 泛型通配符 数据结构
泛型通配符:当使用泛型类或者接口时,传递数据中,泛型类型不确定,可以通过通配符 <?>表示,只能接收数据,不能传数据。例:* 泛型的通配符:* ?:代表任意的数据类型* 使用方式:* 不能创建对象使用* 只能作为方法的参数使用*/import java.util.ArrayList;import java.util.Iterator;
2021-09-24 17:25:07
110
原创 Collection集合 Iterator迭代器 泛型
集合和数组的基本区别数组的长度是固定的。集合的长度是可变的 数组存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。Collection的一些共性方法:Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下: * `public boolean add(E e)`: 把给定的对象添加到当前集合中 。 * `public void clear()` :
2021-09-22 11:46:05
219
原创 Calendar类 System类 包装类 拆箱与装箱 基本数据类型与字符串之间的相互转化
java.util.Calendar类:日历类Calendar 类是一个抽象类,里面提供了很多操作日历字段的方法(YEAR、MONTH、DAY_OF_MONTH、HOUR)Calendar 类无法直接创建对象使用,里面有一个静态方法叫getInstance(),该方法返回了Calendar类的子类对象static Calendar getInstance()使用默认时区和语言环境获得一个日历例:import java.util.Calendar;public class Demo01 {
2021-09-21 11:07:34
93
原创 Object类的toString方法equals方法 与Date类
Object类类 Object 是类层次结构的根(最顶层)类。每个类都使用 Object 作为超类(父类)。所有对象(包括数组)都实现这个类的方法。toString方法:先写一个person类,因为写了toString方法,所以可以直接打印 public class Person { private String name; private int age; public Person() { } public Person(String name,
2021-09-19 16:33:02
197
原创 内部类 接口与类作为成员变量
内部类:如果一个事物的内部包含另一个事物,那么这就是一个内部类包含另一个类例如:身体和心脏的关系分类:1 成员内部类2 局部内部类(匿名内部类)成员内部类定义格式:修饰符 class 外部类名称{ 修饰符 class 内部类名称{ //..} //...}注意:内用外,随意访问;外用内,需要内部对象类例:public class Body { //外部类 public class Heart{// 成员内部类 publi
2021-09-17 11:51:40
205
原创 多态,Final关键字,四种修饰权限
多态的使用:代码中体现多态性,其实就一句话,父类引用指向子类对象格式:父类名称 对象名 = new 子类名称();接口名称 对象名 = new 实现类名称();例:public class Demo01Multi { public static void main(String[] args) { //使用多态的写法 //左侧父类的引用,指向右侧子类对象 Fu obj = new Zi(); obj.method()
2021-09-16 02:06:07
112
原创 抽象与接口
抽象方法如果父类当中的方法不确定如何进行{}方法的实现,那么这就应该是一个抽象方法抽象方法:就是加上abstract关键字,然后去掉大括号,直接分号结束抽象类:抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可如果使用抽象类和抽象方法:1 不能直接创建new抽象对象2 必须用一个子类来继承抽象父类。3 子类必须覆盖重写抽象父类当中所有的抽象方法覆盖方法(实现):子类去掉抽象方法的abstract关键字,然后补上方法体大括号。4 创建子类对象进行使用注意事项
2021-09-14 17:26:46
53
原创 继承 重写 super,this 关键字
继承继承是多态的前提,没有继承就没有多态继承主要解决的问题就是:共性抽取父类与子类:把公共的东西抽取到一起特点:子类可以拥有父类的“内容”子类还可以拥有自己专属的内容在继承的关系中,“子类就是父类”。也就是说,子类可以当作父类看待列如:父类是员工,子类是讲师,那么“讲师就是员工”定义父类的格式:(一个普通的定义类)public class 父类名称{ //...}定义子类的格式:public class 子类名称 extends 父类名称{ //}
2021-09-13 15:06:57
86
原创 字符串,Static关键字 Arrays Math
String类型 java.lang.String类代表字符串Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。其实也就是:程序当中所有的双引号字符串,都是String类的对象。(就算没有new,也照样是)字符串特点:1 字符串的内容永不变 常量2 正是因为字符串不可改变,所以字符串是可以共享使用的3 字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组创建字符串的常见3+1种方案三种构造方法public String():创建一个
2021-09-12 16:15:18
113
原创 Scanner, Random, Arraylist类
API:应用程序编程接口,有很多现成的类Scanner键盘输入:import java.util.Scanner; //导包/*Scanner 类功能,可以实现键盘输入数据,到程序当中。引用类型一般步骤:1 导包import 包路径.类名称如果需要使用目标类,和当前类位于同一个包下,可以省略不写只有java.lang下的包内容不需要导包,其他都需要import语句2 创建类名称 对象名 = new 类名称();3 使用对象名.成员方法名();获取键盘输入的一个int数
2021-09-07 10:35:12
116
原创 2021-09-04面向对象,封装,Private,this关键字,定义一个类
面向过程当需要实现一个功能的时候,每一个步骤都需要亲历亲为,详细处理每一个细节面向对象当需要实现一个功能的时候,不需要关心具体的步骤,而是找一个已经具有该功能的人,来帮我做事。例:上面为面向过程,下面一行代码为面向对象 //输出:[10,20,50,60]import java.util.Arrays;public class Demo01PrintArray { public static void main(String[] args) { int [] ar
2021-09-05 12:16:10
97
原创 2021-09-03 数组
数组概念:是一种容器,可以存放多个数据值特点:数组是一种引用数据类型数组当中的多个数据,类型必须统一数组的长度在程序运行期间不可改变数组的初始化:在内存当中创建一个数组,并且其中赋予一些默认值两种常见的初始化方式:动态初始化(指定长度)静态初始化(指定长度)动态初始化数组的格式:数据类型[] 数组名称 = new 数据类型 [数组长度];含义:左侧的数据类型:也就是数组当中保持的数据,全都是统一的什么类型左侧中括号:代表我是一个数组数组名称:给数组取个名字右侧的new
2021-09-04 10:47:14
81
原创 2021-09-02 方法与重载
方法方法其实就是若干语句功能集合参数(原料):就是进入方法的数据返回值:就是从方法中提出了的数据定义方法的完整格式:修饰符 返回值类型 方法名称(参数类型 参数名称,…)方法体return 返回值;修饰符:public static…返回值类型:也就是方法最终产生的数据结果是什么类型方法名称:方法的名子,规则变量一样,小驼峰参数类型:进入方法的数据是什么类型参数名称:进入方法的数据对应的变量名称PS:参数如果有多个,使用逗号进行分隔方法体:方法需要做的事情,若干代码return
2021-09-02 17:57:04
58
原创 2021-08-31
流程语句顺序结构选择结构2.1 判断语句(if)if(关系表达式){语句体判断表达式是否为true,为true则执行语句体,反之不执行}2.2 if…else 语句if(关系表达式){语句体1}else{语句体2}判断表达式是否为true,为true 则执行语句体1,否则执行语句体2;一定是二者选其一例:int num = 16 if(num %2==0){ System.out.println(偶数)} else{ System.out
2021-09-01 16:18:02
616
原创 2021-08-30
数据类型:当数据类型不一样时,将会发生数据类型转换自动类型转换(隐式)特点:代码不需要进行特殊处理,自动完成规则:数据范围从小到大 例:int --> Longfloat类型比Long更大,所以float num1=30L 也能运行,为30.0赋值“=”是右边的值赋给左边强制类型转换特点:不能自动完成格式:范围小的类型 范围小的变量名=(范围小的类型)原本范围大的数据例:int num1=(int)100L 这个就转成int类型,但是不能超过int的数据范围,否则会数据溢出注意
2021-08-31 16:57:05
80
原创 2021-08-27
JAVA 基础JAVA由SUN公司发明二进制与十进制二进制转十进制:使用除以二获取余数的方式例:十进制数字6转成二进制为110二进制数据转为十进制数据:使用8421编码方式例:二进制1100转为十进制为12计算器的二进制使用:HEX 十进制BIN 二进制位(bit): 一个数字0或者一个数字1,代表一位字节(Byte):每逢8位是一个字节,这是数据存储的最小单位1Byte = 8bit1 KB = 1024Byte1MB = 1024KB1GB =1024MB1TB =1024
2021-08-30 22:14:54
69
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人