本帖最后由 小石姐姐 于 2018-5-28 15:19 编辑
事务的四大特性: 原子性:强调事务的不可分割. 一致性:强调事务执行前后,数据的完整性 隔离性:一个事务的执行,不应该受到其他事务的干扰. 持久性:事务一旦结束(提交/回滚)数据就持久保持到了数据库. 如果不考虑事务的隔离性,引发一些安全性问题: 一类是读问题: *脏读;一个事务读到了另一个还没有提交的数据. *不可重复读;一个事务读到了另一个事务已经提交的update的数据,导致在当前事务中多次查询结果不一致 *虚读/幻读:一个事务读到了另一个事务已经提交的insert的数据,导致了在当前的事务中多次查询结果不一致. 一类的写问题: *引发两个类丢失更新: 解决引发的读问题: 设置事务的隔离级别: *read uncommited:未提交读.脏读,不可重复读,虚读都可能发生; *read commited:已提交读,不可重复读和虚读都有可能发生. *repeatable read :可重复读,避免脏读,不可重复读,但是虚读有可能发生. *serializable:串行化,避免脏读,不可重读,虚读的发生. MYSQL默认隔离级别:repeatable read. JDBC事务管理setAutoCommit(false)开启事务 commit():提交事务; rollback():回滚
商品分页代码分析
分页功能的实现: * 物理分页:一次只查10条记录,点击下一页,再去查询后10条.使用SQL语句进行控制的分页. * 缺点:经常需要和数据库交互. * 优点:数据量特别大,不会导致内存的溢出. * 逻辑分页:一次性将所有数据全都查询出来,根据需要进行截取.List集合进行控制. subList(); * 缺点:数据量如果特别大,容易导致内存溢出. * 优点:与数据库交互次数少.
* 不同的数据库对分页的语句也是不一样的: * MYSQL进行分页: 使用limit关键字. * select * from xxx where .. Group by ... Having ... Order by ... limit a,b; -- a:从哪开始 b:查询的记录数. * 根据页数计算 limit后面的两个参数: * currPage begin pageSize 1 0 10 2 10 10 3 20 10 * begin = (currPage - 1) * pageSize; * 参数的传递: * 前台--->后台:currPage * 后台--->前台:currPage,totalPage(总页数),totalCount(总记录数),pageSize,List集合. * 使用JavaBean封装参数: * 后台--->前台:传递一个JavaBean就可以. * Oracle进行分页: 使用SQL语句嵌套. * SQL Server数据库进行分页: 使用 top 关键字.
异步和同步的区别: 异步校验用户名是否存在. 什么是AJAX:异步的JavaScript And XML. 使用的是老的技术,用的是新思想. 了解同步和异步的区别: *参考图1. AJAX的功能:完成页面的局部刷新.不中断用户的体验. EL表达式只能在JSP文件中用,不能再JS文件中用. JQuery中的AJAX:
load();
get();
post();
* ajax();
* $.ajax({
url:,
data:,
success:function(){
}
});
省市联动: 使用工具生成XML文件: 通常使用xStream工具,将集合 数组 对象转成xml. 步骤分析: 步骤一:使用注册页面中的省市的下拉列表. 步骤二:当省份发送变化,出发一个事件. 步骤三:将选择的省份的信息传入到Servlet中; 步骤四:根据省份信息查询市信息. 步骤五:将查询到的市的信息转成xml. 步骤六:获得xml的指定信息,显示到第二个列表中. JSON是一种轻量级的数据交换格式.JS可以直接识别. JSON 的数据格式对象表示为键值对 数据由逗号分隔 花括号保存对象 方括号保存数组
{"id":1,"name":aaa} [{"id":1,"name":aaa},{"id":3,"name":bbb}] JSON的生成工具: JSONLIB转换JSON数据:
*JSONArray:将转数组,list转换成JSON
*JSONObject:将对象和map集合转换成JSON
用json省市联动$.post(
"/Ajax/CityServlet",//跳转路径
{"pid":pid},//传递参数
function (data) {//回调函数,data为本次请求的响应.
var $city = $("#city"); //获得city下拉框的控制权
$city.html("<option value=''>-请选择-</option>");//每次选择前清空下
$(data).each(function(i,n){
$city.append("<option value='"+n.cid+"'>"+n.cname+"</option>")
})
},"json");监听器监听器;就是一个java类,监听其他java的状态的变化. 用途: 主要应用在图形化的界面中比较多. *GUI,Android. 事件源:值得是被监听的对象(汽车) 监听器:指的是监听的对象(报警器) 事件源与监听器的绑定:就是在汽车上安装报警器. 事件:事件源的改变(踹汽车一脚) web中的监听器事件源:Servlet中的三个域对象ServletContext,HttpSession,ServletRequest 事件源和监听器的绑定:配置 分类:三类八种. 【ServletContext对象的创建和销毁】: * 创建:服务器启动的时候,服务器为每个WEB应用创建一个属于该web项目的对象ServletContext. * 销毁:服务器关闭或者项目从服务器中移除的时候. 配置监听器: <!-- 配置监听器 -->
<listener>
<listener-class>com.itheima.weblistener.MyServletContextListener</listener-class>
</listener>
|