MYSQL
主键约束:primary key
主键自增:auto——increment
非空:not null
唯一:unique
默认:default
检查:check
外键:防止冗余的数据,通过外键来描述两张表的关系
#语法:foreign key(本表的主键名) references 对方表名(对方表的主键) FOREIGN KEY(user_id) REFERENCES tb_user(id) #创建外键
基础函数:
字母变大:upper 字母变大:lower 求长度:length
截取:substr(截取字段、从那条截取、截取长度) 拼接:concat 替换:replace
将字段为空的替换:ifnull(字段名,替换内容) 四舍五入:round
分页:limit(2,3)从第三条截取,取3条数据
排序:order by 字段名 asc/desc 升序/降序默认不写为升序
聚合函数: 分组:group by
min最小、max最大、count条数、avg平均数、sum求和
事务的四大特性:
原子性:多条sql的关系是密不可分的,要么全成功,要么全失败
隔离性:数据库为了保证性能支持高并发,但是有安全隐患,保证多个操作之间是隔离的
持久性:对数据库操作是持久生效影响的
一致性:保证数据在多个系统中是一致的
隔离性有隔离级别:安全越来越好,性能越来越差——读未提交、读已提交、可重复度、串行化
索引:单值索引、唯一索引unique、复合索引
CREATE INDEX ename_index ON emp(ename) 创建单值索引
EXPLAIN SELECT * FROM emp WHERE job='总监'AND hiredate='2019-1-1' 使用索引,需要遵循最左原则。EXPLAIN用于查看是否使用索引
ALTER TABLE emp DROP INDEX 索引名 删除索引
视图:可以当成表来使用,但只能执行select操作
语法:create view 视图名 as 查询的SQL语句
使用视图:slect * from 视图名
多表联查:
笛卡尔积:SELECT emp.* FROM dept,emp
WHERE dept.deptno=emp.deptno#描述了两张表的关系
AND dept.dname='java开发部' #业务条件
连接查询:SELECT dept.* FROM dept JOIN emp
ON dept.deptno=emp.deptno#描述了两张表的关系
WHERE emp.job='总监' #业务条件
子查询:SELECT SUM(degree) FROM scores
WHERE sno=( SELECT sno FROM students WHERE sname='李军' )
sql总结:索引是否生效使用explain查看,索引遵循最左原则。
分组前的过滤用where,不能用别名,聚合函数。
当查询中出现聚合函数必须使用分组。
子查询就是分开查询两张表
HTML
常用标签:
标题标签:<h1></h1> 列表标签:无序<ul><li></li></ul> 有序<ol><li></li></ol>
图片:<img src="a.png"/> 超链接标签:<a href="网址" target="_blank"></a>
_blank新窗口打开 默认_self 当前窗口打开
输入框:<input type="" />
text:普通输入框 password:密码输入框 number:数字输入框 周输入框:week
data:年月日输入框 button:按钮 submit:提交按钮 radio:单选 多选:checkbox
<audio controls="controls">添加音频
<source src="jay.mp3"></source>
</autio controls="controls">添加视频
<video controls="controls">
<source src="b.mp4"></source>
</video>
表格:<table>
<tr>
<td></td>
</tr>
</table>
表单:在table标签外面加上form标签,在表格的基础上给表格的属性添加名字,需要提交submit
CSS
用来修饰HTML网页的
语法:选择器{属性名:属性值;属性名:属性值;样式3....}
<style>HTML提供的,写css代码的标签
div{选中div
text-align: center; 文字居中
}
</style>
基础选择器:直接用标签名{}
类(class)选择器:.名{}
id选择器:#名{}
分组选择器:把多种选择器用 , 号隔开
属性选择器:按照标签的属性来选择元素,标签名[属性名]
盒子模型:外边距margin 边框border 内边距padding 内容:width heigh
在HTML网页中引入css代码,在<head>标签中
<link rel="stylesheet" href="1.css"/>通过这个标签实现了HTML和css的松耦合
JS
概述:javascript,java脚本语言用来增强网页的交互性,JS是基于对象和事件驱动的脚本语言。基于对象:js和java一样可以创建对象和使用对象
事件驱动:js代码需要触发才会执行,常见事件:单击、双击、鼠标划入划出
脚本语言:js的运行必须在浏览器里
JS特点:直译式,弱类型语言。跨平台(指浏览器),一定的安全性
<head>
<script>
alert('您路过了div元素')
</script>
</head>
<body>
<!-- 单击div时弹出提示 --> <div οnclick="alert('您路过了div元素')">我是div</div>
</body>
JS运算符:需要注意==比较的是值,===比较的是类型和值。!=比较值,!==比较值与类型
JS的数据类型:number/string/boolean/null/undefined
JS中同样有分支结构switch() if...else
JS数组
概述:和java数组一样,区别是JS数组可以存储不同类型的数据
JS函数
概述:类似于jaba里的方法,用来封装一段代码,为了提高代码的复用性
// 1,定义函数 var sout = function(){ console.log("调用成功"); } // 2,调用函数 sout();
JS对象
创建对象: let car = {name : "BMW", //资源名 :资源的值
price : 9.9, //设置属性
start : function(){ //设置函数
console.log('调用成功!');
}}
DOM
概述:全程是文档对象模型,是JS提供的一种用来快速解析HTML网页的技术
不太理解有时间再搞吧
JSON---轻量简洁明了
概述:规定了浏览器和服务器交互数据的格式,本质上就是一个字符串
在<head>引入js代码
<script src="1.js"></script>
</head>
Vue
概述:基于JavaScript的渐进式前端框架
基于JavaScript : 本质上就是封装了js代码, 提供vue.js文件
渐进式 : vue框架的功能很丰富的, 自己选择用哪些功能.
前端框架 : 只是提供了一套完善的功能,指定软件的流程
特点:轻量级 + MVVM思想 + 数据驱动/双向绑定 + 组件化
同样实在<script src="vue.js位置"></script>
<body>
<!-- 2.准备数据渲染区:是指在指定位置展示vue提供的数据
{{ }} 插值表达式,{{msg}}获取vue提供的msg的值
-->
<div id="app"> {{msg}} </div>
{{msg}}
<!-- 3.创建Vue对象,使用vue准备数据,让第二步获取数据 -->
<script>
new Vue({
//el属性是:挂载点,即将把数据展示在指定位置(css选择器)
el:"#app" , //id选择器,用#获取id的值
//data属性是:用来准备数据
data:{ //js对象
msg:'hello vue~~~'
}
})
</script>
</body>
11Vue从这里学习
el:挂载点 data:给渲染去准备数据 methods:创建vue方法
Axios技术
概述:是Vue提供的Ajax技术,对比JS实现的Ajax不同,Vue提供了更加简单语法,封装了js代码Ajax技术是实现了网页的局部刷新,异步访问的功能,好处是避免了刷新整个页面,而只刷新局部
Vue路由
概述:接受浏览器的请求,根据不同的请求方式,找到匹配的组件
<router-view></router-view>通过此标签展示
Vue-cli脚手架--14
概述:是指vue的客户端,是使用vue项目的前提,只需要安装就可以使用。
ElementUI
概述:提供了一套漂亮的前端网页展示效果
el-form是表单用来提交数据,el-form-item是表单项,el-input是输入框,el-button是按钮
:model是表单要获取的数据,label是表单项的名字,placeholder是提示,v-model是双向绑定
按钮的type属性用来指定颜色,@click属性给按钮添加点击事件(在methods里提供函数)
maven--15
概述:是一个项目构建数据,用来管理项目中用到的jar包,包含下载、存放、编译jar包
仓库:远程仓库/镜像仓库/本地仓库
groupld是组id,通常他的值是公司的域名
artifactId是项目id,通常他的值是项目名称
version,版本号
注意:使用时需修改镜像仓库与本地仓库位置在settings.xml
配置maven:
SpringBoot重点初体验16
概述:是由Spring团队开发的,整合了Spring框架,SpringMVC框架的所有jar包
好处:
注解开发,简便
1、简化了Maven的操作,以前自己找jar包的坐标,现在直接创建springboot工程勾选你要的功能
2、SpringBoot项目可以快速启动/关闭,就像服务器(Tomcat)一样的操作,被整合了
3、简单快速整合其他技术
SpringMVC设计模式:M指Modes模型层用来封装数据,V指Viex视图层,用来展示数据,C指Controller控制层,接受浏览器发来的请求,并作出数据的响应
SpringMVC框架用来接收请求+做出响应
MVC工作原理:
涉及五个组件:
1.前端控制器DispatcherServlet:接受请求,并且调度
2.处理映射器HandlerAdapter:根据地址栏的写法,找到能处理这次请求的类和方法
3.处理适配器HandlerAdapter:真正开始找到方法,执行方法体处理业务,并返回结果
4.视图解析器ViewResolver:找到能够展示数据的页面
5.视图渲染View:把数据展示在页面上
浏览器发送数据给服务器有两种方式? get 和 post
RestFul数据解析--16
//get方式:http://localhost:8080/student/save?id=666&name=jack&age=2
//restful方式:http://localhost:8080/student/save2/666/jack/20
restful方式传输数据时需要使用@PathVariable
注意:restful解析参数时,标准是两步: {变量}+@PathVariable获取变量的值
但是,参数列表如果是一个java对象,就不许加@PathVariable否则500异常!!
Spring框架
概述:Spring框架可以和其他技术无缝衔接
BeanFactory:
bean工厂,spring框架认为所有类都是bean,从bean工厂可以获取每个bean
IOC:控制反转,不需要程序员来创建对象了,交给Spring框架来管理对象(从初始化到销毁)。程序员可以直接从Spring框架中获取Bean的对象
常用的IOC注解:@Component@Service@Controller@Repository
DI:依赖注入,使用Spring框架明确两个对象间的依赖关系
通过@Autowired注解进行依赖注入,自动装配,自动布线
AOP:面向切面编程,是一种思想,解决了OOP(面向对象)的不足。
好处:把一些共性代码,提取形成切面,提供丰富的通知,聚焦了程序员的关注点,只关注业务本身
1, 切面Aspect: 就是一个类
2, 通知Advice: 类里的方法,分类:
前置通知, 是指调用业务方法前会被执行的功能(适用于权限管理,缓存管理)
后置通知, 是指调用业务方法后会被执行的功能(适用于释放资源)
环绕通知, 是指调用业务方法的前 后 会被执行的功能(适用于事务管理,性能分析)
返回后通知, 是指调用业务方法并返回了结果后 会被执行的功能
异常通知, 是指调用业务方法并抛出异常后 会被执行的功能
3,切点PointCut: 触发通知执行的那个方法的时间点
使用步骤:添加jar包spring-boot-starter-aop
计时:long time=System.currentTimeMillis();记录当前时间
怎么使用bean第一种
创建Hello类,通过配置文件创建bean,最后通过进行使用
使用bean
1、读取配置文件 2、获取对象
怎么使用bean第二种
使用IOC注解:功能是将类当成bean交给spring管理
1, 创建类, 并且一定要使用IOC注解(@Component @Controller @Service @Repository)
2, 配置包扫描, 需要指定包的路径, 包的扫描范围越小越好, 合理的定范围就可以
3, IOC本质就是, 把你创建的类,Spring框架创建对象,存入Map集合里.
key是类名(首字母小写) value是类的对象(框架利用反射来创建的对象)
Map -> { “hello” , Class.forName(“Hello类的全路径”).newInstance() }
Git--17
概述:一个储存下载的仓库
声明:本文根据霞霞老师(cgblpx)所教内容进行总结,封面为lenovo滴图片