热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SSHlinux秘籍口诀

hibernatesession接口hibernate的查询(比较的get和load方法的异同)hibernate的查询:Query,find,Criteria,get,lo
hibernate session接口
hibernate的查询 (比较的get和load方法的异同)
hibernate的查询:Query,find,Criteria,get,load  樊哙可歌喽。
query使用hsql语句,可以设置参数是常用的一种方式
criteria的方式,避免了hql语句,看起来更面向对象了。
find方式,这种方式已经被新的hibernate 3丢弃,get()方法取代find().
get和load方式是根据id取得一个记录,get和load的不同:
1>记录不存在时返回结果:
      load()方法首先在缓存中找对象,如果检索不到就会抛出ObjectNotException异常,可返回实体的代理类实例;
      get()方法直接返回实体类,检索不到时会返回空(null) .
2> load()方法可以充分利用内部缓存和二级缓存中的现有数据,
     get()方法则仅仅在内部缓存中进行数据查找,如没有发现对应数据,将越过二级缓存,直接调用SQL读取数据。
3>从检索执行机制上对比:
      get方法和find方法都是直接从数据库中检索,而load方法的执行则比较复杂
  <1>首先查找session的persistent Context中是否有缓存,如果有则直接返回
  <2>如果没有则判断是否是lazy,如果不是直接访问数据库检索,查到记录返回,查不到抛出异常
  <3>如果是lazy则需要建立代理对象,对象的initialized属性为false,target属性为null
  <4>在访问获得的代理对象的属性时,检索数据库,如果找到记录则把该记录的对象复制到代理对象的target上,
    并将initialized=true,如果找不到就抛出异常 。
  STRUTS
HttpServletRequest的getParameter()和getAttribute()方法区别?
总的来说:
getParameter()是获取POST/GET传递的参数值;    getAttribute()是获取对象容器中的数据值
request.getAttribute方法返回request范围内存在的对象,request.getParameter方法是获取http提交过来的数据。
下面是整理getParameter和getAttribute的区别和各自的使用范围:
1 HttpServletRequest类有setAttribute()方法,而没有setParameter()方法
2 当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数
  例如假定welcome.jsp和authenticate.jsp之间为链接关系,welcome.jsp中有以下代码:
      authenticate.jsp  
      或者:
     
          请输入用户姓名:
         
     
       在authenticate.jsp中通过request.getParameter("username")方法来获得请求参数username:
       <%  String  username=request.getParameter("username");  %>
3 当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。
    假定authenticate.jsp和hello.jsp之间为转发关系。authenticate.jsp希望向hello.jsp传递当前的用户名字,如何传递这一数据呢?
     先在authenticate.jsp中调用setAttribute()方法:
        <%
        String  username=request.getParameter("username");
        request.setAttribute("username",username);
        %>
       
        在hello.jsp中通过getAttribute()方法获得用户名字:
        <%  String  username=(String)request.getAttribute("username");  %>
        Hello:  <%=username  %>
     从更深的层次考虑,request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。          request.getParameter()方法返回String类型的数据。
     request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。
     这两个方法能够设置Object类型的共享数据。
        request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据。
        request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。
        getAttribute是返回对象,getParameter返回字符串


AOP是什么?
AOP是OOP的的补充和完善。是Aspect Oriented Programming的缩写,意思是面向方面编程。AOP实际是GoF设计模式的延续,AOP是调用者和被调用者之间的解耦的一种实现。使代码更具有可读性以及更容易设计和维护,改善了代码质量。
OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当需要为分散的对象引入公共行为的时候,OOP则显得无能为力。例如日志功能分布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。这种散布在各处的无关的代码被称为横切(cross-cutting)代码。
  所谓“方面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。


AOP应用范围
Authentication 权限
Caching 缓存
Context passing 内容传递
Error handling 错误处理
Lazy loading 懒加载
Debugging  调试
logging, tracing, profiling and monitoring 记录跟踪 优化 校准
Performance optimization 性能优化
Persistence  持久化
Resource pooling 资源池
Synchronization 同步
Transactions 事务
Spring的声明性事务
Spring是为了解决业务层的事务管理问题。原先用手写代码发起、结束/回滚事务的做法使开发者很容易导致连接池的资源耗尽。Spring的声明性事务管理功能配置灵活简洁清晰。Spring声明式事务时,一个非常重要的概念就是事务属性。事务属性通常由事务的传播行为,事务的隔离级别,事务的超时间隔和事务只读标志组成。目的是将方法包装在事务的上下文中。
 总结:
Spring声明性事务配置几种方式,BeanNameAutoProxyCreator, TransactionProxyFactoryBean。
定义了三个事务隔离级别: 


脏读(dirty reads) 
一个事务读取了被另一个事务改写但还未提交的数据。 
不可重复的读(non-repeatable reads) 
一个事务重新读取前面读取过的数据,发现该数据已经被另一个已提交的事务修改过。 
幻读(phantom read) 
一个事务(T1)重新执行一个查询,返回一套符合查询条件的行,发现这些行中插入了被其他已提交的事务(T2)提交的行。 


传播属性(或传播行为)


传播行为解决的问题:新的事务是否要被启动或者要被挂起或者方法是否要在事务环境中运行。【必支强新 否从温】
定义了关于客户端和被调用方法的事务边界。Spring的七种传播行为:【必须的】
PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。【支持】
PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。      【强制的,命令的,受委托的、受托者】
PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。【新】
PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。【非 否】
PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。【从不】
PROPAGATION_NESTED--如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。【筑巢 温床】
只读属性
 一个事务只对后台数据库执行数据读操作,通过声明只读事务给后台数据库实施一个合适的优化措施的机会。
只有将那些具有启动新的事务的传播行为的方法的事务标志为只读才有意义
事务超时
 避免了长时间的事务锁定,因为事务可能涉及到对后台数据库的锁定,长时间运行该事物而不回滚容易导致过多占用数据库的资源,这样就声明一个事务特定数秒后自动回滚。




linux有邪门      默认用炮弹痛击         shell   bash
普通用户交美元   超级用户挖口井     $   #
虚拟控制台6扇门,F1到F6             alt+F1---F6
关门shutdown;重开reboot              
礼似清单;不同目录的CD                      ls  cd
make 阿妹丢;                               mkdir  rmdir
随批阿妹                                    cp  rm
妹无猫                                      mv  cat
更多的秘密                                  more   pwd
用户组用户需要密码     useradd userdel  groupadd  groupdel  passwd
厮又改变模式;x执行          su      chmod  x可执行
启动的改变属主;          chown  
ps好看top排名               ps  top 查看进程  
大夫定时cron    df  显示目前磁盘剩余的磁盘空间。
上升下降mount umount
他阿PM               tar  rpm


推荐阅读
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
author-avatar
今日屎汰濃
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有