`
zcz123
  • 浏览: 151017 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
文章列表
一 介绍 本文并不想介绍Struts,Spring,Hibernate的原理系统架构等,本文地目的是通过一个较复杂地实例介绍如何整合Struts,Spring,Hibernate,网上现有的例子虽然也能达到目的,但功能都比较单一,复杂的例子时会有意想不到的麻烦。本文对读者假设已经具备了以上框架的基础知识。以及那些已经了解Struts,Spring,Hibernate的基本概念,但是还没有亲身在较复杂的项目中体验Struts+Spring+Hibernate的开发人员。 1 Struts    虽然不打算过多介绍Struts的原理,但是大概介绍一下还是有必要的。Struts本身就是 MVC 在 ...
参考(上、下): http://blog.csdn.net/DL88250/archive/2010/11/03/5985750.aspx http://blog.csdn.net/DL88250/archive/2010/11/03/5985757.aspx
hibernate.dialect 一个Hibernate Dialect类名允许Hibernate针对特定的关系数据库生成优化的SQL. 取值 full.classname.of.Dialect hibernate.show_sql 输出所有SQL语句到控制台. 有一个另外的选择是把org.hibernate.SQL这个log category设为debug。 eg. true | fals ...
  1.Spring 架构图   Spring 是一个开源 框架,是为了解决企业 应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE 应用程序开发提供集成的框架。Spring 框架的功能可以用在任何J2EE 服务器中,大多数功能也适用于不受管理 的环境。Spring 的核心要点是:支持不绑定到特定J2EE 服务的可重用业务和数据访问对象。这样的对象可以在不同J2EE 环境(Web 或EJB )、独立应用程序、测试 环境之间重用。
集合映射 public class CollectionMapping { private int id; private String name; private Set setValue; private List listValue; private String[] arrayValue; private Map mapValue; }   <class name="CollectionMapping" table="CollectionMapping"> <id name=&qu ...

多对多

多对多单向 User(多)对多(Role),一般都是通过中间表连接的,同样定义两个实体类User,Role,及两个映射文件 public class User { private int id; private String name; private Set role; }   public class Role { private int id; private String name; }   <class name="many2many1.User" table="t_user"& ...

多对一

多对一单向 User(多)对Group(一),在User实体类里配置id,name,group(Group)属性 <!-- 无连接表 --> <many-to-one name="group" column="groupid" not-null="true"/> <!-- 有连接表 <join table="User_Group" optional="true"> <key column="user ...

一对多

一对多单向 定义两个实体类,及两个映射文件 一对多一的一端Class类及Class映射文件 public Class{ private int id; private int name; private Set student; }   <!-- 无连接表 --> <set name="student"> <key column="classid" /> <one-to-many class="Student&quo ...

一对一

一对一单向 定义两个类,两个映射文件一个工具类生成表 public class Group { private int id; private String name; //这里省略setter,getter方法 }   public class User{ private int id; private String name; private Group group; //这里省略setter,getter方法 }   <class name="many2on ...
hibernate抓取策略(单端代理的批量抓取) 保持默认,同fetch="select",如:<many-to-one name="classes" column="classesid" fetch="select"/>fetch="select",另外发送一条select语句抓取当前对象关联实体或集合 //fetch1,fetch2 public void testFetch1() { Session session = null; try { ses ...
每棵继承树映射成一张表 1、理解如何映射  因为类继承树肯定是对应多个类,要把多个类的信息存放在一张表中,必须有某种机制来区分哪些记录是属于哪个类的。 这种机制就是,在表中添加一个字段,用这个字段的值来进行区分。用hibernate实现这种策略的时候,有如下步骤: 父类用普通的<class>标签定义 在父类中定义一个discriminator,即指定这个区分的字段的名称和类型 如:<discriminator column=”XXX” type=”string”/> 子类使用<subclass>标签定义,在定义subclass的时候,需要注意如下几点: Su ...
乐观锁 大多数基于数据版本记录机制(version)实现,一般是在数据库表中加入一个version字段读取数据时将版本号一同读出,之后更新数据时版本号加一,如果提交数据时版本号小于或等于数据表中的版本号,则认为数据是过期的,否则给予更新 悲观锁 悲观锁的实现,通常依赖于数据库机制,在整个过程中将数据锁定,其它任何用户都不能读取或修改 具体参考:http://www.51cto.com/specbook/229/36690.htm
hibernate lazy策略可以使用在: * <class>标签上,可以取值:true/false * <property>标签上,可以取值:true/false需要类增强工具 * <set><list>标签上,可以取值:true/false/extra * <one-to-one><many-to-one>单端关联上,可以取值:false/proxy/noproxy lazy概念:只有真正使用该对象时,才会创建,对于hibernate而言,正真使用的时候才会发出sql hibernate支持lazy策略只有在sess ...
hibernate一级缓存 一级缓存很短和session的生命周期一致,一级缓存也叫session级的缓存或事务级缓存 那些方法支持一级缓存: * get() * load() * iterate(查询实体对象) 如何管理一级缓存: * session.clear(),session.evict() 如何避免一次性大量的实体数据入库导致内存溢出 * 先flush,再clear 如果数据量特别大,考虑采用jdbc实现,如果jdbc也不能满足要求可以考虑采用数据本身的特定导入工具 //在同一个session中发出两次load查询 Student student = (Student)sessi ...
了解Hibernate中CRUD操作 了解get和load的区别? * get不支持lazy,load支持lazy * 采用get加载数据,如果没有匹配的数据,返回null,而load则抛出异常 transient状态的特征? * 在数据库中没有与之匹配的数据 * 没有纳入session的管理 persistent状态的特征? * persistent状态的对象在数据库中有与之匹配的数据 * 纳入了session的管理 * 在清理缓存(脏数据检查)的时候,会和数据库同步 detached状态的特征? * 在数据库中有与之匹配的数据 * 没有纳入session的管理    ----------- ...
Global site tag (gtag.js) - Google Analytics