自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 HTML

概念Hyper Text Markup Language 超文本标记语言是最基础的网页开发语言超文本:用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本标记语言:由标签构成的语言<标签名称> 如html,xml标记语言不是编程语言快速入门语法:html文档后缀名 .html 或者 .htm标签分类围堵标签:有开始标签和结束标签 如《html》 《/htmt》自闭和标签:开始标签和结束标签在一起。如《br/》标签可以嵌套需要正确嵌套,不能你中有我

2020-12-02 00:16:30 204

原创 Web软件架构

WebJavaWeb:使用java语言开发基于互联网的项目软件架构:1️⃣C/S:Client/Server 客户端/服务器端在用户本地有一个客户端程序,在远程有一个服务器程序如QQ 迅雷优点:用户体验好缺点:开发、安装、部署、维护2️⃣B/S:Browser/Server 浏览器/服务器端只需要一个浏览器,用户通过不同的网址(URL),客户访问不同的服务器端程序优点:开发、安装、部署、维护缺点:应用过大,用户的体验会受到影响;对硬件要求过高B/S架构详解资源分类:1️⃣

2020-12-01 17:14:13 582

原创 数据库连接池

概念一个容器(集合),存放数据库连接的容器。当系统初始化后,容器被创建,容器会申请一些连接对象,当用户访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。好处1️⃣节约资源2️⃣用户访问高效实现1️⃣标准接口:DataSource方法:获取连接:getConnection();归还连接:Connection.close(); 如果连接对象Connection是从连接池中获取的,调用Connection.close()方法,则不会再关闭连接,而是归还连接池。2️⃣

2020-12-01 15:56:47 137

原创 JDBC管理事务

事务:一个包含多个步骤的事务的业务操作,如果这个业务操作被事务管理,这多个步骤要么同时成功,要么同时失败。开启事务:在执行sql前开启提交事务:在sql执行完提交事务回滚事务:在catch中回滚事务public class jdbcdemo10 { public static void main(String[] args) { Connection conn=null; PreparedStatement p1= null; Prepared

2020-11-30 23:24:47 162

原创 JDBC练习-登录案例

需求:1️⃣通过键盘录入用户名和密码2️⃣判断用户是否登录成功步骤:1️⃣创建一个数据库表CREATE TABLE USER( id INT PRIMARY KEY AUTO_INCREMENT, usernamme VARCHAR(32), PASSWORD VARCHAR(32) );INSERT INTO USER VALUES(NULL,'zhangsan','123');INSERT INTO USER VALUES(NULL,'lisi','234');2️

2020-11-30 18:58:01 244

原创 JDBC1

概念JDBC:Java DataBase Connectivity Java数据库连接,Java语言操作数据库。JDBC本质:是官方定义的一套操作所有关系型数据库的规则,即接口。各个数据库产商去实现这套接口,提供数据库驱动jar包,可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类入门步骤:1️⃣导入驱动jar包复制jar包到项目的libs目录下add as library2️⃣注册驱动3️⃣获取数据库连接对象 Connection4️⃣定义sql5️⃣获取执行

2020-11-30 17:57:03 117

原创 DCL管理

DCL:管理用户,授权1️⃣管理用户:①添加用户:-- 创建用户CREATE USER '用户名'@'主机名'IDENTIFIED BY '密码'; ②删除用户:-- 删除用户DROP USER '用户名@'主机名';③修改用户密码:-- 修改用户密码UPDATE USER SET PASSWORD = PASSWORD('新密码')WHERE USER ='用户名';-- 修改用户密码SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');

2020-11-29 17:48:21 524

原创 事务

事务的基本介绍1️⃣概念:如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败2️⃣操作:Ⅰ开启事务:start transaction;Ⅱ回滚:rollback;Ⅲ提交:commit;-- 添加数据INSERT INTO account (NAME, balance) VALUES ('zhangsan', 1000), ('lisi', 1000);SELECT *FROM account;-- 转账START TRANSACTION;UPDATE

2020-11-29 17:03:02 76

原创 多表查询练习

-- 部门表CREATE TABLE dept ( id INT PRIMARY KEY PRIMARY KEY, -- 部门id dname VARCHAR(50), -- 部门名称 loc VARCHAR(50) -- 部门所在地);-- 添加4个部门INSERT INTO dept(id,dname,loc) VALUES (10,'教研部','北京'),(20,'学工部','上海'),(30,'销售部','广州'),(40,'财务部','深圳');-- 职务表,

2020-11-28 23:33:51 166 1

原创 多表查询

查询语法: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 AUTO_INCREMENT, N

2020-11-28 00:09:28 78

原创 多表关系

1️⃣多表之间的关系(一)分类:①一对一(了解):如 人与身份证 分析:一个人只有一个身份证,一个身份证只对应一个人②一对多(多对一):如 部门和员工 分析:一个部门对应多个员工,一个员工只对应一个部门③多对多:如 学生和课程 分析:一个学生可以选择多个课程,衣服课程也可以被多个学生选择(二)实现关系:①一对多:部门员工 实现方式:在多的一方建立外键,指向一的一方的主键②多对多:学生课程 实现方式:多对多关系实现需要借助第三张中间表,中间表至少包含两个字段,这两个字段作为第三张表的外

2020-11-27 22:37:10 233

原创 约束

概念:对表中的数据进行限定,保证数据的正确性,有效性,完整性分类:1️⃣主键约束:primary key(1)注意:①非空且唯一②一张表只能有一个字段为键③主键就是表中记录的唯一标识(2)在创建表时,添加主键约束create table stu(id int primary key, – 给id添加主键约束name varchar(20))(3)删除主键ALTER TABLE stu2 DROP PRIMARY KEY;(4)创建完表后,添加主键ALTER TABLE stu

2020-11-27 17:07:28 80

原创 DQL数据查询语言

用来查询数据库中表的几率(数据)关键字:select,where等select *from表名;1️⃣语法:select字段列表from表名列表where条件列表group by分组字段having分组之后的条件order by排序limit分页限定2️⃣基础查询1.多个字段的查询select 字段名1,字段名2,字段名n from 表名注意:如果查询所有字段,则可以使用 * 来替代字段列表2.去除重复:distinct 去除重复3.计算列一般可以使用四

2020-11-27 00:45:03 116

原创 DML数据操作语言

DML(Data Manipulation Language)数据操作语言用来对数据库中表的数据进行增删改。关键字:insert,delete,update等1️⃣ 添加数据:语法:insert into 表名(列名1,列名2,…列名n) values(值1,值2,…值n);注意:①列名和值要一一对应②如果表名后,不定义列名,则默认给所有列添加值③除了数字类型,其他类型需要引号2️⃣删除数据:语法:delete from 类名 where 条件注意:①如果不加条件,则删除表中所有记录

2020-11-26 22:40:45 352

原创 数据库1

数据库的基本概念1️⃣ 数据库的英文单词:DataBase 简称:DB2️⃣ 数据库是什么:①用于存储和管理数据的仓库3️⃣ 数据库的特点:持久化存储数据的。其实数据库就是一个文件系统方便存储和管理数据使用了统一的方式操作数据库—SQL4️⃣ MySQL配置MySQL服务启动 cmd->services.msc 打开服务的窗口使用cmd管理员开启/关闭 net start/stop mysql连接mysql mysql -uroot -proot5️⃣MySQ

2020-11-26 18:03:33 95

原创 注解

注解:说明程序的,给计算机看注释:用文字描述程序,给程序员看·定义:注解也叫元数据,一种代码级别的说明,与类、接口、枚举是在同一层次。可以声明在包、类、方法、局部变量、方法参数等的前面、用来对这些元素进行说明,注释。作用:1、编写文档:通过代码里标识的注解生成文档【生成文档】1、代码分析:通过代码里标识的注解对代码进行分析【反射】3、编译检查:通过代码里标识的注解让编译器能实现基本的编译检查【override】使用注解 @注解名称JDK中预定义的一些注解1.@Override:检测该被注解

2020-11-26 01:38:32 91

原创 反射案例

/*框架类需求:不改变代码的前提下,创建任意类的对象并执行其中的任意方法实现:1、配置文件2、反射步骤:1、将需要创建的对象的全类名和需要执行的方法定义在配置文件中2、在程序中加载读取配置文件3、使用反射技术来加载类文件进内存4、创建对象5、执行方法*/public class ReflectTest {public static void main(String[] args) throws IOException, ClassNotFoundException, NoSuch

2020-11-25 22:35:45 72

原创 反射

概述反射:框架设计的灵魂框架:半成品软件。可以在框架的基础上进行软件开发,简化编码反射:将类的各个组成部分封装为其他对象,反射机制好处:1.可以在程序运行过程中,操作这些对象2.可以解耦,提高程序的可扩展性获取class对象的方式:1、Class.forName(“全类名”):将字节码文件加载进内存,返回class对象多用于配置文件,将类名定义在配置文件中,读取文件,加载类2、类名.class:通过类名的属性class获取多用于参数的传递3、对象.getClass(): getCla

2020-11-25 21:46:34 85

原创 Junit测试

如测试计算器类Assert.assertEqualspublic class CalculatorTest {/**测试add * */@Testpublic void testadd(){ // System.out.println("我被执行了"); Calculator c =new Calculator(); int result = c.add(1,2); //System.out.println(result); //断言 这个结果是3 .

2020-11-25 15:34:49 93

原创 方法的引用

概念public class demo01Printable {public static void main(String[] args) { printString((s)->{ System.out.println(s); });//lambda表达式/* 分析:lambda表达式目的:打印参数传递的字符串 1、System.out对象已经存在 2、println方法也是已经存在的 可以优化lambda表达式 */ printString(

2020-11-25 01:08:49 143

原创 练习 集合元素处理

传统方式public class demo01StreamTest {public static void main(String[] args) { ArrayList<String> one =new ArrayList<>(); one.add("张三"); one.add("李四"); one.add("赵柳二"); ArrayList<String>one1= new ArrayList<>();

2020-11-25 00:12:05 60

原创 Stream流的常用方法

forEach遍历/*forEach:该方法接收一个Consumer接口函数,将每一个流元素交给该函数处理简单记:forEach方法:用来遍历流中的数据是一个终结方法,遍历之后就不能继续调用Stream流中的其他方法*/public class demo01Stream_ForEach {public static void main(String[] args) { //获取一个Stream流Stream<String>stream= Stream.of("张三","

2020-11-24 02:03:11 922 1

原创 Stream流

传统方式遍历集合/*使用传统方式遍历集合*/public class demo01Stream {public static void main(String[] args) { List<String> list =new ArrayList<>(); list.add("sdsds"); list.add("sdqqsds"); list.add("sdseeeeeds"); List<String> list1 =n

2020-11-24 01:33:50 801

原创 Function接口

Function接口/*Function接口:根据一个类型的数据得到另一个类型的数据前者称为前置条件,后者称为后置条件Function接口中最重要的抽象方法是:R apply(T t)根据类型T的参数获取类型R的结果使用的场景例如:将String类型转换为Integer类型*/public class demo01Function {/* 定义一个方法 方法的参数传递一个字符串类型的整数 方法的参数传递一个Function接口,泛型使用(String,Integer)

2020-11-23 23:19:44 405

原创 常用函数式接口

/*常用的函数式接口Supplier接口仅包含一个无参的方法:T get(),用来获取一个泛型参数指定类型的对象数据Supplier接口被称为生产型接口,指定接口的泛型是什么类型,那么接口中的get方法就会生产什么类型的数据*/public class demo01Supplier {//定义一个方法,方法的参数传递Supplier<T>接口,泛型执行String,get方法会返回一个Stringpublic static String getString(Supplier<

2020-11-23 21:01:28 235 1

原创 函数式接口作为方法的返回值类型案例

/*如果一个方法的返回值类型是一个函数式接口,可以直接返回一个lambda表达式当通过一个方法来获取一个Compartor接口类型的对象作为排序器时,可以调用该方法获取*/public class demo02Comparator {//定义一个方法,方法的返回值类型是函数式接口public static Comparator<String> getComparator(){ /*return new Comparator<String>() {

2020-11-20 19:12:02 317

原创 函数式接口作为方法的参数案例

/*Runnable接口是一个函数式接口假设有一个startThread方法使用该接口作为参数,可以使用lambda进行传参这种情况和Thread类的构造方法参数为Runnable没有区别*/public class demo01Runnable {//定义一个方法startThread,方法的参数使用函数式接口Runnablepublic static void startThread(Runnable run){ //开启多线程 new Thread(run).start(

2020-11-20 18:52:17 389

原创 优化日志案例

/*使用lambda优化日志案例lambda的特点:延迟加载使用前提:必须存在函数式接口*/public class demo02Lambda {//定义一个显示日志的方法,方法参数传递日志等级和MessageBuilder接口public static void showLog(int level, MessageBuilder messageBuilder) { //对日志等级判断,如果是1级,调用MessageBuilder接口的方法messagebulider if(l

2020-11-20 16:56:31 103

原创 函数式接口

概念:函数式接口在java中指:有且仅有一个抽象方法的接口。函数式编程的体现就是lambda。语法糖:使用更加方便,但原理不变的代码语法。/*函数式接口:有且仅有一个抽象方法的接口接口中可以包含其他的方法(默认,静态,私有)注解 @FunctionalInterface 作用:可以检测接口是否是一个函数式接口是:编译成功否:编译失败(接口中没有抽象方法,抽象方法的个数多于一个)*/@FunctionalInterfacepublic interface MyFunctionalInte

2020-11-20 00:54:12 653

原创 模拟BS服务器

分析代码实现/*创建BS版本的服务器*/public class TCPServer {public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(8080); /* 开始多线程读取服务器的照片 让服务器一直处于监听的状态 */ while (true){ Socket socket = se

2020-11-19 22:56:56 283

原创 文件上传优化

客户端public class TCPClient {public static void main(String[] args) throws IOException { //1.创建一个本地字节输入流FileInputStream对象,构造方法中绑定要读取的数据源 FileInputStream fis = new FileInputStream("D:\\IdeaProjects\\basic-code\\aaaa\\q\\1.jpg"); //2.创建一个客户端Socke

2020-11-19 18:57:02 117

原创 文件上传案例

文件上传原理文件上传客户端/*文件上传案例的客户端:读取本地文件,上传到服务器,读取服务器回写的数据明确:数据源:D:\IdeaProjects\basic-code\aaaa\qaq\qaq.jpg目的地:服务器实现步骤:1、创建本地字节输入流:FileInputStream对象,绑定读取的数据源2、创建一个客户端Socket对象,构造方法中绑定的IP地址和端口号3、使用Socket的方法getOutputStream,获取网络字节输出流OutputStream对象4、使用本地字节

2020-11-19 13:43:37 288

原创 TCP通信的服务器端

/*TCP通信的服务器端:接收客户端的请求,读取客户端发送的数据,给客户端回写数据表示服务器的类:java.net.ServerSocket构造方法:ServerSocket(int port)创建绑定到特定端口的服务器套接字。服务器端明确的事:必须知道是哪个客户端请求的服务器 用accept方法获取要请求连接的客户端对线Socket成员方法:accept()侦听并接受到此套接字的连接实现步骤:1、创建服务器ServerSocket对象和系统要指定的端口号2、使用ServerSocke

2020-11-19 01:01:24 473

原创 TCP通信的客户端代码实现

/*TCP通信的客户端:向服务器发送连接请求,给服务器发送数据,读取服务器回写的数据表示客户端的类:java.net.Socket:此类实现客户端套接字(也可以叫“套接字”)。套接字是两台机器间通信的端点。套接字:包含了IP地址和端口号的网络单位构造方法:Socket(String host, int port) 创建一个流套接字并将其连接到指定主机上的指定端口号参数:String host:服务器主机的名称/服务器的IP地址int port:服务器的端口号成员方法:OutputStre

2020-11-19 00:43:34 325

原创 TCP通信概述

概述TCP通信能实现两台计算机之间的数据交互,通信的两端,严格区分为客户端(Client)和服务器(Server)在Java中,提供了两个类用于实现TCP通信程序:1.客户端: java.net.Socket 类表示。创建 Socket 对象,向服务端发出连接请求,服务端响应请求,两者建立连接开始通信。2.服务端: java.net.ServerSocket 类表示。创建 ServerSocket 对象,相当于开启一个服务,并等待客户端的连接。服务器端必须明确:1.多个客户端同时和服务器进行交

2020-11-18 23:56:33 1165

原创 网络编程入门

1.1 软件结构:1、C/S结构:Client/Server结构,客户端与服务器结构,如qq。2、B/S结构: Browser/Server结构,流浪器和服务器结构,如谷歌。1.2网络通信协议网络通信协议:对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。协议中对数据的传输格式、传输速率、传输步骤等做了 统一规定,通信双方必须同时遵守,最终完成数据交换。TCP/IP协议:传输控制协议/因特网互联协议( Transmission Control Protocol/Internet P

2020-11-18 23:16:20 154

原创 打印流

/*PrintStream 打印流为其他输出流添加了功能,使他们能方便打印各自数据值表示形式特点:1、只负责数据的输出,不负责数据的读取2、永远不会抛出IOException3、有特有的方法 print printlnsetOut(PrintStream out)可以修改输出语句的目的地为参数传递的打印流的目的地*/public class demo04PrintStream {public static void main(String[] args) throws FileNotFo

2020-11-18 18:55:16 74

原创 序列化和反序列化

Person p = new Person(“jack”,10);把对象以流的方式,写入到文件中保存,叫做对象的序列化writeObject()ObjectOutputStream:对象的序列化流把文件中保存的对象,以流的方式读取出来,叫做对象的反序列化ObjectInputStream:对象的反序列化流readObject() 接收:Object obj = new Person(“jack”,10);对象的序列化/*把对象以流的方式,写入到文件中保存,叫做对象的序列化构造方法:

2020-11-18 18:00:19 84

原创 练习 转换文件编码

/*将GBK编码的文件,转换为utf-8编码的文件分析:1、创建InputStreamReader对象 传递字节输入流和指定的编码表名称GBK2、创建OutputStreamWriter对象,传递字节输出流和指定的编码表名称UTF-83、使用InputStreamReader对象的方法read4、使用OutputStreamWriter对象的方法writer,把读取的数据写入文件中5、释放资源*/public class demo07Test {public static void ma

2020-11-18 17:01:18 280 4

原创 编码问题

/*FileReader可以读取默认编码格式(UTF-8)的文件读取系统默认编码(GBK中文)会产生乱码*/public class demo04FileReader {public static void main(String[] args) throws IOException { FileReader fr =new FileReader("D:\\IdeaProjects\\basic-code\\aaaa\\我是GBK.txt"); int len =0; wh

2020-11-18 16:45:56 88

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除