黑马程序员技术交流社区

标题: 【石家庄校区】MVC/事务-JDBC-AJAX [打印本页]

作者: zhouxiaomeng    时间: 2018-5-27 16:31
标题: 【石家庄校区】MVC/事务-JDBC-AJAX
本帖最后由 小石姐姐 于 2018-5-28 15:19 编辑

    【石家庄校区】MVC/事务-JDBC-AJAX
事务的四大特性:
原子性:强调事务的不可分割.
一致性:强调事务执行前后,数据的完整性
隔离性:一个事务的执行,不应该受到其他事务的干扰.
持久性:事务一旦结束(提交/回滚)数据就持久保持到了数据库.
如果不考虑事务的隔离性,引发一些安全性问题:
一类是读问题:
​        *脏读;一个事务读到了另一个还没有提交的数据.
​        *不可重复读;一个事务读到了另一个事务已经提交的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>












欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2