hibernate3
chenmeng2192089
这个作者很懒,什么都没留下…
展开
-
hibernate的DAO层主要应用在跨数据库,跨平台上
客户端直接访问数据库是要建dao层,主要应用在跨数据库,跨平台上,把数据存储到不同平台和不同的数据库是经常用原创 2012-09-17 09:28:03 · 722 阅读 · 0 评论 -
hibernate配置文件的问题
因为数据库表名师不区分大小写的,所以在设置类的hibernate配置文件时,在类名后面时,如果表明和类名相同可以不用写。配置文件的固定写法是类名.hbm.xml,放在和model的类一样的路径下hibernate的配置文件固定的写法是hibernate.cfg.xml放在src路径下hibernate的操作要放到事物里session.begintransation();sess原创 2012-08-19 10:18:38 · 605 阅读 · 0 评论 -
getHibernateTemplate().find方法详解
Spring中常用的hql查询方法(getHibernateTemplate()) --------------------------------- 一、find(String queryString); 示例:this.getHibernateTemplate().find("from bean.User"); 返回所有User对象转载 2012-11-17 15:32:41 · 909 阅读 · 0 评论 -
使用正确的dtd声明和entityResolver避免saxReader联网验证
在使用许多使用xml配置文件的框架时,都会碰到以下的问题。有时候项目运行起来,需要花费许多的时间,有时候项目甚至还启动不起来。如使用hibernate时,经常报以下的错误:123org.dom4j.DocumentException: XXXXXXX at org.dom4j.io.SAXReader.read(SAXRea转载 2012-12-10 19:19:02 · 1687 阅读 · 0 评论 -
hibernate 注释
Hibernate注解1。@Entity(name="EntityName")必须,name为可选,对应数据库中一的个表2、@Table(name="",catalog="",schema="")可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息name:可选,表示表的名称.默认地,表名和实体名称一致,转载 2013-03-20 09:36:11 · 642 阅读 · 0 评论 -
hibernate update后不能和数据库同步
session.update(object); session.flush();1.事务没有提交,下面已经说了。。2.就是缓存问题建议在session.update后加一句session.flush(强制缓存中数据与数据库中同步)原创 2013-03-21 21:32:41 · 784 阅读 · 0 评论 -
hibernate 多表查询结果集处理
Hibernate 是JDBC的轻量级封装,一款杰出的ORM框架。通过它,可以建立数据表与表对象间的联系。 Hibernate的查询可通过HQL 和Criteira实现。本文仅展示用HQL实现多表查询,并针对返回的结果集进行对象封装。 如果我们在Hibernate中需要查询多个表的不同字段,那么如何来获取Hi转载 2013-03-22 14:42:34 · 1631 阅读 · 0 评论 -
org.hibernate.StaleStateException: Batch update returned unexpected row count
1、a different object with the same identifier value was already associated with the session。 错误原因:在hibernate中同一个session里面有了两个相同标识但是是不同实体。 解决方法一:session.clean() PS:如果在clean操作后面又进行了saveOrUpdate转载 2013-03-24 14:20:17 · 11315 阅读 · 0 评论 -
hibernate中的po类为什么要重写equals和hashcode方法的对话
ZJ 21:00:06 对了 老师,为什么在HIBERNA里要重写HASCODE 和EQUALS这两个方法?付老实 21:04:22 equals用来按照自己的规则判断两个对象是否相等,而重写了equals后,按照java的惯例,就需要重写hashCodeZJ 21:05:11 老师 只看懂的一点点呀,再稍微说多点啊! 付老实 21:08:04 这么说罢转载 2013-04-14 16:32:04 · 766 阅读 · 0 评论 -
什么是java序列化,如何实现java序列化?
Java 串行化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基础。用途:利用对象的串行化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。序列化就是一种用转载 2013-04-14 16:22:55 · 560 阅读 · 0 评论 -
Hibernte 事务管理
Hibernate 是JDBC 的轻量级封装,本身并不具备事务管理能力。在事务管理层, Hibernate将其委托给底层的JDBC或者JTA,以实现事务管理和调度功能。 Hibernate的默认事务处理机制基于JDBC Transaction。我们也可以通过配置文 件设定采用JTA作为事务管理实现: Java代码 …… "hibern转载 2013-06-24 21:23:09 · 528 阅读 · 0 评论 -
Hibernate缓存机制
缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为了减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能. Hibernate在查询数据时,首先到缓存中去查找,如果找到就直接使用,找不到的时候就会从物理数据源中检索,所以,把频繁使用的数据加载到缓存区后,就可以大大减少应用程序对物理数据源的访问,使得程序的运行性能明显的提升. Hibernat转载 2013-08-12 21:20:18 · 509 阅读 · 0 评论 -
Hibernate原理
1.Hibernate是如何连接数据库 主要是通过hibernate.cfg.xml配置文件中的配置 在这个文件中定义了数据库进行连接所需要的信息,包括JDBC驱动、用户名、密码、数据库方言等,configuration类借助dom4j的XML解析器解析设置环境,然后使用这些环境属性来生成 SessionFactory。这样这个ses转载 2013-08-15 10:23:10 · 654 阅读 · 0 评论 -
hibernate使用SessionFactory的时候用单例和JUnit里的创建方法
因为创建SessionFactory会很慢,建一次就行,用static 创建单例即可,以后用到了直接调用即可package util;import org.hibernate.*;import org.hibernate.cfg.*;public class HibernateUtil { private static final SessionFactory原创 2012-08-21 10:16:32 · 1632 阅读 · 0 评论 -
hibernate使用import javax.persistence.Entity是@符号不给提示
方法:Window-Preference搜索content assist在java-Editor-Content assist里面的javaactivation加上@即可原创 2012-08-19 10:24:30 · 2669 阅读 · 0 评论 -
hibernate映射枚举类型时用Annotation,不要用xml太麻烦
这需要在相应属性的get方法前加上@Enumerated(EnumType.XXX)XXX指的是枚举类型有String字符串和Ordinal数字原创 2012-08-21 11:15:58 · 2341 阅读 · 0 评论 -
hibernate的三种状态
transient:内存中的一个对象,没有ID,缓存里也没有(内存里有session对象,session里有个map,在map里既没有key也没有value)persistent:内存中有,缓存中也有(key是对象的id,value是对象的引用),数据库里也有(有id)detached:内存有,缓存没有,数据库有有id原创 2012-08-30 08:17:55 · 535 阅读 · 0 评论 -
hibernate ID联合生成主键
xml的方法:构造一个新的类存放主键,在类里面写主键,一定要重写equals和hashcode方法例如:public class StudentPK implements java.io.Serializable{//需要实现可序列化的接口,数据转移的时候需要序列化 private int id;//get,set方法 private String name;//get和set方法原创 2012-08-22 15:51:11 · 1619 阅读 · 0 评论 -
hibernate ID生成策略(sequence)
在类的前面写@Enterty@SequenceGenerator(name="", sequenceName="")//sequence生成器,第一个参数是生成器的名字,第二个参数是放到数据库里的名字。在主键的个头方法前写:@Id@GeneratedValue(strategy=GenerationType.Sequence , generator="上面定义的生成器的名字")原创 2012-08-22 09:00:00 · 641 阅读 · 0 评论 -
hibernate ID联合生成主键
xml的方法:构造一个新的类存放主键,在类里面写主键,一定要重写equals和hashcode方法例如:public class StudentPK implements java.io.Serializable{//需要实现可序列化的接口,数据转移的时候需要序列化 private int id;//get,set方法 private String name;//get和set方法原创 2012-09-19 08:41:37 · 357 阅读 · 0 评论 -
更新数据库内容,update方法
更新detached状态下的数据,更新完成后会回到persistent状态,不能更新Transient状态,除非手动设置id。若哪个字段不想参与更新,1:Annotation在该字段上面进行注解@Column(updatable = false):在xml文件在中写update=false(不常用,因为不灵活) 2:在xml文件里的class标签里写dynamic-update = "tru原创 2012-08-30 10:31:00 · 1683 阅读 · 0 评论 -
类名.hbm.xml标签注意的地方
因为数据库表名是不区分大小写的,所以在设置类的hibernate配置文件时,在类名后面时,如果表明和类名相同可以不用写。配置完后,要在hibernate.cfg.xml文件中指定路径,原创 2012-09-19 08:43:25 · 547 阅读 · 0 评论 -
hibernate 单向外键关联,一对一双向外间关联凡是双向关联必设mappedBy!!!
单项外键关联annotation里的方式:例如:husband和wife关联(husband参考wife)在husband类里的private Wife wife;在wife的get方法上面写@OneToOne连接字段@JoinColum(name=“wifeId”) 一对一双向外间关联两个类里都有对方的引用,在相应的get方法上写@OneToOne,在wife原创 2012-09-01 20:38:23 · 778 阅读 · 0 评论 -
hibernate读取数据库里内容,session的get方法和load方法的区别
get方法是直接向数据库里调用sql语句,直接执行。load方法只是返回一个代理对象,在真正从数据库中取值的时候才向数据库发送sql语句经常发生LazyInitializationException.初始化延迟异常 get(参数1,参数2)参数1是类型,是指把取出的记录当成该类型进行处理,参数二是数据库的字段名一般要转换类型,如果类的名字是Student,取数据的时候要写成,原创 2012-08-30 08:44:36 · 1218 阅读 · 1 评论 -
hibernate session.open()和session.getCurrentSession()区别很重要
Session session = sessionFactory.openSession();永远打开一个新的session 需要session.close();session = sessionFactory.getCurrentSession();如果上下文(在配置文件hibernate.cfg.xml里)有session就不用创建没有就新建一个session,不用session.clos原创 2012-08-26 08:17:45 · 3257 阅读 · 0 评论 -
hibernate flush和clear方法的区别
flush方法强制让内存的数据与数据库同步,默认是在事务提交commit的时候flush。clear是轻缓存。原创 2012-08-30 10:45:20 · 1034 阅读 · 0 评论 -
JUnit的一个bug
public static SessionFactory sf = null;@BeforeClasspublic static void beforeClass(){ sf = new AnnotationConfiguration().configue().buildSessionFactory();@Test....类的其他内容@AfterClasspublic static void af原创 2012-08-21 10:29:28 · 555 阅读 · 0 评论 -
hibernate事务处理
hibernate事务处理Hibernate是对JDBC的轻量级对象封装,Hibernate本身是不具备Transaction处理功能的,Hibernate的Transaction实际上是底层的JDBC Transaction的封装,或者是JTA Transaction的封装,下面我们详细的分析: Hibernate可以配置为JDBCTransaction或者是JTATransactio转载 2012-08-19 10:17:22 · 10823 阅读 · 0 评论 -
Hibernate get和load的区别
get和load方式是根据id取得一个记录下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。 1.从返回结果上对比:load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常get方法检索不到的话会返回null 2.从检索执行机制上对比: get方法和find方法都是直接从数转载 2013-08-15 10:30:46 · 504 阅读 · 0 评论