java部分面试题目

数据库的inner join和left join以及right join的区别

参考:https://www.cnblogs.com/lijingran/p/9001302.html

1.inner join是在两张表进行连接查询时,只保存完全匹配的结果集。

SELECT p.LastName, p.FirstName, o.OrderNo
FROM Persons p
INNER JOIN Orders o
ON p.Id_P=o.Id_P and 1=1  --用and连接多个条件
ORDER BY p.LastName

还要理解一下inner join和关联连接的区别。

from a join b 与 from a, b 产生的临时表结果集都是执行笛卡尔积即(select * from a cross join b )两表的行乘积数。

2.left join 在连接查询时,会返回左表中的所有行,即使在右表中没有相应的匹配数据。

SELECT p.LastName, p.FirstName, o.OrderNo
FROM Persons p
LEFT JOIN Orders o
ON p.Id_P=o.Id_P
ORDER BY p.LastName

3.right join 在连接查询时,会返回右表中的所有行,即使在左表中没有相应的匹配数据。

SELECT p.LastName, p.FirstName, o.OrderNo
FROM Persons p
RIGHT JOIN Orders o
ON p.Id_P=o.Id_P
ORDER BY p.LastName

4.full join,在两张表进行连接查询时,返回左表和右表中所有没有匹配的行。

SELECT p.LastName, p.FirstName, o.OrderNo
FROM Persons p
FULL JOIN Orders o
ON p.Id_P=o.Id_P
ORDER BY p.LastName

mysql数据库怎么进行分页

1.一般情况下,客户端通过传递 pageNo(页码)、pageSize(每页条数)两个参数去分页查询数据库中的数据,在数据量较小(元组百/千级)时使用 MySQL自带的 limit来解决这个问题。

收到客户端{pageNo:1,pagesize:10}
select * from table limit (pageNo-1)*pageSize, pageSize;

收到客户端{pageNo:5,pageSize:30}
select * from table limit (pageNo-1)*pageSize,pageSize;

2.建立主键或者唯一索引

假设主键或者唯一索引为 good_id
收到客户端{pageNo:5,pagesize:10}
select * from table where good_id > (pageNo-1)*pageSize limit pageSize;
–返回good_id为40到50之间的数据

3.select * from table where good_id > (pageNo-1)*pageSize order by good_id limit pageSize;
–返回good_id为40到50之间的数据,数据依据good_id顺序排列。

servlet的生命周期

Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:

  • Servlet 通过调用 init () 方法进行初始化。
  • Servlet 调用 service() 方法来处理客户端的请求。
  • Servlet 通过调用 destroy() 方法终止(结束)。
  • 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

对jsp中response的理解

 response对象用于响应客户端输出信息。它封装了JSP产生的相应,并发送到客户端以响应客户端的请求。请求的数据可以是各种数据类型,甚至是文件。response对象在JSP页面内有效。

          response的功能

         1,重定向网页                response.sendRedirect("path");            path:可以是目标路径也可以是绝对路径

         2,禁用缓存                    response.setHeader("Cache-Control","no-store"

         3,设置页面自动刷新      response.setHeader("refresh","time");          time:根据自己设置,单位为秒

         4,定时跳转网页             response.setDateHeader("refresh","5;URL=path");     path:可以是目标路径也可以是绝对路径

         5,设置输出缓冲             response.setBufferSize(int Size);              设置缓冲区大小

                                                 response.reset();               清除缓冲区内容

                                                 response.isCommitted();          监测服务器是否把数据写入客户端

                                                 response.flushBuffer();                 刷新,强制将数据写入客户端

                                                 response.getBufferSize();              获得缓冲区的实际大小,没有缓冲区则返回为0

 

 

你可能感兴趣的:(java部分面试题目)