黑马程序员技术交流社区
标题:
【石家庄校区】Java语言学习阶段总结——08
[打印本页]
作者:
君临城下
时间:
2018-1-11 15:39
标题:
【石家庄校区】Java语言学习阶段总结——08
本帖最后由 小石姐姐 于 2018-1-12 11:18 编辑
## XML概述
* XML:
* Extensible Markup Language, 可扩展标记语言. 是一种标记语言, 类似于HTML. 是W3C组织发布的, 目前XML的规范是W3C于2000年发布的XML1.0规范
* 特点
* XML没有预定义标签, 所使用的标签都需要由用户自定义
* 作用:
* 用于描述数据, 而非显示数据.
* 擅长表示一对多的, 包含嵌套的数据关系
* 应用场景:
* 作为数据载体, 通过网络传递数据
* 作为应用程序的配置文件
XML语法: 注释
* 注释的格式:
* `<!-- 注释内容 -->`
* 同时支持单行注释和多行注释
* 注意:
* 注释不会被当做标签解析
* 注释不能嵌套
* XML声明之前不能有注释
* 原因: 只有先解析到XML声明才知道该文档是一个XML文档, 才会把`<!-- -->`当做注释.
## Schema约束: 概述
* Schema约束
* 也是一种XML约束, 用于取代DTD.
* Schema相较于DTD的优势
* Schema更符合XML语法结构
* DOM, SAX等XML解析库更容易解析Schema文档
* Schema对**名称空间(namespace, 或命名空间)**支持很好
* Schema比DTD支持更多的数据类型, 并支持用户自定义新的数据类型
* Schema定义约束的能力非常强大, 可以对XML实例文档做出细致的语言限制
* Schema文档
* Schema本身是一个XML文件, 但后缀名为`.xsd`
* Schema文档通常被称为`模式文档(约束文档)`, 遵循该文档的XML文件称为`实例文档`
* Schema文档必须有一个根节点, 且该根节点名称必须为`schema`
* 编写了一个Schema约束文档后, 需要把这个约束文档中声明的元素绑定到一个`URI`地址上. 这一过程叫做`将元素绑定到一个命名空间`, 以后XML文件就可以通过这个URI找到约束文档
## 数据库概念
* 数据库:
* 存储数据的仓库. 本质是一个文件系统, 数据按照指定的格式将数据存储起来, 用户可以对数据库中的数据进行增删改查
* DBMS:
* Database Management System, 数据库管理系统. 是操作和管理数据库的大型软件, 用于建立, 使用和维护数据库, 对数据库进行统一管理和控制, 以保证数据库的安全性和完整性. 用户通过数据库管理系统访问数据库中表内的数据
## 数据库和管理系统
* 作用
* 数据库: 存储**数据表**, 索引, 视图等
* 数据表: 存储数据
* 行: 数据
* 列: 描述数据信息
* 数据: 也叫**记录**, 也就是我们实际要存储的信息
* 数据库管理系统: 操作数据库, 表, 记录
* 记住关系:
* 数据库程序有数据库
* 数据库中有表
* 表中有记录
* 数据库程序 > 库 > 表 > 记录
## SQL语句介绍和分类
* 什么是SQL: Structured Query Language, 结构化查询语言.
* 为什么叫`结构化查询`: 因为数据表是有结构的, 有行和列, 对行和列进行查询
* SQL语言作用: 和DBMS通信, 操作数据库, 表, 记录
* SQL语言按照作用可以划分为4类:
* DDL: Data Defination Language, 数据定义语言, 用来定义数据库对象(库, 表等)
* `CREATE`
* `ALTER`
* `DROP`
* DML: Data Manipulation Language, 数据操作语言, 对表中的记录进行增, 删, 改
* `INSERT`
* `DELETE`
* `UPDATE`
* DQL: Data Query Language, 数据查询语言, 对表中的记录进行查
* `SELECT`
* `FROM`
* `WHERE`
* DCL: Data Control Language, 数据控制语言, 创建修改用户, 权限
主键约束
* 格式: `PRIMARY KEY`
* 作用: 限制该列非空且唯一
* 自增约束
* 格式: `AUTO_INCREMENT`
* 作用: 使该列的值按照数字规律自动增长
## 排序查询
* 排序查询
* 是`SELECT`的子句, 将查询后的结果集进行排序
* 格式:
* `ORDER BY 列名 排序选项`
* `SELECT ... FROM ... WHERE ... ORDER BY 列名 排序选项`
* 排序选项: 适用于数字, 英文字母, 日期
* `ASC`: 默认, 升序
* `DESC`: 降序
* 注意: `WHERE`和`ORDER BY`的顺序
* `WHERE`在前, `ORDER BY`在后, 否则报错
* 因为是排序是对SELECT查询出的结果集再次进行排序, 而不是对表中的数据进行排序. 所以要先把SELECT WHERE的查询结果拿到, 才能使用ORDER BY排序
* 扩展:
* 排序可以按照多列, 如先按a列降序, 如果a列中有相同的值, 则按b列降序
* `SELECT * FROM users ORDER BY age DESC, salary DESC;`
* `ORDER BY`是SQL语句的末尾吗?
* 不一定是SQL语句的末尾, 后面还可以写LIMIT子句
## JDBC概念和数据库驱动程序
* JDBC:
* Java DataBase Connectivity, Java数据库连接. 是一种技术的名称
* 是SUN公司提供的用于执行SQL语句的Java API, 用为多种关系型数据库提供统一的访问. 它由一组用Java语言编写的类和接口组成, 是Java访问数据库的标准规范
* 数据库驱动:
* 两个不同的设备要通信, 需要满足一定的通信数据格式, 数据格式由设备提供商规定, 设备提供商为设备提供驱动软件, 通过驱动软件就可以让两个设备通信.
* Java和MySQL数据库就可以看作2个不同的设备, JDBC需要使用数据库驱动来让Java代码与数据库服务器通信, 将Java中的SQL字符串发送给数据库来执行
* 数据库驱动有多种, 用于不同开发语言, 对于Java也有专门的一个驱动
* Java用于MySQL的驱动从哪里得到: [MySQL官网](
https://dev.mysql.com/downloads/connector/j/
)
## JDBC原理
* JDBC和数据库驱动的关系
* JDBC是一套API, 可以通过Java代码来使用JDBC, 同时提供了一套接口, 用于让数据库厂商根据自家数据库特点去实现JDBC的功能
* 数据库驱动是数据库厂商根据自家数据库特点去实现JDBC接口而制作的, 用于让JDBC能够调用数据库的相关功能
* Java程序通过使用JDBC的API, 通过多态的方式调用数据库驱动中实现类的方法, 对数据库进行操作
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2