• 个人笔记


    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三种状态:临时状态、持久化状态、游离化状态

    好事尽从难中得,少年勿向易中求。
  • 相关阅读:
    java8新特性LocalDate、LocalTime、LocalDateTime的学习
    vue在移动端使用alloyfinger手势库操作图片拖拽、缩放
    移动端设置滚动后显示滚动条
    springboot使用swagger2生成开发文档
    学习Validator验证框架总结
    对于线程池ThreadPool的学习总结
    apache-commons和guava的工具类
    Mac中anaconda中创建虚拟python环境,配置flask
    ubuntu系统中解决桌面分辨率不适配问题
    Linux服务器命令说明
  • 原文地址:https://www.cnblogs.com/hanqinshuai888/p/11313890.html
Copyright © 2020-2023  润新知