`
文章列表
1.悲观锁 它指的是对数据被外界修改持保守态度。假定任何时刻存取数据时,都可能有另一个客户也正在存取同一笔数据,为了保持数据被操作的一致性,于是对数据采取了数据库层次的锁定状态,依靠数据库提供的锁机制来实现。 基于jdbc实现的数据库加锁如下: select * from account where name="Erica" for update 在更新的过程中,数据库处于加锁状态,任何其他的针对本条数据的操作都将被延迟。本次事务提交后解锁。 而hibernate悲观锁的具体实现如下: String sql="查询语句"; Query query ...
Hibernate支持两种锁机制: 即通常所说的“悲观锁(Pessimistic Locking)”和 “乐观锁(OptimisticLocking)”。 悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。 Hibernate的加锁模式有: Ø LockMode.NONE : 无锁机制。 Ø LockMode.WRITE :Hibernate在Insert和Update记录的时候会自动 获取。 Ø LockMode.READ : Hibernate在读取记录的时候会自动获取。 以 ...
1、Action是不是线程安全的?如果不是 有什么方式可以保证Action的线程安全?如果是,说明原因。 不是 声明局部变量,或者扩展RequestProcessor,让每次都创建一个Action,或者在spring中用scope="prototype"来管理 2、MVC,分析一 ...
首选创建web.xml 主要是配置Struts的ActionServlet和Spring的字符过滤器 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http:// ...
    缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为了减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能.     Hibernate在查询数据时,首先到缓存中去查找,如果找到就直接使用,找不到的时候就会从物理数据源中检索,所以,把频繁使用的数据加载到缓存区后,就可以大大减少应用程序对物理数据源的访问,使得程序的运行性能明显的提升. Hibernate缓存分类: Session缓存,一级缓存. SessionFactory的缓存分为内置缓存和外置缓存.内置缓存中存放的是SessionFactory对象的一些集合属性包含的数据(映射元素据及预定义S ...
hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了。 二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache ...
   HQL: Hibernate查询语言 Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。 大小写敏感性问题     除了Java类与属性的名称外,查询语句对大小写并不敏感。 所以 SeLeCT 与 sELEct 以及 SELECT 是相同的,但是 org.hibernate.eg.FOO 并不等价于 org.hibernate.eg.Foo 并且 foo.barSet 也不等价于 foo.BARSET。  本手册中的HQL关键字将使用 ...
    Eclipse作为开发Java的IDE,从出现到现在已经有几年的时间了,其丰富的特性,操作容易和在提高生产力方面收到了广大开发者的青睐。对Swing开发者来说,使用NetBeans可以充分的利用NetBeans的强有力的RCP。     Eclipse作为开发J ...
  随着NetBean6.0发布脚步的逼迫,Java IDE领域又是风起云涌,刀光剑影。随着老牌的JBuilder已成昔日黄花,最近几年火的不得了的Eclipse还没来得及体验“高处不胜寒”的成就感,即被Sun公司如法泡制的NetBeans给抢了镜头。如今的 Sun,对IBM来了个以其人之道还及其人之身,对Eclipse来了个“全体复制”,将Eclipse的几乎所有的特点都搬到了NetBeans中,如插件、开源、免费、Web开发等等,同时又在NetBeans6.0中大秀自己的技术老底。那么面对NetBeans如此来势汹汹的进攻或是搅局,Eclipse还能“一揽众山小”吗?还会是开源IDE的领头羊 ...
hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别:   一、预备知识:   在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient、persistent、detached   下边是常见的 ...
applicationContext.xml 文件:   <?xml version="1.0" encoding="UTF-8"?>   <beans xmlns="http://www.springframework.org/schema/beans"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xmlns:jee="http://www.spri ...
大家知道,在Hibernate Framework中,提供了三种查询数据的方式:     1.Hibernate Query Language (HQL):     它是ANSI SQL的最小OO Dialect,例: session.createQuery("from Category c where c.name like 'Laptop%'");                      entityManager.createQuery("select c from Category c where c.name like 'Laptop%'" ...
    Hibernate自带的连接池算法相当不成熟。 它只是为了让你快些上手,并不适合用于产品系统或性能测试中。出于最佳性能和稳定性考虑你应该使用第三方的连接池。只需要用特定连接池的设置替换 hibernate.connection.pool_size即可。这将关闭Hibernate自带的连接池。 例如, 你可能会想用C3P0.     C3P0是一个随Hibernate一同分发的开源的JDBC连接池,它位于lib目录下。 如果你设置了hibernate.c3p0.*相关的属性, Hibernate将使用 C3P0ConnectionProvider来缓存JDBC连接。 如果你更原意使用Pr ...
     Hibernate的持久化类使用的是JavaBean的风格,为要被访问的属性提供了一套get和set方法,这两个方法也叫做持久化类的访问方法.记得曾经在接触JavaBean的时候我很迷糊,总觉得提供这两个方法,倒不如把Bean的属性设置public,然后直接调用对象.属性,这样来的方便. 但是后来,有一个这样的需求,就是一个人名字可以被查看,但是不可以修改.这个时候如果用set方法的话,只需要把set方法的修饰符换为private 就OK了.如果是用对象.属性的形式调用就麻烦了.而且最重要的一个有点是JavaBean的风格可以简化Hibernate通过JAVA反射机制来获得持久化类的访 ...
   在过去几年里,Hibernate不断发展,几乎成为Java数据库持久性的事实标准。它非常强大、灵活,而且具备了优异的性能。在本文中,我们将了解如何使用Java 5 注释来简化Hibernate代码,并使持久层的编码过程变得更为轻松。   传统上,Hibernate的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行加载。创建这些映射有很多方法,可以从已有数据库模式或Java类模型中自动创建,也可以手工创建。无论如何,您最终将获得大量的 Hibernate 映射文件。此外,还可以使用工具,通过javadoc样式的注释生成映射文件,尽管这样会给您的构建过程 ...
Global site tag (gtag.js) - Google Analytics