不忘初心,方得始终

『少女祈祷中…』

今日总结:HTML表单、CSS

今日内容

  • HTML表单标签
  • CSS

1 HTML表单

1.1 表单标签

  • 表单:用于采集用户输入的数据的。用于和服务器进行交互。
  • form:用于定义表单的。可以定义一个范围,范围代表采集用户数据的范围
  • 作用
    1.规定了用户可以操作的,用来给服务器传递数据的区域
    2.其中可以包含input元素,比如文本字段、复选框、单选框、提交按钮等等
    3.表单和表单元素用于向服务器传输数据
  • 格式

    <form action="路径" method="post">
        <input type="submit"  value="提交"/>
    </form>
  • 常用属性

    • action:规定当提交表单时向何处发送表单数据
    • method:规定用于发送表单数据的 HTTP 方法,一共有7种,其中有2种比较常用,分别为get和post ,默认是get
    • enctype:规定在发送表单数据之前如何对其进行编码
  • get 和 post 的区别

    • get:

      1.请求参数会在地址栏中显示。会封装到请求行中。

      2.请求参数大小是有限制的。

      3.不太安全。

    • post:

      1.请求参数不会再地址栏中显示。会封装在请求体中。

      2.请求参数的大小没有限制。

      3.较为安全。

  • 补充

    1、表单元素标签必须放在表单form中才有效

    2、所有的表单元素都有name属性,后台接收表单元素的值时,就是根据其name属性来接收的

    3、所有的表单元素都有value属性:提交到后台的值

    4、单选按钮和复选按钮必须要有的属性:value属性

    5、单选和复选按钮默认被选中的属性:checked属性

- 阅读剩余部分 -

记录下win10配置git过程

本机环境:Windows10 1809 64bit

开始:

1 下载git

官方下载地址:https://git-scm.com/download/win

2 安装git

1、安装页面
Install_start.png

2、安装路径
Install_path.png

- 阅读剩余部分 -

今日总结:web概述、HTML

今日内容

  • web概述
  • HTML

1 web概述

1.1 JavaWeb

  • 使用Java语言开发基于互联网的项目

1.2 软件架构

1.C/S: Client/Server 客户端/服务端
  • 在用户本地有一个客户端程序,在远程有一个服务器端程序
  • 如:QQ,迅雷...
  • 优点:

    • 用户体验好
  • 缺点:

    • 开发、安装、部署、维护较为麻烦
2.B/S: Browser/Server 浏览器/服务器端
  • 只需要一个浏览器,用户通过不同的网址(URL),可以访问不同的服务器端程序
  • 优点:

    • 开发、安装、部署、维护简单
  • 缺点:

    • 如果应用过大,用户的体验可能会受到影响
    • 对硬件要求过高

- 阅读剩余部分 -

今日总结:数据库连接池、Spring JDBC

今日内容

  • 数据库连接池
  • Spring JDBC

1 数据库连接池

  • 概念:其实就是一个容器(集合),存放数据库连接的容器。

    当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器

  • 好处:

    • 节约资源
    • 用户访问高效
  • 实现:

    • 标准接口:DataSource (javax.sql包下)

      • 方法:

        • 获取连接:getConnection()
        • 归还连接:Connection.close() 如果连接对象Connection是从连接池中获取的,那么调用Connection.close()方法,则不会再关闭连接了。而是归还连接
    • 一般不去自己实现它,有数据库厂商来实现
    • 市面上流行的技术

      • C3P0:数据库连接池技术
      • Druid:数据库连接池实现技术,由阿里巴巴提供的

1.1 C3P0:数据库连接池技术

  • 步骤:

    1. 导入jar包 (两个) c3p0-0.9.5.2.jar和mchange-commons-java-0.2.12.jar ,

      • 不要忘记导入数据库驱动jar包
    2. 定义配置文件:

      • 名称: c3p0.properties 或者 c3p0-config.xml
      • 路径:直接将文件放在src目录下即可。
    3. 创建核心对象 数据库连接池对象 ComboPooledDataSource
    4. 获取连接: getConnection
  • 代码:

    //1.创建数据库连接池对象
     DataSource ds  = new ComboPooledDataSource();
    //2. 获取连接对象
     Connection conn = ds.getConnection();

1.2 Druid:数据库连接池实现技术,由阿里巴巴提供的

  • 步骤:

    1. 导入jar包 druid-1.0.9.jar
    2. 定义配置文件:

      • 是properties形式的
      • 可以叫任意名称,可以放在任意目录下
    3. 加载配置文件。Properties
    4. 获取数据库连接池对象:通过工厂来来获取 DruidDataSourceFactory
    5. 获取连接:getConnection
  • 代码:

    //3.加载配置文件
     Properties pro = new Properties();
     InputStream is =  DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
     pro.load(is);
    //4.获取连接池对象
     DataSource ds = DruidDataSourceFactory.createDataSource(pro);
    //5.获取连接
     Connection conn = ds.getConnection();

- 阅读剩余部分 -

今日总结:JDBC入门、JDBC工具类、JDBC控制事务

今日内容

  • JDBC概念、入门
  • JDBC工具类
  • JDBC控制事务

1 JDBC

1.1 什么是JDBC

  • JDBC规范定义接口,具体的实现由各大数据库厂商来实现。
  • JDBC是Java访问数据库的标准规范,真正怎么操作数据库还需要具体的实现类,也就是数据库驱动。每个数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动。所以我们只需要会调用JDBC接口中的方法即可,数据库驱动由数据库厂商提供。

1.2 使用JDBC的好处

  • 程序员如果要开发访问数据库的程序,只需要会调用JDBC接口中的方法即可,不用关注类是如何实现的。
  • 使用同一套Java代码,进行少量的修改就可以访问其他JDBC支持的数据库

1.3 快速入门

  • 步骤:
  1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar

    1. 复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下
    2. 右键-->Add As Library
  2. 注册驱动
  3. 获取数据库连接对象 Connection
  4. 定义sql语句
  5. 获取执行sql语句的对象 Statement
  6. 执行sql,接受返回结果
  7. 处理结果
  8. 释放资源

- 阅读剩余部分 -

今日总结:多表查询、事务、DCL语句

今日内容

  • 多表查询
  • 事务
  • DCL语句

1 多表查询

  • 查询语法
select
      列名列表
from
      表名列表
where....
  • 笛卡尔积:

    • 有两个集合A、B,取这两个集合的所有组成情况。
    • 要完成多表查询,需要消除无用的数据

1.1 内连接查询

1.隐式内连接:使用where条件消除无用数据
  • 语法:
2.显式内连接
  • 语法:
select 字段列表 from 表名1 [inner] join 表名2 on 条件
例如:
SELECT * FROM emp INNER JOIN dept ON emp.`dept_id` = dept.`id`;    
SELECT * FROM emp JOIN dept ON emp.`dept_id` = dept.`id`;    -- inner 可省略
3.内连接小结:查询步骤
  1. 确定查询哪些表
  2. 确定表连接的条件
  3. 确定查询的条件
  4. 确定查询的字段

- 阅读剩余部分 -

今日学习总结:DQL查询、约束、多表之间关系、范式、数据库备份

今日学习内容

  1. DQL查询语句

    1. 排序查询
    2. 聚合函数
    3. 分组查询
    4. 分页查询
  2. 约束
  3. 多表之间的关系
  4. 范式
  5. 数据库的备份和还原

1 DQL 查询语句

1.1 排序查询

  • 语法:order by 子句

    -- 通过ORDER BY子句,可以将查询出的结果进行排序(排序只是显示方式,不会影响数据库中数据的顺序)
    SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名 [ASC|DESC];
    ASC: 升序,默认值
    DESC: 降序
    
    eg:
    -- 查询所有数据,使用年龄降序排序
    SELECT * FROM student ORDER BY age DESC;
    
    -- 查询所有数据,在年龄降序排序的基础上,如果年龄相同再以数学成绩升序排序
    SELECT * FROM student ORDER BY age DESC, math ASC;
  • 注意:

    • 如果有多个排序条件,第1个条件相等时,按第2个条件进行排序,依次类推

- 阅读剩余部分 -

今日学习总结:数据库基本概念、MySQL数据库、SQL语句

今日学习内容

  • 数据库基本概念
  • MySQL数据库软件
  • SQL语句

1 数据库基本概念

1.1 数据的储存方式

储存位置优点缺点
内存速度快数据是临时状态,不能永久保存
文件数据可以永久保存操作数据不方便
数据库1) 数据可以永久保存
2) 查询速度快
3) 对数据的管理方便
占用资源,需要购买

1.2 什么是数据库?

  • 数据库 是用于存取和管理数据的仓库
  • 数据库 英文单词:DataBase 简称:DB
  • 数据库本质上是一个文件系统,数据还是以文件的方式存在服务器的电脑上的

1.3 数据库的特点

  • 持久化的储存数据,其实数据库本质上就是一个文件系统
  • 可以方便的进行数据的存取和管理
  • 使用了统一的方式对数据进行存取和管理,就是SQL语句

    • SQL语句:DBMS DataBase Management System

1.4 常见的数据库管理软件

  • Oracle:Oracle公司的,收费,大型的数据库
  • MySQL:Oracle公司的,6.x之前是免费的,之后是收费的,小型的数据库
  • SQL Server:微软公司,收费,大型的数据库,C#,.net语言中使用较多
  • DB2:IBM公司的,收费,大型的数据库,多用于银行系统
  • Java常用的数据库有:Oracle、MySQL

- 阅读剩余部分 -

今日学习总结:Junit单元测试、反射、注解

今日学习内容

  • Junit单元测试
  • 反射
  • 注解

1 Junit单元测试

  • @Test注解

    • 它不是JDK提供的注解,是Junit提供的,所以要将Junit的依赖先导入到模块中才可以使用
    • @Test注解是加在方法之上的
1.1 测试分类
  • 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
  • 白盒测试:需要写代码的。关注程序具体的执行流程。
1.2 Junit使用:白盒测试
* 步骤:
    1. 定义一个测试类(测试用例)
        * 建议:
            * 测试类名:被测试的类名Test CalculatorTest
            * 包名:xxx.xxx.xx.test cn.noisky.test

    2. 定义测试方法:可以独立运行
        * 建议:
            * 方法名:test测试的方法名 testAdd()  
            * 返回值:void
            * 参数列表:空参

    3. 给方法加@Test
    4. 导入junit依赖环境

* 判定结果:
    * 红色:失败
    * 绿色:成功
    * 一般我们会使用断言操作来处理结果
        * Assert.assertEquals(期望的结果,运算的结果);

* 补充:
    * @Before:
        * 修饰的方法会在测试方法之前被自动执行
    * @After:
        * 修饰的方法会在测试方法执行之后自动被执行

- 阅读剩余部分 -

今日学习总结:函数式接口、Stream流

今日学习总结

  • 函数式接口
  • Stream流

1 函数式接口

  • 概念

    有且仅有一个抽象方法的接口

  • 如何检测一个接口是不是函数式接口

    @FunctionalInterface

    放在接口定义的上方:如果接口是函数式接口,编译通过;如果不是,编译失败

  • 注意事项

    我们自己定义函数式接口的时候,@FunctionalInterface是可选的,就算我不写这个注解,只要保证满足函数式接口定义的条件,也照样是函数式接口。但是,建议加上该注解

1.1 常用函数式接口之Supplier

  • Supplier接口

    Supplier接口也被称为生产型接口,如果我们指定了接口的泛型是什么类型,那么接口中的get方法就会生产什么类型的数据供我们使用。

  • 常用方法

    只有一个无参的方法

    方法名说明
    T get()按照某种实现逻辑(由Lambda表达式实现)返回一个数据
  • 代码演示

    public class SupplierDemo {
        public static void main(String[] args) {
    
            String s = getString(() -> "林青霞");
            System.out.println(s);
            
            Integer i = getInteger(() -> 30);
            System.out.println(i);
        }
    
        //定义一个方法,返回一个整数数据
        private static Integer getInteger(Supplier<Integer> sup) {
            return sup.get();
        }
    
        //定义一个方法,返回一个字符串数据
        private static String getString(Supplier<String> sup) {
            return sup.get();
        }
    
    }

- 阅读剩余部分 -

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. ...
  7. 14