热门标签 | 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


推荐阅读
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • 我有一个SpringRestController,它处理API调用的版本1。继承在SpringRestControllerpackagerest.v1;RestCon ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 本文介绍如何使用 Angular 6 的 HttpClient 模块来获取 HTTP 响应头,包括代码示例和常见问题的解决方案。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ... [详细]
  • Java项目分层架构设计与实践
    本文探讨了Java项目中应用分层的最佳实践,不仅介绍了常见的三层架构(Controller、Service、DAO),还深入分析了各层的职责划分及优化建议。通过合理的分层设计,可以提高代码的可维护性、扩展性和团队协作效率。 ... [详细]
  • 本文详细介绍了在使用 SmartUpload 组件进行文件上传时,如何正确配置和查找文件保存路径。通过具体的代码示例和步骤说明,帮助开发者快速解决上传路径配置的问题。 ... [详细]
  • 本文总结了优化代码可读性的核心原则与技巧,通过合理的变量命名、函数和对象的结构化组织,以及遵循一致性等方法,帮助开发者编写更易读、维护性更高的代码。 ... [详细]
  • 本文详细介绍如何使用 HTML5 和 JavaScript 实现一个交互式的画板功能。通过具体代码示例,帮助读者理解 Canvas API 的基本用法及其在绘图应用中的实际应用。 ... [详细]
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社区 版权所有