黑马程序员技术交流社区

标题: 【石家庄校区】就业班day_18---day_22学习笔记 [打印本页]

作者: 时光。    时间: 2018-5-27 16:31
标题: 【石家庄校区】就业班day_18---day_22学习笔记
本帖最后由 小石姐姐 于 2018-5-30 10:17 编辑

就业班day_18---day_22学习笔记

MVC:
M:Model:模型层
V:View:视图层
C:Controller:控制层
事务指的是逻辑上的一组操作,组成这组操作的各个逻辑单元要么一起成功,要么一起失败
MYSQL的事务管理有两种方式:(MYSQL数据库事务默认是自动提交的.Oracle数据库事务默认是不自动提交.)
手动开启事务
start transaction; -- 开启事务
多条sql;
commit/rollback;
设置一个自动提交参数
show variables like '%commit%'; -- 查看与commit相关参数.
set autocommit = 0; -- 将autocommit参数设置为OFF
事务特性:
原子性:强调事务的不可分割.
一致性:强调的是事务的执行的前后,数据的完整性要保持一致.
隔离性:一个事务的执行不应该受到其他事务的干扰.
持久性:事务一旦结束(提交/回滚)数据就持久保持到了数据库.
如果不考虑事务的隔离性,引发一些安全性问题:
一类读问题:
脏读                :一个事务读到另一个事务还没有提交的数据.
不可重复读        :一个事务读到了另一个事务已经提交的update的数据,导致在当前的事务中多次查询结果不一致.
虚读/幻读        :一个事务读到另一个事务已经提交的insert的数据,导致在当前的事务中多次的查询结果不一致.
一类写问题:
引发两类丢失更新:
解决引发的读问题:
设置事务的隔离级别:
read uncommitted                :未提交读.脏读,不可重复读,虚读都可能发生.
read committed                :已提交读.避免脏读.但是不可重复读和虚读有可能发生.
repeatable read                :可重复读.避免脏读,不可重复读.但是虚读有可能发生.
serializable                        :串行化的.避免脏读,不可重复读,虚读的发生.
MYSQL隔离级别:repeatable read  Oracle隔离级别:read committed
创建工程导入jar包.
msysql驱动
c3p0的包
dbutils的包
beanUtils的包:两个.
JSTL的包:两个
分页功能的实现:
物理分页:一次只查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 关键字.
JDBC的添加,修改,删除查询.
查询:
​     在首页点击查询:提交到Servlet--调用业务层--调用DAO
添加:
​     在首页点击添加:提交到添加的JSP.在JSP中输入一些信息.提交到Servlet.
​         在Servlet中接收参数,封装参数,调用业务层,调用DAO.
​         使用令牌机制完成重复提交的问题.
修改:
​    在列表页面中点击编辑:提交到Servlet.查询某个商品.显示到页面.
​         在页面中输入一些信息,点击确定.提交到修改的Servlet.
​         接收参数,封装,调用业务层,调用DAO.
删除:
​     在列表页面中点击删除:提交到Servlet.
​         在Servlet中接收id,调用业务层,调用DAO.
​         使用JS进行提示.
分页查询:
​     分页分类:
​         一次性查询几条记录.
​         一次性查询所有记录.对记录进行切分.
​     一次性查询几条:limit
​     封装一个分页的Bean:
​         提供参数:currPage,pageSize,totalCount,totalPage,List.
​     在业务层需要将PageBean进行封装.
使用AJAX:
XMLHttpRequest:
​     属性:
​      onreadystatechange        :当对象的状态改变的时候会触发.
​      readyState                        :记录的是对象的状态.
​      status                                :状态码.
​      responseText                :响应文本.
​      responseXML                :响应的XML.
​     方法:
​         open(“请求方式”,”请求路径”,”是否异步”);
​         send(“提交的参数”);
​         setRequestHeader(“头信息”,”头的值”);
JQuery的AJAX部分的API:
$(“”).load(url,data,function(){});
$.get(url,data,function(){},dataType);
$.post(url,data,function(){},dataType);
$.ajax();
Xstream是一种OXMapping 技术,是用来处理XML文件序列化的框架,在将javaBean序列化,或将XML文件反序列化的时候,不需要其它辅助类和映射文件,使得XML序列化不再繁琐
JQuery的AJAX
JQuery的AJAX部分方法:
Jq的对象.load(路径,参数,回调函数);
$.get(路径,参数,回调函数,数据类型);
$.post(路径,参数,回调函数,数据类型);
$.ajax();
serialize(); -- JQ的AJAX传递参数的时候需要使用的方法.
JSONLIB 转换JSON数据:
JSONArray                :将数组或List集合转成JSON.
JSONObject        :将对象或Map集合转成JSON.







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