45_hibernate
自找苦吃,自得其乐
有时候,我们缺乏的不是道理,而是吃苦的勇气
展开
-
hibernate inverse="true"
Customer类:转载 2014-05-29 17:38:12 · 726 阅读 · 0 评论 -
hibernate集合操作选择标准
通常情况下使用的是set如果需要的是排序的情况下使用的是list因为它可以根据主键进行排序如果是需要根据键值而得到对象的话使用的是map这个时候使用的是@Order by "name desc"所以具体使用哪个来操作集合,就要看自己操作的需求了.原创 2012-10-04 22:07:35 · 449 阅读 · 0 评论 -
Hql的特点
Hql语句不区分大小写hql的持久化类自动的引入hql同时查询多个持久化类hql中的持久化类的继承查询原创 2012-10-04 22:04:39 · 1162 阅读 · 0 评论 -
query的list和iterator区别
iterator利用的是二级缓存,所以这种方式如果在缓存中找不到的话它会先到缓存中去找,找的时候如果发现不了就去数据库中去找,在数据库中是这样找的1.先查询出来所有的id2.根据id再去一条一条的去查询记录.因此它查询的语句是n+1条.原创 2012-10-04 22:03:37 · 453 阅读 · 0 评论 -
hibernate常见错误
在一对多的时候,如果配置文件,hbm.xml的配置是这样的那么就会发生下面的问题 Association references unmapped class: com.dada.hibernate.Email 就是说这配置文件引用/参考了一个没有被映射的class,为什么呢?因为这个class里面的 一些属性没有被配置进来,如果想要使用它们的话就必须要把它里面的属性全部的原创 2012-10-04 21:58:28 · 448 阅读 · 0 评论 -
hibernate Criteria QBC,QBE查询
package com.bjsxt.hibernate;import java.util.Date;import org.hibernate.Criteria;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.annotations.FetchMod转载 2012-10-06 14:30:39 · 746 阅读 · 0 评论 -
hibernate query用法
package com.bjsxt.hibernate;import java.util.Date;import java.util.List;import org.hibernate.Query; import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibern转载 2012-10-06 14:28:09 · 8426 阅读 · 0 评论 -
hibernate student-course-score
1.Student类:package com.bjsxt.hibernate;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id转载 2012-10-06 13:51:24 · 661 阅读 · 0 评论 -
hibernate树结构表的处理
1.建立类Orgpackage com.dada.hibernate;import java.util.HashSet;import java.util.Set;import javax.persistence.CascadeType;import javax.persistence.Entity;import javax.persistence.Generated原创 2012-10-06 13:44:15 · 699 阅读 · 0 评论 -
hibernate对象的3种状态
状态/存在位置内存缓存数据库瞬态有无无持久态有有有游离态有无有 (1)瞬态:表示该实体对象在内存中是自由存在的,也就是说与数据库中的数据没有任何的关联即,该实体从未与任何持久化上下文联系过,没有持久化标识(相当与主键)。瞬态实体的特征有: 与数转载 2012-10-05 10:41:02 · 1228 阅读 · 0 评论 -
hibernate的工具类
获取Session类:package com.dada.pager;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.hibernate.HibernateException;import org.hibernate.Session;import转载 2012-12-05 00:00:35 · 745 阅读 · 0 评论 -
乐观锁 悲观锁
锁(locking)业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个cut-off时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓的“锁”,即给我们选定的目标数据上锁,使其无法转载 2014-05-16 16:02:27 · 666 阅读 · 0 评论 -
hibernate 联合主键设置
1.使用 xml 配置的方式原创 2014-05-16 14:05:25 · 800 阅读 · 0 评论 -
EHcache 介绍
1.EhCache是什么 EhCache是Hibernate的二级缓存技术之一,可以把查询出来的数据存储在内存或者磁盘,节省下次同样查询语句再次查询数据库,大幅减轻数据库压力;2.EhCache的使用注意点 当用Hibernate的方式修改表数据(save,update,delete等等),这时EhCache会自动把缓存中关于此表的所有缓存全部删除掉(这样能达到同步)。转载 2014-04-16 10:03:34 · 1043 阅读 · 0 评论 -
设定hibernate里面的时间字段为自动生成
1.设置字段:birthday timestamp CURRENT_TIMESTAMP2.设置动态插入不需要手动输入 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.原创 2013-11-28 16:52:09 · 4614 阅读 · 0 评论 -
在 hibernate 下执行存储过程
1.这里只给出一个方法public String processData(final String period) throws Exception { return (String)this.getHibernateTemplate().execute(new HibernateCallback() { @Override public Object doIn原创 2013-11-05 10:25:16 · 973 阅读 · 0 评论 -
从hibernate中获取jdbc连接
使用Hibernate的过程中,有时候需要直接使用SQL语句来操作数据库(虽然Hibernate不推荐使用,但是有时候还是会使用到的,比如说批处理),这个时候就要求我们首先获得JDBC的连接。获得JDBC连接的方式有:1、先获得Session,然后从Session中获得连接 session.connection(); 但是这个方法Hibernate不推荐使用,The metho...转载 2013-09-21 13:50:03 · 1097 阅读 · 0 评论 -
org.hibernate.hql.ast.QuerySyntaxException:XX is not mapped
1.配置的实体类名称被修改过,所以hibernate不认识(主要是这个错误)。2.实体类没有配置,没有配置当然不能私用。原创 2013-09-30 23:33:57 · 646 阅读 · 0 评论 -
hibernate实现原理
1.什么是ORMORM的全称是Object Relational Mapping,即对象关系映射。它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。2.什么是Hibernate对于Hibernate的称呼有很多,比如工具、技术、框架以及解转载 2013-08-07 09:12:58 · 841 阅读 · 0 评论 -
hibernate表之间继承之 一张表
1.建立基类 Personpackage com.dada.hibernate;import javax.persistence.DiscriminatorColumn;import javax.persistence.DiscriminatorType;import javax.persistence.DiscriminatorValue;import javax.per原创 2012-10-06 12:05:57 · 581 阅读 · 0 评论 -
hibernate casecade 参数含义
hibernate在默认情况下不会帮助我们自动的保存关联的对象.casecade:all,merge,persist,refresh,remove;这几个选项指定的是,在有关联的两个对象之间的某个对象在发生变化的时候,另外的那个对象会随之发生的变化.all:指的是,其中的一个对象发生任何的变化都将会引起另外的那个对象发生变化merge:合并覆盖persist:保存r原创 2012-10-04 21:55:07 · 1795 阅读 · 0 评论 -
hibernate以Annotation方式oracle以及mysql数据库相结合的实体配置
oracle配置:package com.test.hibernate;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.per原创 2012-10-03 19:04:31 · 776 阅读 · 0 评论 -
equals和hashCode方法重写 以及hibernate的联合主键生成策略的生成类的生成
package com.dada.hibernate;/** * TeacherId entity. @author MyEclipse Persistence Tools */public class TeacherId implements java.io.Serializable {// Fieldsprivate Integer id;priva原创 2011-12-26 16:16:19 · 736 阅读 · 0 评论 -
hibernate中Annotation中manyToOne使用:
在使用hibernate的Annotation配置方式进行配置的时候,如果使用了manyToOne的话一定要在数据库中把它们的主外键关系给设置好,否则在你向程序添加数据的时候就会出错,因为在hibernate看来,具有manyToOne的两个实体之间必然是具有外间关系的两个实体.如果你不去设置的话,那么不好意思hibernate会自动的帮助你添加的,但即便如此也还是会出错的,因为他帮你原创 2011-12-27 20:24:34 · 818 阅读 · 0 评论 -
hibernate.cfg.xml文件的配置
hibernate配置文件1.hibernate.cfg.xml文件的配置 "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">原创 2011-12-27 17:15:56 · 863 阅读 · 0 评论 -
Hibernate 中annotation用法
hibernate中Annotation的用法:如果在一个类里面没有写关于它的annotation的话那么就相当于是写了@Basic这个注解它的意思是最基本的注解如果想在一个实体中有一个属性,但是这个属性不想被存人数据库,这个时候应该怎么做呢?使用注解的时候这样:@Transient使用xml的时候直接在配置的时候不对它进行配置就行了.在注解中如原创 2011-12-26 21:11:51 · 664 阅读 · 0 评论 -
hql链式编程
destinct在sql语句中是不会重复的意思,就是在数据库中查询出来不会重复的记录在hql中它的意思就是对象不会重复,对象不会重复在hql中反映到数据库中就是它的id不会重复.又因为在hibernate中id肯定是不一样的,所以写不写这个distinct都一样的.hql中还可以使用链式编程,就是返回的都是同一个结果Query q = session.createQuery原创 2011-12-26 21:23:51 · 554 阅读 · 0 评论 -
hibernate自动生成表的功能
@Test public void createTable() { new SchemaExport(new AnnotationConfiguration().configure()).create(true, true); }这是利用了Hibernate的脚本自动生成功能,就是根据Hibernate注解映射生成脚本创建SchemaExport 对象,其中的参数,第一个就是你要原创 2012-09-26 22:03:54 · 826 阅读 · 0 评论 -
openSession和getCurrentSession区别
sessionFacytory.opensession()与sessionFactory.getcurrentSession()的区别第一种永远是创建一个新的session而第二种这是拿现在内存中所存在的那个session来用.因为这种open的方法很耗内存,所以建议不要使用它.使用openSession的时候会在结尾的时候把session给close()掉,但是使用getCu原创 2011-12-26 22:04:13 · 633 阅读 · 0 评论 -
hibernate 基本查询
表的建立: create table Teacher ( id integer not null auto_increment, birthday datetime, gender varchar(255), good bit not null, name varchar(255),原创 2011-12-28 14:04:58 · 442 阅读 · 0 评论 -
hibernate常见错误
在一对多的时候,如果配置文件,hbm.xml的配置是这样的那么就会发生下面的问题 Association references unmapped class: com.dada.hibernate.Email 就是说这配置文件引用/参考了一个没有被映射的class,为什么呢?因为这个class里面的 一些属性没有被配置进来,如果想要使用它们的话就必须要把它里面的属性全部的原创 2011-12-09 23:28:41 · 520 阅读 · 0 评论 -
hibernate使用table生成主键
实体配置:@Entity@Table(name = "EMPLOYEE")public class Employee implements java.io.Serializable{ private Integer employee_id; //人员ID(主键) private String employee_name; //人员姓名 priv转载 2012-10-04 20:18:11 · 2188 阅读 · 0 评论 -
hibernate @Transient
在进行实体映射时,有关时间日期类型的类型可以是java.sql包下的java.sql.Date、java.sql.Time 和java.sql.Timestamp,还有java.util包下的java.util.Date 和 java.util.Calendar类型。默认情况下,实体中使用的数据类型是java.sql包下的类,但此时如果要使用java.util包中的时间日期类型,则需要而外标注@T转载 2012-10-04 20:39:48 · 2754 阅读 · 0 评论 -
hibernate Annotation用法
hibernate中Annotation的用法:如果在一个类里面没有写关于它的annotation的话那么就相当于是写了@Basic这个注解它的意思是最基本的注解如果想在一个实体中有一个属性,但是这个属性不想被村人数据库,这个时候应该怎么做呢?使用注解的时候这样:@Transient使用xml的时候直接在配置的时候不对它进行配置就行了.在注解中如果一个注解的选项包括va原创 2011-12-05 13:14:58 · 628 阅读 · 0 评论 -
使用外键的一对多的配置:
使用外键的一对多的配置:DDL语句: 主表 CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET原创 2011-12-05 13:16:13 · 779 阅读 · 0 评论 -
Hql查询语句
Hibernate笔记:HQL查询总结(一)——简单属性查询和实体对象查询本文一部分转自kuangbaoxu的博文hibernate------hql总结博文地址:http://kuangbaoxu.javaeye.com/blog/193076 在HQL中关键字不区分大小写,但是属性和类名区分大小写 一、简单属性查询1.单一属性查询,返回结果集属性列表,元转载 2011-12-07 13:06:52 · 779 阅读 · 0 评论 -
使用hibernate的自动生成表的时候注意事项
在建立实体的是需要注意不能上实体的名称跟数据库的关键字一样,比如mysql里面的group是一个关键字,如果你有一个实体的名称叫做Group那么这个实体在使用hibernate的自动生成表的功能的时候就会出错,创建不了这张表,因为group在mysql里面是关键字,还有user这种关键字也最好不要使用。原创 2012-10-05 20:35:05 · 886 阅读 · 0 评论 -
hibernate的save(),saveOrUpdate(),update(),merge()方法的使用
package com.dada.hibernate;import java.util.Date;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.AnnotationConfigurat原创 2012-10-05 12:52:10 · 1855 阅读 · 0 评论 -
hibernate save和update以及saveOrUpdate区别
save()方法很显然是执行保存操作的,如果是对一个新的刚new出来的对象进行保存,自然要使用这个方法了,数据库中没有这个对象。update()如果是对一个已经存在的托管对象进行更新那么肯定是要使用update()方法了,数据中有这个对象。saveOrUpdate()这个方法是更新或者插入,有主键就执行更新,如果没有主键就执行插入。 区别:对于一个从托管状态到瞬态的对象(对于一个从原创 2012-10-05 11:38:24 · 25756 阅读 · 3 评论 -
在使用hibernate的时候,先建立表还是先建立类呢?
理论上是先建立类后建立表,因为这样就可以跨数据库了但是实际过程中是先建立表后建立类为什么呢?因为在hibernate之前人们已经习惯了先建立表了,这是习惯问题还有就是hibernate不会自动的帮助我们产生对表的优化,比如一些视图,序列.....因此实际过程中还是先建表后建类.原创 2012-10-05 00:28:17 · 1811 阅读 · 0 评论