一、JAVAWeb介绍
- Web:全球广域网,可通过浏览器访问的网站
- JAVAWeb:用java技术开发网站
- 数据库:存储和管理数据
三者关系如下图所示:
二、数据库
数据库相关概念
1、数据库(DB database)
- 数据库是存放数据的仓库,简称DB(data base)
- 数据在数据库中有组织地存储
2、数据库操作系统(DBMS database manager system)
- 数据库操作系统是管理数据库的大型软件
- MYSQL数据库:免费的数据库操作系统
- Orcale数据库:昂贵的数据库操作系统
3、SQL(structed query langugae)
- 结构化查询语言
- 操作关系型数据库的编程语言
- 定义操作所有关系型数据库的统一标准
MYSQL安装
MYSQL数据模型
SQL
1、SQL简介
2、SQL通用语法
3、SQL分类
4、DDL
5、DML
6、DQL
三、JDBC
四、Maven
1、Maven概述
Maven是专门用于管理和构建JAVA项目的工具
- 提供了一套标准化的项目结构
- 提供了一套标准化的项目构建流程(编译,测试,打包,发布)
- 提供了一套依赖管理机制
2、Maven安装配置
- Apache Maven下载地址
下载列表中找到Maven安装目录自行查找需要的版本安装:
- 作者下载的版本是3.6.3:网盘地址,验证码:1234
安装步骤
- 解压即安装完成
- 配置环境变量Maven_Home为安装路径的bin目录
- 本地仓库的配置,修改conf\settings.xml文件localRepository为指定目录
- 配置阿里云私服,修改conf\settings.xml文件标签,为其添加如下子标签:
<mirror>
<id>alimaven</id>
<mirrorOf>aliyun maven</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
3、IDEA配置Maven
步骤
- settings->
- Build,Execution,Deployment->
- Maven->
- Maven home path(改成自己Maven安装地址)->
- user setting file(改成自己Maven目录中的settings.xml)
Maven坐标详解
- 什么是坐标
Maven的坐标是资源的唯一标识
使用坐标来定义项目或引入项目中需要的依赖 - Maven坐标主要组成
groupId:定义当前Maven项目隶属组织名称(通常是域名反写)
artifacId:定义当前Maven项目名称(通常是模块名称)
version:定义当前项目版本号
IDEA创建Maven项目
- 创建模块,选择Maven,点击next
- 填写模块名称,坐标信息,点击finish
- 编写Hello World并运行
IDEA导入Maven项目
- 选择右侧maven面板,点击+号
- 选中对应项目的pom.xml
- 如果没有Maven面板,选择View->Appearance->Tools windows bar
配置Maven helper插件
- settings
- plugging
- 搜索maven helper,安装
- 重启
4、依赖管理
导入依赖步骤
- 在pom.xml中编写dependencies标签
- 在dependencies标签中用dependency标签引入坐标
- 定义坐标的groupId,artifacId,version
- 点击刷新
依赖范围
- 通过设置坐标的依赖范围scope,可以设置对应jar包的作用范围:编译环境,测试环境,运行环境
- scope默认范围是compile
五、Mybatis
1、mybatis简介
- mybatis是一款持久层框架
- 用于简化JDBC对数据库的操作
2、mybatis快速入门
- 1、创建数据库
- 2、创建模块,导入mybatis坐标
- 3、编写mybatis核心配置文件–>替换连接信息,解决硬编码问题
- 4、编写SQL映射文件–>统一管理sql语句,解决硬编码问题
- 5、编码
创建pojo类
加载核心配置文件
获取sqlSession对象,执行sql语句
释放资源
3、使用Mapper代理开发
- 1、定义与SQL映射文件同名的Mapper接口,将SQL映射文件和接口放到同一目录下
- 2、把SQL映射中的namespace改为全限定名
- 3、在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数和返回类型一致
- 4、编码:
通过SqlSession中的getMapper方法获取Map接口的代理对象
调用对应方法完成sql执行
六、Javascript
1、引入方式
- 内部引入:
<script>
//alert是javascript提供的一个警告框函数
//可以接受任意类型的参数,这个参数就是警告框的提示信息
alert("hello world");
</script>
- 外部引入:编写js文件,用src地址引入
<script src="1.js"></script>
- script代码可以放在html文件中的任何位置,为了用户体验通常放在最后执行
2、基本语法&&输出语句
基本语法
- 区分大小写
- 语句结束时;可有可无
- 当行注释//;多行注释/**/
- 大括号中是代码块
输出语句
- windows.alert()写入警告框
- document.write()写入页面上
- consle.log()写入控制台
变量&&数据类型
js是弱类型语言,可以用三种声明定义变量
var
- 作用范围为全局
- 可重复定义变量
let
- 作用范围为局部
- 不可重复定义
const
- 定义常量
数据类型(原始类型和引用类型)
- 数字类型
- String
- boolean
- null
- undifined
运算符
js大部分运算符和java一样,但多了一个===运算符
==&===
- ==判断时如果不是同一类型,先转换为同一类型再对比值
- ===先判断是否是同一类型,如果不是同一类型,直接输出false
其他类型转换为数字
- String类型转换为数字时,如果字面是数字,则直接转换为数字;如果字面不是数字,则转换为NAN
- boolean类型转换为数字时,true转换为1,false转换为0
其他类型转换为boolean类型
- number:0和NAN转换为false,其余转化为true
- String:空字符串转换成false,其余转换为true
- undifined:转换为false
- null:转换为false
流程控制语句和函数
js中流程控制语句和java一样,不赘述
函数
js中的函数不需要定义参数类型和返回值类型
- 函数创建1
function functionName(a,b){}
- 函数创建2
var functionName=function(a,b){}
- js中的函数传参个数可以多于本身的个数
3、js对象
(1)数组
- 数组定义:
var ArrayName=new Array(1,2,3);var Array=[1,2,3]
- js中的数组类似java集合,长度和类型都可以改变
- 数组添加元素:
arr.push()
- 数组删除元素:
arr.splice()
(2)String
- 定义方法:
var StringName=new String("abc");var StringName="abc"
- trim():去除字符串前后空格
- CharAt():获取对应位置字符
- IndexOf():获取字符索引
(3)自定义对象
var Name={
属性名称1:对应属性值
属性名称2:对应属性值
...
函数名称:function("形参列表") {}
}
(4)BOM对象
Window
- alert()
- confirm():确认
setTimeout(function,毫秒值)
:在一定的时间间隔后执行一个function,只执行一次setInterval(function,毫秒值)
:在一定的时间间隔后执行一个function,多次执行- 定时器案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="button" onclick="on()" value="小丑竟是我自己"></inputbutton>
<img id="myimage" border="0" src="1.PNG">
<input type="button" onclick="off()" value="吃掉对象"></inputbutton>
</body>
</html>
<script>
function on(){
document.getElementById("myimage").src='2.PNG'
}
function off(){
document.getElementById("myimage").src='1.PNG'
}
var num=0
setInterval(function() {
if(num%2==0){
on()
}
else {
off()
}
num++},1000
)
</script>
History
back()
加载History历史记录的前一个页面forward()
加载History历史记录的后一个页面
Location
- href属性,网页地址
<script>
document.write("3秒后跳转喽~")
setTimeout(function (){
location.href="https://www.baidu.com";
},3000)
</script>
(5)DOM对象
- 获取Element对象
- 常见Html Element对象的使用(查阅文档)
(6)事件监听
事件绑定
- 通过html中的事件标签属性进行绑定
<input type="button" onclick="onclick()">
function onclik(){
alert("我被点了")
}
- 通过DOM元素属性进行绑定
<input type="button" id="btn">
document.getElementById("btn").onclick=function (){
alert("我被点了")
}
常见事件
- 查阅文档
4、正则表达式
- 概念:正则表达式定义了字符串组成的规则
- 定义
1、直接量,不要加引号
var reg=/^\w{6,12}$/
2、创建RegExp对象
var reg= new RegExp(/^\w{6,12}$/)
- 方法
- test(str)判断指定字符串是否符合规则
- 语法
- ^:表示开始
- $:表示结束
- []:代表某个范围内的单个字符,如[0-9]代表0-9中的某个数字
- .:代表任意单个字符,除了换行符和结束符
- \w:代表单词字符:字母,下划线,数字
- \d:代表数字字符,相当于[0-9]
- 量词:
- +:至少一个
- *:零个或多个
- ?:零个或一个
- {x}:x个
- {m,}:至少m个
- {m,n}:至少m个,最多n个