javaEE重点面试

本文介绍了SQL中的数据定义、操纵、事务控制和数据控制语言,包括创建、修改和删除表的操作,以及去重、聚合函数、分页查询和连接类型。此外,讨论了视图、存储过程的概念,事务的ACID特性,以及JavaScript与jQuery的关系和Ajax的基本使用。还涉及了Servlet的生命周期、JSP元素和内置对象,以及HTTP方法GET和POST的区别。最后提到了JSON与XML的数据交换特点。
摘要由CSDN通过智能技术生成

1.Sql中常用的有哪些命令:

数据定义语言:DDL Data Defintion Language :create(创建) alter(修改) drop删除

数据操纵语言:  DML Data Maniplutaion Language :insert(增加) select(查询) update(修改)      delete(删除)

事务控制语言 TCL Transcation Control Language: commit(提交) rollback(回滚)

数据控制语言 DCL Data Control Language:  grant(授权) revoke(撤销)

数据查询语言DQL Data Query Language  数据查询语言 用来查询记录(数据) select

2.修改表

1. 修改表名

alter table 旧表名rename to 新表名;

2.修改字段名

alter table 表名 change column 旧字段名  新字段名  字段类型;

3.删除字段

alter table  表名 drop COLUMN  要删除的字段名;

4.添加字段

alter table 表名add 字段名 字段类型;

5. 修改字段类型

alter table 表名 modify 字段名 新的数据类型;

3.去除重复项

distinct  group by

4.聚合函数

聚合函数的特性 只返回一个值

max()  获得最大值

min()  获得最小值

 avg() 求平均值

 sum()  求和

count() 统计个数

5.分页

Limit    排序:order by  asc正序  desc倒序

6.左连接和右连接的区别

内连接 inner join  不展示空的数据只展示对应有的数据

左连接 left join  以相对与左边这张表的数据全部展示出来空的也展示

右连接 right join 相对于右边的这表的数据全部展示出来 空的也展示

 左连接和右连接的区别?

左连接是先查询左表(即以左表为主),然后查询右表 右表中满足条件的显示出来不满足条件的显示null.

右连接就是先把右表的所有记录全部查询出来然后左表满足条件显示不满足显示null

7.视图了解吗?

数据库中的视图是一个虚拟的表,但他同正式表一样,包含一系列带有名称的行和列数据。行和列数据来自定义视图查询所引用的表,并且在应用视图时动态生成。另外视图还可以在已经存在的视图基础上定义。

 视图一经定义存储在数据库中,与其对应的数据并没与象表那样在数据库中在存储一份,通过视图看到的数据只是存在基本表中的数据,对视图的操作与对表的操作一样。可以对其进行查询,修改和删除。当对通过视图看到的数据进行修改时,相应的基本表中的数据也会发生变化,同时若是基本表的数据发生变化,则这种变化也会自动的反应在视图上。

创建视图语法

 Create [or replace] view view_name

As select_statement [which|casecaed|local|checkopton]

修改视图

 alter  view view_name

As select_statement [which|casecaed|local|checkopton]

删除视图

 用户可以删除一个或多个视图 前提是必须有该视图的drop权限

drop view view_name,view_name,view_name

注意:视图的可更新性(视图的数据)和视图中查询的定义有关系 以下类型的视图不能更新

  ***包含以下关键字的sql语句:分组函数,distinct group by, having union 或者unionall

   常量视图

   Select 中包含子查询

   Join

form一个不能更新的视图

Where子句的子查询引用了from字句中的表

8.存储过程

 创建存储过程 create procedure 存储过程的名字(参数)

 调用存储过程 call 存储过程名字(参数)

删除存储过程 drop procedure 存储过程名字

定义存储过程的时候 参数定义

  In 表示输入参数 可以携带数据到存储过程中

  Out 表示输出参数  可以从存储过程中返回结果

 Inout 表示输入输出参数 既可以输入功能也可以输出功能

Begin代表开始

End代表结束

9.Sql的执行顺序

10.设计的三大范式。

 设计原则  建议设计表的尽量遵守三大范式。(数据库三范式)

 第一范式:确保每个字段的原子性,要求表的每个字段必须是不可分割的独立单元。

   学生表  姓名或者英文名    露西|lucy--违反第一范式

第二范式:在第一范式的基础上,要求每张表只描述一件事情。表的每个字段和表的键有依赖。

学生表 :学生id 学生名称 学生年龄  黄金价格 --违反第二范式

第三范式:在第二范式的基础上,要求每张表的主键之外的其他字段都直接依赖主键

 学生表: 学生id 学生姓名  学生年龄 老师编号

 老师表: 老师的编号 老师姓名  老师工资

11.jdbc连接数据库的步骤

1.导入jar包

  2.加载驱动  Class.forName("com.mysql.jdbc.Driver")

  3.创建数据库连接Connection con=  DriverManager.getConnection("jdbc:mysql://localhost:3306/java128?characterEncoding=utf-8",用户名,密码)

         注意防止添加数据乱码加上?characterEncoding=utf-8

  4.写sql语句  String sql =""  select  insert delete update

  5.创建数据库操作对象   PreparedStatement ps con.prepareStatement(sql);

  6.执行sql语句   ResultSet rs= ps.executeQuery()   ps.executeUpdate()

7.关闭连接释放资源    xxx.close()

12.什么是事务?

  在数据库中所谓的事务是指一组逻辑操作单元即一组sql语句。当这个单元中的一部分操作失败整个事物回滚。只有全部正确才能完成提交。(只有增删改操作有事物查询是没有事物的)。

13.事物的ACID四大特性?

  1.原子性(Atomicity)

原子性是指一个事物是不可分割的工作单位,事物的操作要么都发生,要么都不发生。

  1. 一致性(Consistency)

  事物必须使数据从一个一致性状态变换到另一个一致性状态(数据不能被破坏)

  1. 隔离性(Isolation)

  事物的隔离性是指一个事物的执行不能被其它的事物干扰

  1. 持久性(Durability)

  持久性是指一个事物一旦提交它对数据库的改变是永久性的。

14.js和jQuery的区别?

Js和jquery没有什么太大的区别,jQuery是js的封装,在js中我们操作的是document对象,在jquery中我们通过$进行操作,$指的就是jQuery,而jquery中常用的选择器有id选择器,类选择器,属性选择器等,常用的方法有html() attr()  hide() text()  prop() show() val()等方法,我们在jquery中最常用的ajax ,ajax发起请求的方式有三种 $.get  $.post  $.ajax 这三种中我们最常用的是$.ajax  ,ajax的核心对象是XMLHttpRequest  ,ajax常用的属性有url  路径  type 请求的方式(get和post) data (发送到后台的数据) dataType(后台返回的类型 json  text  html xml) async(同步还是异步  同步false  异步为true) success:function(data)(成功回调函数) error:function() 失败函数  。以上就是我的理解

15.js对象如何转化为jquery,jquery如何转化成js对象

js对象如何转化为jquery  var id=$(#id);

jquery如何转化成js对象  var input=$(input[name=’’])[0]

16.servlet生命周期的各个阶段

实例化------------servlet容器创建servlet实例

初始化------------该容器会调用init方法

提供服务---------如果请求servlet则该容器调用service()方法  doget或者dopost方法(注意只有post请求才能调用dopost方法)

销毁-----------------销毁实例之前调用destory()

不可用----------------销毁实例并标记为垃圾收集

注意:实例化和初始化以及销毁的方法直走一次

17.Jsp本质是java servlet

18.jsp的页面元素 7个

静态内容 html静态文本

指令 以<%@开始 以%>结束  <%@page language="java"%>

表达式 以<%=开始 以%>结束 <%=request.getContextPath() %> 表达式要有返回值

Scriplet(脚本) 以<%开始 中间放java 以%>结束

声明  以<%!开始 函数方法 以%>结束

动作 以<jsp:动作名 以</jsp:动作名>结束  例如:<jsp:include page="NewFile.jsp"></jsp:include>

注释 <!--这是html的注释客户端可以看到-->

     <%--这是jsp的注释客户端看不到--%>

19.jsp九大内置对象(隐式对象)

输入/输出对象

request

response

out

作用域通信对象

session

application

pageContext

servlet对象

page

config

错误对象

Exception

20.作用域通信对象

隐式对象的作用域包括:pagecontext request session application

作用域通信对象: pageContext session appliaction

名称                    作用域

pageContext              在当前页面中起作用

request                  在当前请求中起作用

session                  在当前会话中起作用,不关闭浏览器的前提

application               在当前所有的应用中起作用,在不关闭应用的前提下   

作用域的范围 从小到大

pageContext<request<session<application

21.转发和重定向的区别

转发:request.getReuqestDispacher(url).foward(request,response);

地址栏不发生变化

后边的代码会继续执行

forward中不需要添加request.getContextPath()

跳转到指定的url会直接使用原来的页面的值,不会产生新的请求对象

重定向:response.sendRedirect(request.getContextPath()+url);

地址栏会发生变化

后边代码也会执行

重定向后它的页面获取不到原来页面的值 因为你的请求变化了 变成了一个新的请求

redirect跳转中建议大家加上request.getContextPath()

22.<%@include%>和<jsp:include>有什么区别?

Include指令 通过file属性来指定包含的页面。当jsp转化成servlet时引入指定的文件。

Incude动作通过 page属性来指定被包含的页面,当jsp页面被请求时引入指定的文件。

include指令(静态包含) 被包含的文件原封不动的插入到包含页面中使用该指令的位置,然后jsp编译器在对这个合成的文件进行编译最终便后的文件只有一个。是在编译阶段执行

Jsp:include(动态包含) 包含文件时当在该动作表示执行后jsp程序会将请求转发到(注意不是重定向)被包含的页面并将执行结果输出到浏览器,然后返回页面继续执行后边的代码,以为web容器执行的俩个文件,所有jsp编译器会分别对这个俩个文件进行编译。在请求阶段执行。

23.get和post有什么区别?

get安全性较低

pots安全性较高

Get在提交表单时会在地址栏展示所有的提交信息

Post在提交时不会再地址栏展示提交信息

Get提交数据一般不能超过2kb

post提交默认没有限制

Get执行效率比较高

Post执行效率比较低

上传文件一般使用post

向服务器获取数据

  一般项目中使用get请求进行查询操作

向服务器发送数据

  在项目中使用post做增删改操作

24.json和xml区别

 Json与xml都是用于接收web服务器端的数据

 Json和xml的相同点

  Json和xml数据都是自我描述都易于理解

  Json和xml数据都是有层次 的结构

  Json和xml数据可以被大多数的编程语言使用

Json和xml不同点

  Json不需要结束标签

  Json更加简短

Json读写速度快

Json可以使用数组

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值