A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

就业班_JavaEE_day19_20_事务_分页
一 事务
    1 connection必须关闭。
    2 多个逻辑操作使用同一个connection
    3 dbutils处理事务有另外一套API。 update(conn,sql,params), 带conn的方法dbutils不会去关闭connection。
    4 事务在service层进行处理。模板代码如下:
        try{
           beginTransaction();
           dao.xxx();
           dao.yyy();
           commitAndCloseConn();
       }catch(Exception e){
           rollbackAndCloseConn();
       }
    5 通过ThreadLocal来实现每个线程中共享同一个connnection。因为servlet是以多线程的方式对外提供服务。即每次访问都是一个新线程。
       通过ThreadLocal将Connection与当前线程进行绑定。 在其它地方需要用时,通过 get() 方式获取即可。
       ThreadLocal 是一个key-value结构,key是当前线程对象。set(x) set方法默认以当前线程对象为key取出value。
       Hibernate即通过这种方式来实现事务的操作。
      
二 商品的crud和分页
    1 分页: currentPage  totalPage   totalCount  pageSize  
    2 条件查询 : pname
    可以将分页和组合条件查询整体进行封装。
    3 重复提交产生的原因
        1:添加或者修改后 转发回查询页面,刷新会重复提交
        2:在网速慢的情况下,用户多次点击提交按钮。
      重复提交的解决方式:
        1 一次性令牌机制 (token)在生成添加页面是生成UUID 并将UUID保存在session中,当添加后,将session中的remove。
        2 添加或者修改后,不做转发而是做重定向。
    4 一个表单通过多个按钮或者超链接,提交到不同的地址 。
        通过js修改form的action属性和method的隐藏属性。
        表单提交的方法 submit()
        按钮上添加js 通常采用 <input type="button" value="">
        超链接上添加js 通常采用 <a href="javascript:change()"  >xxxxxx</a>





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马