`
文章列表
缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为了减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能.   Hibernate在查询数据时,首先到缓存中去查找,如果找到就直接使用,找不到的时候就会从物理数据源中检索,所以,把频繁使用的数据加载到缓存区后,就可以大大减少应用程序对物理数据源的访问,使得程序的运行性能明显的提升.   Hibernate缓存分类: Session缓存,一级缓存. SessionFactory的缓存分为内置缓存和外置缓存.内置缓存中存放的是SessionFactory对象的一些集合属性包含的数据(映射元素据及预定义SQL语句等), ...
数据库ACID特征: A. Atomic(原子性):指整个数据库事务是不可分割的工作单元。 B. Consistency(一致性):指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。 C. Isolation(隔离性):指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。 D. Durability(持久性):指的是只要事务成功结束,它对数据库所作的更新就必须永久保存下来。   并发引起的问题: A. 第一类丢失更新:撤销一个事务时,把其他事务已提交的更新数据覆盖。 B. 脏读:一个事务读到另一个事务未提交的更新数据。 (更新数据时发生)C. 幻像读: ...
Hibernate要求持久化集合值字段必须声明为接口。 List:用于映射List集合属性 Set:用于映射Set集合属性 Map:用于映射Map集合性 Array:用于映射数组集合属性 Bag:用于映射无序集合 idbag:用于映射无序集合,但为集合增加逻辑次序   映射如下:     <set name="setValue" table="t_setvalue">   <!-- 添加一字段指向id -->    <key column="setid"/>    <elem ...
配置使用Spring的OpenSessionInView Filter,发现不生效,lazy的集合属性在页面访问的时候仍然报session已经关闭的错误。经过调试发现,应用程序使用的Session和OpenSessionInView Filter打开的Session不是同一个,所以OpenSessionInView模式没有生效,但是为什么他们不使用同一个Session呢? 检查了一遍Spring的相关源代码,发现了问题的根源: 通常在Web应用中初始化Spring的配置,我们会在web.xml里面配置一个Listener,即: listener-class>org.spring ...
在随着项目经验的积累可以体会到很多在书本上难以理解的知识,认识其中的重要性。   1、在项目编码之前,一定要对功能有足够的认识,比如所涉及的界面,表,类,输入输出等。 2、编码的规范。类,类方法(特别是接口方法),数据库表名等要在编码之前有统一的规范。可以方便阅读,还有spring      中对事务管理。 3、就是常在书上看到的,“低耦合,高内聚”,在项目重构和阅读中将会体会到好处。当然在适当的时候也要牺牲耦合度      作为代价,可以使得代码量的减少。 4、对于数据的验证(合法性、非空验证、初始化等)应放在上层处理,这样在下层才不会造成一些数据的异常。 5、在异常处理方面, ...
先看下过程 sort.java public class Sort implements Serializable { private int id; private String name; private int grade;//类别等级 private String descr; private Sort sort;//父类 private List sorts=new ArrayList();//子类 public int getId() { ...... } }   sort.hbm.xml   <?xml ...
     在没有使用Spring提供的Open Session In View情况下,因需要在service(or Dao)层里把session关闭,所以lazy loading 为true的话,要在应用层内把关系集合都初始化,如 company.getEmployees(),否则Hibernate抛session already closed Exception;    Open Session In View提供了一种简便的方法,较好地解决了lazy loading问题.         它有两种配置方式OpenSessionInViewInterceptor OpenSessionIn ...
说明:一个部门有若干个子部门,子部门还可以有子部门,本文通过这个演示myeclipse如何实现这种树形关系的持久化。   开发工具:myeclipse 5.5.1 GA   数 据 库:mysql-5.0.37   操作系统:windows xp professional 中文版   步骤:   1、建立mysql5数据库testdb,脚本下面已经给出。   2、配置myeclipse的数据库服务器,并建立名称为mysql5的数据库链接。   3、建议myeclipse的web工程,名称为dx_d2yzs,并加入hibernate支持,选择hibernate3.1,最高就支持到3.1。   4、 ...
这个是我的毕业设计,也是我第一个真正写的ssh项目,大概2008年11月27号开始做,到现在已经开始做了一个星期左右了,没正在的项目还真不知道有这么多问题的存在。今天想了想,以免以后忘了。。现在开始做下日记,把问题 ...
一.用spring的DelegatingRequestProcessor替换struts的RequestProcessor. 1)不要在web.xml中设置ApplicationContext的自动加载,在struts-config.xml中通plug-in设置. <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">   <set-property value="/WEB-INF/applicationContext.xml,/WEB-INF/appCont ...
  刚遇到的问题,在网上找了些资料,然后自己试验了后,总结有三个方法: 1、actionform里加入 public ActionErrors validate(ActionMapping mapping,   HttpServletRequest request) {  String method=request.getParameter("method");    if(method.equals("addUser"))           return super.validate(mapping, request);  else      retu ...
<?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://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/n ...
1.需要Tomcat6.0,Oracle的JDBC驱动程序包(放在Tomcat/lib下)   2.配置tomcat下的conf下的context.xml文件,在之间添加连接池如下:   <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@sea:1521:seadb ...
在利用Hibernate开发DAO模块时,我们和Session打的交道最多,所以如何合理的管理Session,避免Session的频繁创建和销毁,对于提高系统的性能来说是非常重要的,以往是通过eclipse的插件来自动完成这些代码的,当然效果是不错的,但是总是觉得不爽(没有读懂那些冗长的代码),所以现在打算自己实现Session管理的代码。 我们知道Session是由SessionFactory负责创建的,而SessionFactory的实现是线程安全的,多个并发的线程可以同时访问一个SessionFactory并从中获取Session实例,那么Session是否是线程安全的呢?很遗憾,答案是 ...
⑦ 用户插件的初始化 initModulePlugIns(moduleConfig); 在上面第⑤步的Ⅱ中我们已经创建了ModuleConfig对象并在Ⅲ和Ⅵ中从struts-config.xml等配置文件中得到得到一些配置且封装到ModuleConfig对象中,所以在下面可以直接使用initModulePlugIns(ModuleConfig config);   initModulePlugIns(moduleConfig); 所做的工作: ⑴ // 从moduleConfig中读取所有的插件文件 PlugInConfig[] plugInConfigs = config.fin ...
Global site tag (gtag.js) - Google Analytics