目录
1.基本概念
2.web的应用程序
3.数据库基础知识
4.数据库设计的步骤
5.JDBC API详情
6.数据库连接池
7.有关Maven
8.有关MyBatis
9. Mapper代理开发
10.注解开发
11.有关HTML
12.有关CSS
13.有关JavaScript
14.有关BOM
15.有关DOM
16.获取Element
17.事件监听
18.表单验证
1.基本概念
静态web:
HTML,CSS
提供给人的数据始终不会发生变化
动态web
几乎所有的网站都会有
在java中,动态web资源开发的技术统称为JavaWeb
提供给人的数据会发生变化,每个时间段、每个人看到的信息都不一样。
技术栈:Servlet/JSP、ASP、PHP
Servlet 是什么
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
ASP是什么
asp文件是一种网页的动态页面文件,包含了VB Script或Jscript脚本程序代码。asp文件一般是需要执行的才能看到我们想要的效果,比如我们浏览asp网页时,Web服务器就会根据请求生成相应的HTML代码然后再返回给浏览器,这样才产生了我们看到的动态网页。
2.web的应用程序
web的应用程序:可以提供浏览器访问的程序;
3.数据库基础知识
添加外键约束
4.数据库设计的步骤
注意数据库设计
数据库设计就是根据业务系统的具体需求,结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型。
建立数据库中的表结构以及表与表之间的关联关系的过程。
有哪些表?表里有哪些字段?表和表之间有什么关系
①需求分析(数据是什么?数据具有哪些属性?数据与属性的特点是什么)
②逻辑分析(通过ER图对数据库进行逻辑建模,不需要考虑我们所选用的数据库管理系统)
③物理设计(根据数据库自身的特点把逻辑设计转换为物理设计)
④维护设计(1.对新的需求进行建表;2.表优化)
黑马程序员数据库设计案例
JDBC(用java代码操纵数据库)
基本步骤(重点)
5.JDBC API详情
DriverManager
Connection
事务管理
.MySQL事务管理
开启事务:BEGIN; START TRANSACTION;
提交事务:COMMIT;
回滚事务:ROLLBACK;
MySQL默认自动提交事务。
JDBC事务管理:Connection接口中定义了3个对应的方法
开启事务: setAutoCommit(boolean autoCommit): true为自动提交事务;false为手动提交事务,即为开启事务提交事务: commit()
回滚事务:rollback()
6.数据库连接池
开启数据库连接是一个非常费时间的操作,而且资源开启之后还要关闭,关闭也要消耗一定的资源。
数据库连接池是一个容器,负责分配、管理数据库的连接。
它允许应用程序重复的使用一个现有的数据库连接,而不是新建一个。
释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。
DB连接池的好处有①资源重复。②提升系统影响速度。③避免数据库连接遗漏
数据库连接池实现
标准接口:DataSource
·官方(SUN)提供的数据库连接池标准接口,由第三方组织实现此接口。。功能:获取连接
Connection getConnection()
.堂见的数据库连接池:
. DBCP
. C3PO. Druid
. Druid(德鲁伊)
. Druid连接池是阿里巴巴开源的数据库连接池项目
。功能强大,性能优秀,是Java语言最好的数据库连接池之一
注:当前文件的路径,可以使用System.out.println(System.getProperty("user.dir"));语句来进行打印。
7.有关Maven
Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。
Maven是专门用于管理和构建Java项目的工具。它的主要功能有:
提供了一套标准化的项目结构
提供了一套标准化的构建流程(编译,测试,打包,发布....)
提供了一套依赖管理机制
Maven提供了一套标准化的项目结构,所有IDE使用Maven构建的项目结构完全一样,所有IDE创建的Maven项目可以通用
Maven 作用:
标准化的项目结构 标准化的构建流程 方便的依赖管理
项目对象模型(Project Object Model) 依赖管理模型(Dependency) 插件(Plugin)
8.有关MyBatis
什么是MyBatis?
MyBatis是一款优秀的持久层框架,用于简化JDBC开发。
MyBatis 本是 Apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github官网: https://mybatis.org/mybatis-3/zh/index.html
持久层:负责将数据到保存到数据库的那一层代码
JavaEE三层架构:表现层、业务层、持久层。
框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型在框架的基础之上构建软件编写更加高效、规范、通用、可扩展。
MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。
从XML中构建SqlSessionFactory
每个基于MyBatis 的应用都是以一个-SqlSessonFacory 的实例为核心的。SqoSessonFactay 的实例可以通过 SaSesstnFracoy)Blier获得。而SqlsessinrFactoy Bulceo则可以从XML配置文件或一个预先配置的 Configuration 实例来构建出 SqISessionFactory 实例。
从XML文件中构建 Sq/SessonF actbry 的实例排常简单,建议使用类路径下的资源文件进行配置。但也可以使用任意的输入流(npurSTream)实例,比如用文件路径字符审或们leURL构造的输入流。MyBatis包含一个名叫Resources的工具类,它包含一些实用方法,使得从类路径或其它位置加载资源文件更加容易。
9. Mapper代理开发
步骤
使用Mapper代理方式完成入门案例
1.定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件(.xml文件)放置在同一目录下。
2.设置SQL映射文件的namespace属性为Mapper接口全限定名(类似于:com.bai.mapper.userMapper)。
3.在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致。
4.编码
①.通过SqlSession的getMapper方法获取Mapper接口的代理对象。
②.调用对应方法完成sql的执行。
细节:如果Mapper接口名称和SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载。
MyBatis 核心配置文件
类型别名(typeAliases)
类型别名可为Java类型设置一个缩写名字。它仅用于XML配置,意在降低冗余的全限定类名书写。
MyBatis 参数传递
MyBatis 接口方法中可以接收各种各样的参数,MyBatis底层对于这些参数进行不同的封装处理方式
单个参数:
1. POJO类型: 2. Map集合: 3. Collection: 4. List: 5. Array: 6.其他类型:
多个参数: 封装为Map集合,
map.put( "arg0",参数值1)
map.put( "param1",参数值1)
map .put( "param2",参数值2)
map. put( "agr1",参数值2)
10.注解开发
使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java注解不仅力不从心,还会让你本就复杂的SQL语句更加混乱不堪。因此,如果你需要做一些很复杂的操作,最好用XML来映射语句。
选择何种方式来配置映射,以及认为是否应该要统一映的射语句定义的式,完全取决于你和你的团队。换句话说,永远不要拘泥于一种方式,你可以很轻松的在基于注解和XML的语句映射方式询自由移植和切换。
11.有关HTML
什么是HTML?
.HTML是一门语言,所有的网页都是用HTML这门语言编写出来的 HTML(HyperText Markup Language):超文本标记语言
超文本:超越了文本的限制,比普通文本更强大。除了文字信息,还可以定义图片、音频、视频等内容>标记语言:由标签构成的语言
HTML运行在浏览器上,HTML标签由浏览器来解析HTML标签都是预定义好的。
例如:使用<img>展示图片W3C标准:网页主要由三部分组成
>结构:HTML
>表现:CSS
>行为: JavaScript
基础标签
音频、视频、图片标签
img:定义图片
src:规定显示图像的URL(统一资源定位符)height:定义图像的高度
width:定义图像的宽度
audio:定义音频。支持的音频格式:MP3、WAV、OGG
src:规定音频的URL
controls:显示播放控件
video:定义视频。支持的音频格式:MP4, WebM、OGG
src:规定视频的URL
controls:显示播放控件
资源路径:
1.绝对路径:完整路径 2.相对路径:相对位置关系
尺寸单位: 1. px:像素 2.百分比:
超链接标签
· href:指定访问资源的URL
· target:指定打开资源的方式
·_self:默认值,在当前页面打开
·_blank:在空白页面打开
列表标签
表格标签
table:定义表格
border:规定表格边框的宽度
width :规定表格的宽度
cellspacing:规定单元格之间的空白
tr:定义行
align:定义表格行的内容对齐方式
td:定义单元格
rowspan:规定单元格可横跨的行数
colspan:规定单元格可横跨的列数
表单标签
表单:在网页中主要负责数据采集功能,使用<form>标签定义表单表单项(元素):不同类型的input元素、下拉列表、文本域等。
form:定义表单
action:规定当提交表单时向何处发送表单数据,URL
method :规定用于发送表单数据的方式
get:浏览器会将数据直接附在表单的action URL之后。大小有限制
post:浏览器会将数据放到http请求消息体中。大小无限制
表单标签—表单项
12.有关CSS
什么是CSS?
CSS是一门语言,用于控制网页表现
css(Cascading Style Sheet):层叠样式表
W3C标准:网页主要由三部分组成
结构:HTML
>表现: CSS
>行为: JavaScript
CSS的导入样式
CSS选择器
作为Java后端工程师,我们可以在网上直接搜索前端样式演示
13.有关JavaScript
什么是JavaScript ?
JavaScript是一门跨平台、面向对象的脚本语言,来控制网页行为的,它能使网页可交互W3C标准:网页主要由三部分组成
结构:HTML
表现: cSs
行为: JavaScript
JavaScript和Java是完全不同的语言,不论是概念还是设计。但是基础语法类似。
JavaScript(简称:JS)在1995年由Brendan Eich发明,并于1997年成为一部ECMA标准。ECMAScript 6 (ES6)是最新的JavaScript版本(发布于2015年)。
JavaScript 能改变图像的 src属性值。
JavaScript能够进行表单验证。
JavaScript引入方式
1. 内部脚本:将JS代码定义在HTML页面中
2.外部脚本:将JS代码定义在外部JS文件中,然后引入到HTML页面中
2.外部脚本;将JS代码定义在外部JS文件中,然后引入到HTML页面中
外部文件: demo.js
alert("hello JS ~");
.引入外部js文件
<script src=" ../js/demo.js"></script>
注意:
1.外部脚本不能包含<script>标签 2. <script> 标签不能自闭合。
JavaScript的输出语句
使用window.alert()写入警告框
使用document.write()写入HTML输出
使用console.log()写入浏览器控制台
JavaScript的变量
JavaScript中用var关键字(variable的缩写)来声明变量
var test = 20;
test ="张三";
JavaScript是一门弱类型语言,变量可以存放不同类型的值变量名需要遵循如下规则:
组成字符可以是任何字母、数字、下划线(_)或美元符号($)数字不能开头
建议使用驼峰命名
ECMAScript 6新增了let关键字来定义变量。它的用法类似千var,但是所声明的变量,只 在let关键字所在的代码块内有效,且不允许重复声明
ECMAScript 6新增了const关键字,用来声明一个只读的常量。一旦声明,常量的值就不能改变。
数据类型
JavaScript中分为:原始类型和引用类型5种原始类型:
number:数字(整数、小数、NaN(Not a Number)).
string:字符、字符串,单双引皆可
boolean:布尔。true,false
null:对象为空
undefined:当声明的变量未初始化时,该变量的默认值是undefined
运算符
14.有关BOM
Browser Object Model浏览器对象模型
JavaScript将浏览器的各个组成部分封装为对象。
组成:
Window:浏览器窗口对象.
Navigator:浏览器对象
screen:屏幕对象.
History:历史记录对象.
Location:地址栏对象
15.有关DOM
Document Object Model文档对象模型
将标记语言的各个组成部分封装为对象
Document:整个文档对象
Element:元素对象
Attribute:属性对象 Text:文本对象 Comment:注释对象
DOM是w3C(万维网联盟)的标准
DOM定义了访间HTML 和XML文档的标准: w3c DOM标准被分为3个不同的部分:
1.核心DOM:针对任何结构化文档的标准模型
Document:整个文档对象
.Element:元素对象
Attribute:属性对象.Text:文本对象. Comment:注释对象
2.XML DOM:针对XML文档的标准模型3.HTML DOM:针对HTML文档的标准模型
lmage: <img>
.Button : <input type='button'>
16.获取Element
. Element:元素对象
·获取:使用Documen象的方法来获取
1. getElementByld:根据id属性值获取,返回一个Element对象
2. getElementsByTagName:根据标签名称获取,返回Element对象数组
3. getElementsByName:根据name属性值获取,返回Element对象数组
4. getElementsByClassName:根据class属性值获取,返回Element对象数组
17.事件监听
事件:HTML事件是发生在HTML元素上的“事情”。比如:按钮被点击。鼠标移动到元素之上,按下键盘按键。事件监听: JavaScript可以在事件被侦测到时执行代码。
事件绑定
18.表单验证
1.当输入框失去焦点时,验证输入内容是否符合要求
2.当点击注册按钮时,判断所有输入框的内容是否都符合要求,如果不合符则阻止表单提交