随笔分类 -  hibernate

摘要:Create DataBase SHOPPING;gouse SHOPPING;go/*==============================================================*//* Table: CATEGORIES *//*==============================================================*/create table CATEGORIES ( CATEGORY_ID bigint ... 阅读全文
posted @ 2008-06-15 12:39 shine_panda
摘要:实现功能是 用户本地浏览一个图片后(本来要用上传 为简单起见就制作本地测试) 功过Hibernate中向数据库插入图片 并在另一个页面把这个图片显示出来index.jsp<body> <form name="frm" action="imgServlet" method="post"> <input type="file" name="path"/> <input type="submit" value="提交"& 阅读全文
posted @ 2008-06-06 14:52 shine_panda
摘要:Hibernate映射类型对照表java类型Hibernate映射类型SQL类型java.math.BigDecimalbig_decimalnumericbyte[]binaryvarbinary(blob)boolean(java.lang.Boolean)booleanbitbyte(java.lang.Byte)bytetinyintjava.util.Calendarcalendartimestampjava.sql.Clobclobclobjava.util.Date 或java.sql.Datedatedatedouble(java.lang.Double)doubledoubl 阅读全文
posted @ 2008-06-04 20:56 shine_panda
摘要:使用Eclipse生成Hibernate 代码时候工具为我们生成了一个 HibernateSessionFactory 这样的类 来为我们提供获得Session的方法. 但是用这个类的时候我们发现一个问题. 看下面代码Sessionsession1=HibernateSessionFactory.getSession();Sessionsession2=HibernateSessionFactory.getSession();System.out.println(session1+"__"+session2);System.out.print(session1==sessi 阅读全文
posted @ 2008-05-24 06:00 shine_panda
摘要:缓存的概念:java对象的属性(通常是一些集合类型的属性)占用的内存空间。如果对象的占用的内存很大就称为重量级的对象。如果对象的内存小就称为轻量级的对象。Session 的缓存被称为hibernate的第一级缓存。SessionFactory的外置缓存称为hibernate 的二级缓存。这两个缓存都位于持久层,它们存放的都是数据库数据的拷贝。SessionFactory的内置缓存存放元数据和预定义SQL, SessionFactory的内置缓存是只读缓存。Session 缓存的三大作用:1,减少数据库的访问频率,提高访问性能。2,保证缓存中的对象与数据库同步,位于缓存中的对象称为持久化对象。3 阅读全文
posted @ 2008-04-20 13:52 shine_panda
摘要:Hibernate延迟加载的原理:当hibernate设置为 延迟加载策略时 .查询后返回的是代理类的实例:代理类的特征:1. 有hibernate 在运行时动态生成.它扩展了持久化类.因此实现了持久化类的所有属性和方法.它的实现对应用程序是透明的(也就是应用程序看不到这个代理类2,hibernate创建代理类的实例.仅仅初始化它的 OID 属性3,当应用程序第一次访问代理类的属性时就会初始话代理类的其他属性.(除了访问OID 属性,因为OID已经初始话没有必要再到数据库里去查.) get() 方法 总是立即加载. 这也是 get() 同 load()的一个区别. 还一个区别是 如果数据库中. 阅读全文
posted @ 2008-04-19 20:31 shine_panda
摘要:假设Customer和Orders 建立一对多的双向关联.inverse 属性://加载持久化对象Customer customer = (Customer) session.load(Customer.class, new Integer(2));Orders order = (Orders) session.load(Orders.class,new Integer(2));//建立关联order.setCustomer(customer);customer.getOrders().add(order);因为Hiberante 自动清理缓存中的持久化对象,按持久化状态的改变来同步更新数据. 阅读全文
posted @ 2008-04-14 16:17 shine_panda
摘要:初学 hibernate 时是被 hibernate 中的复杂的关系搞得晕头转向。一对多 ,多对一,多对多。单向,双向等等问题就出在,找不到参照方物,其实只要找准参照物,各种关系自然迎刃而解。在关系型数据库中 实际上通过主外键只支持多对一,或是一对一单向关联。1,多对一单向关联 : 以客户表 (customer) 和定单表(orders )为例。一个客户可以发出多个定单,而一个定单只可以属于一个客户。从 orders 到customer 就是 多对一的关系。这就意味着, orders 中应该有一个 Customer类型的属性。因为在关系型数据库中只有主外键参照关系,而且总是有 many 方参. 阅读全文
posted @ 2008-04-13 21:25 shine_panda