个人笔记

1.登录mysql:mysql -u root -p root

2.sql:是结构化查询语言
3.sql语言的分类:
a.数据定义语言(DDL):Date Definition language
用来对数据库中的对象(数据库,表)进行添加(create) 删除(drop) 修改(alter)
查询所有的数据库:show databases;
切换到当前数据库:use test(数据库名);
查询当前数据库中所有的表:show tables;

添加(创建)数据库:create database 1605c(数据库名);
删除数据库:drop database 1605c(数据库名);

要在某一个数据库中创建表,首先需要切换到这个数据库:use 1605d(数据库名);

创建表:
语法:create table 表名
create table one(
字段 字段类型
id int,
name varchar(20)
);
查看某一个表的结构,即描述这个表的结构:desc one(表名);
修改表结构:
添加一列:
语法:alter table 表名 add 列名 字段类型
alter table one add password varchar(20);
修改一列:
语法:alter table 表名 change 旧列名 新列名 字段类型
alter table one change password pwd varchar(30);
修改的时候字段名和字段类型都可以修改
删除一列:
语法:alter table 表名 drop 列名;
alter table one drop pwd; 注意:删除的时候不需要写字段类型
删除表结构:drop table one(表名);

b.数据操纵语言(DML):Data Manipulation language
用来对表中的数据进行添加(insert) 修改(update) 删除(delete)查询(select)
往表中添加数据:
语法:insert into 表名 (字段1,字段2,字段3...) values(值1,值2,值3...)
insert into two (id,name,password) values(1,'cs','222');
修改表中的数据:

语法:update 表名 set 列名=值 where 条件(where:表示修改的条件)
update one set name='赵铜' where id=1;
语法:update 表名 set 列名=值 如果没有where条件,那么会把所有的数据全部修改了
update one set name='赵铜';

删除表中的数据;
语法:delete from 表名 where 条件(where:表示删除的条件)
delete from one where id=1;
语法:delete from 表名 如果没有where条件,那么会把所有的数据全部删除了
delete from one;


c.数据控制语言(DCL):Data Control Language
对用户或角色赋予权限以及收回权限
赋予权限:grant
收回权限:revoke

1.约束
主键:primary key
非空:not null
唯一:unique
自增:auto_increment

2.查询指定字段
select id from one;
select name from one;

3.查询所有字段
select id,name,pwd from one;
select * from one;

4.去除冗余 distinct
select distinct name from one;
select name from one;

5.运算符
算术运算符 + - * / %
select id,number,id+number from one;
逻辑运算符 =、<>、!=、<、<=、>、>=
select * from one where id>2;
关系运算符 and or not
select * from one where id>2 and number <100;

6.排序 order by asc;升序 desc;降序 可以根据多个字段排序
select * from one order by name; 默认升序
select * from one order by name asc;升序
select * from one order by name desc;降序

7.分页 limit n:第几页(即起始页) m:一页显示多少条
关键组 (n-1)*m , m
limit (0-1)*5,5
select * from one limit (0-1)*5,5;


8.别名 关键字as

使用关键字:select id as 编号, name as 姓名 ,price 价格,number 数量 from seven;
不使用关键字:select id 编号, name 姓名 from seven;

9.条件查询 where
select * from seven where id=1;

10.分组 group by
分组统计男女各多少人
alter table seven add sex varchar(10);
select * from seven;
update seven set sex='男' where id%2=0;
update seven set sex='女' where id%2!=0;

select count(*),sex from seven group by sex;

11.统计函数 count(*):统计有多少条
统计函数 max(id):最大值
select max(id) from seven;
统计函数 min(id):最小值
select min(id) from seven;
统计函数 avg(id):平均数
select avg(id) from seven;
统计函数 sum(id):求和
select sum(id) from seven;

1.多表查询
2.内连接:inner join:查询出两个表都有的数据
3.on 表示连个表连接的条件
select s.*,c.c_id,c.c_name from t_stu s
inner join t_class c on s.classid=c.c_id;
4.左连接:left join :以左表为主,查询出左表所有数据
select s.*,c.* from t_stu s
left join t_class c on s.classid=c.c_id;
5.右连接:right join :以右表为主,查询出右表所有数据
select s.*,c.* from t_stu s
right join t_class c on s.classid=c.c_id;


6.子查询
#子查询也称为嵌套查询
#子查询允许把一个查询嵌套在另一个查询当中。
#子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询。
#子查询可以包含普通select还可以包括的任何子句,
#比如:distinct、 group by、order by、limit、join和union等;但是对应的外部查询必须是以下语句之一:select、insert、update、delete
#查询学生年龄在17,19,20
#in子查询,在这个范围内
select * from t_stu
where age in(17,19,20);-- 不算子查询

select * from t_stu
where age in(select age from t_stu where age<=20) and id<4;
#any 子查询,任何一个
select * from t_stu
where age > any (select age from t_stu where age<=20);

#some是any的别名

1.常见的网络架构
C/S架构:客户端/服务器 Client/Server
B/S架构:浏览器/服务器 Browser/Server 我们学习的
2.web应用程序的工作原理
1.客户端(网页)与服务器的交互方式
a.Form方式是最基本的向服务器提交数据的方式
b.url地址栏的形式传递数据到服务端
c.xml形式
3.tomcat:默认端口号:8080
mysql默认端口号:3306

1.tomcat的目录结构
a.bin文件夹:存放tomcat服务器的启动和停止相关的批处理文件,
startup.bat:启动tomcat服务器
shutdown.bat:停止tomcat服务器
b.conf文件夹:存放tomcat服务器的配置文件
sever.xml:修改tomcat默认的端口号:8080
c.lib文件夹:存放jar包
d.logs文件夹:存放日志
每一次访问tomcat服务器都会在这个文件夹中产生相关记录,包含
访问时间,主机名,提交请求的方式,http状态码
e.temp文件夹:临时文件夹,tomcat停止后可以删除

f.webapps文件夹:存放的是web项目,其中每个文件夹都是一个项目,如果这个目录下已经存在的 是tomcat自带的
g.work文件夹:运行时生成的文件,最终运行的文件都在这里。
这里所有的文件都是通过webapps的项目生成的,
可以把这个目录删除,再次运行的时就会重新生成work目录(清除缓存)

2.web项目的目录结构
a.src:写java代码
b.WebRoot:发布到服务器的所有文件
meta-inf:相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用 程序、扩展程序、类加载器和服务
web-inf:
lib:存放jar
web.xml:这是web应用程序的配置文件,是web应用程序的入口
classes:存放编译后的.class文件


3.http状态码:
404:路径错误
200:成功
500:服务器内部错误
405:请求方式错误
jdbc
jsp(java server pages)---》java---》mysql


1.jsp:(java server pages):是javaweb服务器端的动态资源
在Java Server Page里面使用 Java 编程语言和类库

2.jsp页面的组成
a.html代码
b.<% %>:java小脚本
c.<%@ %>:指令
三大指令:1).page:设置当前页面的属性
language:页面的编程语言
import:导包
pageEncoding:设置页面的编码格式
2).taglib:到标签库
uri:标签库的位置
prefix:前缀
3).include:动态包含

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>叫c标签
d.注释:<!--我是html注释,你在浏览器可以看到我 -->
<%--我是jsp的注释,你在浏览器看不到我 --%>
e.<%= %>:表达式
f.<%! %>:声明


3.jsp的运行原理
浏览器访问jsp页面的时候将
转译 编译
index.jsp---------->index_jsp.java----------->index_jsp.class


4.jsp的本质是servlet


5.jsp的特点
a.一次编译到处运行
b.使用可重用的组件
c.采用标记简化页面开发
d.完善的存储管理和安全性
e.将显示和内容的生成分离


注意:jsp是由浏览器直接解释执行,这句话是错误的
html是由浏览器直接解释执行,这句话是正确的

1.form表单的提交方式:
get提交:http://localhost:8080/day3/loginVal.jsp?name=msg&password=123
?:表示后面的是参数
post请求:http://localhost:8080/day3/loginVal.jsp

 

2.九大内置对象
out:输出
request:一次请求
response:响应
session:一次会话
application:整个应用
page:当前页面
pageContext:当前页面的上下文环境
config:配置
exception:异常


3.四大作用域:
pageContext:当前页面的上下文环境
request:一次请求
session:一次会话
application:整个应用


4.三大指令
page:当前页面的属性
taglib:引入标签库
include:引入页面

5.六大动作:
include
useBean
param
forward
setProperty
getProperty

 

1.转发和重定向的区别:
A: 请求转发一般可以通过作用域来传值,重定向可以通过url进行传值
B: 转发时候路径前面可以加/,重定向时路径前面不能加/,加上会丢失项目名称
C: 请求转发不可以跨域,重定向可以跨域
D: 请求转发URL不变,重定向URL发生变化
2.session
A: session的过期时间可以在web.xml中配置,默认过期时间是30分钟
B: session的过期时间也可以在session创建时候设置
C: Web.xml中配置session的默认过期时间的单位是分钟
D: session.setMaxInactiveInterval(30)表示此session的过期时间是30秒
3.cookie:
A:默认为瞬时cookie
B:设置过期时间的方式cookie.setMaxAge(60*60*24*7),时间单位是秒;
4.session和cookie的区别:
A:session存放服务器端,cookie存在客户端(浏览器)

5.request.getAttribute("")返回值是object类型

 

Hibernate是一个数据持久化层的ORM框架.

Object:对象,java对象,此处特指JavaBean

Relational:关系,二维表,数据库中的表。

映射|映射元数据:对象中属性,与表的字段,存在对应关系。

  Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架

ORM 就是通过将Java对象映射到数据库表,通过操作Java对象,就可以完成对数据表的操作

  Hibernate提供了对关系型数据库增删改成操作

 

  Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码

  Hibernate是一个基于jdbc的主流持久化框架,是一个优秀的orm实现,它很大程度的简化了dao层编码工作  session.save(User);

  Hibernate使用java的反射机制

   Hibernate的性能非常好,因为它是一个轻量级框架。映射的灵活性很出色。它支持很多关系型数据库,从一对一到多对多的各种复杂关系

 

 

开启事务 beginTransaction()

获得事务 getTransaction()

 

提交事务:commit()

回滚事务:rollback()

 

l  hibernate执行hql语句

l  hql语句:hibernate提供面向对象查询语句,使用对象(类)和属性进行查询。区分大小写。

l  获得 session.createQuery("hql")

l  方法:

       list()  查询所有

       uniqueResult() 获得一个结果。如果没有查询到返回null,如果查询多条抛异常。

 

       setFirstResult(int) 分页,开始索引数startIndex

       setMaxResults(int) 分页,每页显示个数 pageSize

 

 一级缓存:又称为session级别的缓存。当获得一次会话(session),hibernate在session中创建多个集合(map),用于存放操作数据(PO对象),为程序优化服务,如果之后需要相应的数据,hibernate优先从session缓存中获取,如果有就使用;如果没有再查询数据库。当session关闭时,一级缓存销毁。 

 :与一级缓存一样的存放位置,对一级缓存数据备份。保证数据库的数据与 一级缓存的数据必须一致。如果一级缓存修改了,在执行commit提交时,将自动刷新一级缓存,执行update语句,将一级缓存的数据更新到数据库。

 

 Hibernate三种状态:临时状态、持久化状态、游离化状态

posted @ 2019-08-07 10:46  韩老板  阅读(164)  评论(0编辑  收藏  举报