Hibernate
du_xian_sheng
这个作者很懒,什么都没留下…
展开
-
SSM框架原理作用及使用方法
作用:SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层使用spring MVC负责请求的转发和视图管理spring实现业务对象管理,mybatis作为数据对象的持久化引擎原理:SpringMVC:1.客户端发送请求到Dispa转载 2017-12-17 13:09:47 · 1097 阅读 · 0 评论 -
hibernate的Configuration对象的configure()方法的作用
做hibernate的小练习,对configuration的configure()方法很好奇,为啥创建的对象还要执行这个方法呢。Configuration cfg = new Configuration().configure();原来configure()方法默认会在classpath下面寻找hibernate.cfg.xml文件,如果没有找到该文件,系统会打印如下信息并抛出Hibern转载 2016-10-09 09:33:54 · 4184 阅读 · 0 评论 -
session的Get() 和 Load()区别
在Hibernate中,持久化对象的三种状态是和Session的周期相关的,因为Hibernate中的操作都是基于Session缓存机制完成的。所以Session对象的生命周期也关系着持久化对象的生命周期。那么什么是Session缓存机制呢?Hibernate中的session缓存机制和会话session没有一点关系,是完全不同的两个概念。Hibernate中引入session缓存的目原创 2016-10-09 11:29:04 · 456 阅读 · 0 评论 -
Hibernate中的session.merge()使用
merge的作用是:新new一个对象,如果该对象设置了ID,则这个对象就当作游离态处理:当ID在数据库中不能找到时,用update的话肯定会报异常,然而用merge的话,就会insert。当ID在数据库中能找到的时候,update与merge的执行效果都是更新数据,发出update语句;如果没有设置ID的话,则这个对象就当作瞬时状态处理:用update的话,由于没有ID,所以会报异原创 2016-10-09 16:33:32 · 4213 阅读 · 0 评论 -
hibernate批量插入数据
public void testInserBatch() { Session session = sf.openSession(); session.beginTransaction(); //每次插入20条数据 for(int i=0; i1000; i++) { Category c = new Category();原创 2016-10-18 15:06:52 · 635 阅读 · 0 评论 -
hibernate中native、identity和increment等主键的区别
identity:由底层数据库生成标识符。identity是由数据库自己生成的,但这个主键必须设置为自增长,前提条件是低层数据库支持自动增长字段类型 ,一般来说像mysql,sql server这类的数据库都是选择identityincrement:由hibernate管理主键,自动以递增的方式生成标识符,每次增量为1。其在每次插入前取得一个当前最大的id+1作为主键,该主键必须为I原创 2016-10-20 18:47:06 · 1509 阅读 · 0 评论 -
Hibernate中两种获取Session的方式
Session:是应用程序与数据库之间的一个会话,是hibernate运作的中心,持久层操作的基础.对象的生命周期/事务的管理/数据库的存取都与Session息息相关. Session对象是通过SessionFactory构建的,下面举个例子来介绍Hibernate两种获取session的方式。 日志,是编程中很常见的一个关注点.用户在对数据库进行操作的过程需要将这一系列操作记录,以便转载 2016-10-20 19:55:06 · 551 阅读 · 0 评论 -
web中session与序列化的问题
最近在写网上商城项目的时候学习了一个关于session的序列化问题,过来总结一下。 众所周知,session是服务器端的一种会话技术,只要session没有关闭,一个会话就会保持。这里先引出一个问题:如果我在访问某个页面后,服务器重启了一下,但是网页还没关,那么原来的session还在么?答案是很明显的,你都把服务器关掉了,session肯定不是原来的session了,原来的转载 2016-10-20 23:30:30 · 419 阅读 · 0 评论 -
hibernate.properties与hibernate.cfg.xml 区别
hibernate的数据库连接信息是从配置文件中加载的。Hibernate的配置文件有两种形式:一种是XML格式的文件,一种是properties属性文件。一)hibernate.cfg.xmlXML格式的配置文件中,除了基本的Hibernate配置信息,还可以指定具体的持久化类的映射文件,这可以避免将持久化类的配置文件硬编码在程序中。XML格式的配置文件的默认文件名为hi转载 2016-10-21 13:11:49 · 414 阅读 · 0 评论 -
一个简单的hibernate连接oracle数据库例子
一、 Hibernate介绍 Hibernate是基于对象/关系映射(ORM,Object/Relational Mapping)的一个解决方案。ORM方案的思想是将对象模型表示的对象映射到关系型数据库中,或者反之。Hibernate目前是ORM思想在Java中最成功、最强大的实现。它于2001年的年末发布第一个版本,立即引起了广泛的注意。2003年6月,Hibernate2发表,并转载 2016-10-21 14:50:10 · 10658 阅读 · 0 评论 -
Hibernate核心类用法-使用Configuration装载配置
Configuration接口的作用是对Hibernate进行配置 以及对他进行启动 在Hibernate的启动过程中 Configuration类的实例首先定位映射文档的位置 读取这些配置 然后创建一个SessionFactory对象 一个org.hibernate.cfg.Configuration实例代表了一个应用程序中Java类型到SQL数据库映射的完整集合。Configur转载 2016-10-21 14:57:12 · 416 阅读 · 0 评论 -
普通Java工程中调用Hibernate的8个执行步骤(properties做配置文件)
普通Java工程中调用hibernate的8个执行步骤(properties做配置文件)前言:文章的示例代码是在普通Java工程中简单调用Hibernate执行持久层的实现。用于理解Hibernate对JDBC的轻量级封装。总共八个步骤,可对应JDBC传统六个步骤来一起理解。当然,仅用于理解和参考,不可直接用于项目中。没有对关闭事务和关闭Session进行异常处转载 2016-10-21 14:59:08 · 789 阅读 · 0 评论 -
Hibernate的evict方法和clear方法的区别
我先创建一个Student,然后调用session.save方法,然后再调用evict方法把Student对象清除出缓存,再提交事务, 可是会报错:Exception in thread "main" org.hibernate.AssertionFailure: possible nonthreadsafe access to session 但是如果我用的不是evict方法,而是clear方法原创 2016-10-22 00:49:49 · 349 阅读 · 0 评论 -
hibernate 联合主键 composite-id
版权声明:本文为博主原创文章,未经博主允许不得转载。[html] view plain copy print?composite-id name="propertyName" class="ClassName" mapped="true|false" access="field|prop转载 2017-03-12 11:23:42 · 757 阅读 · 0 评论 -
使用Spring封装的Hibernate findByExample方法
org.springframework.orm.hibernate3.HibernateTemplate.findByExample(Object exampleEntity)这个方法按照exampleEntity所设置的属性值来组合查询语句的where条件,比如:Users anUser= new Users();anUser.setUserName("a");转载 2017-04-28 18:06:48 · 5548 阅读 · 0 评论 -
实体类注解错误:Could not determine type for: java.util.List
今天配置实体类注解时,出现以下错误: Caused by: org.hibernate.MappingException: Could not determine type for: java.util.List, at table: ss_user, for columns: [org.hibernate.mapping.Column(role_list)] 解决方转载 2017-04-27 16:11:41 · 3955 阅读 · 1 评论 -
fastjson 多级联属性过滤
最近使用FastJson结合hibernate做项目,发现关于对象的级联属性的过滤上用的不是很顺。当然简单的属性过滤 @温少 已经提供了 SimplePropertyPreFilter 使用,使用方法有详细说明的。这里我针对级联属性的过滤对该类做了补充。(当然你也可以使用注解实现)代码如下: 1 package com.example.util.fastjson; 2转载 2017-11-14 18:43:47 · 1399 阅读 · 0 评论 -
Hibernate Query 的 list 和iterate方法缓存的区别
Hibernate Query 的 list 和iterate方法缓存的区别查询缓存只对list有用,对iterate方式无用。iterate不会读也不会写查询缓存,list会读也会写查询缓存。list:quert.list()方法会将从数据库查找到的数据库放到一级缓存和二级缓存,但是不能从一级和二级缓存读取数据,但是可以从二级缓存的查询缓存读取数据, iter转载 2017-10-22 15:04:20 · 361 阅读 · 0 评论 -
fastjson序列化hibernate查询的数据报错:failed to lazily initialize a collection of role
原因,hibernate代理和延迟加载对象如果使用了lazy策略,那么序列化的时候要报错。解决办法,JSON序列化的时候,如果看到返回来的属性值是hibernate代理对象或者延迟加载对象,那么如果其值为还没有被初始化,那么不序列化。过滤的关键类实现PropertyFilter代码如下:[java] view plain copy pac转载 2017-10-24 12:14:45 · 734 阅读 · 0 评论 -
fastjson在使用hibernate关系模型转json出现$ref解决办法
问题描述hibernate中的pojo类,如果引用了其他的表的主键做外键,就会生成外键表对应的pojo类。直接使用fastjson转化对象成为json的时候就会产生循环引用的情况,转换对象生成的对象出现$ref。需要1.通过配置简单过滤器或者注解方式声明不序列化某列属性。// JSON过滤List list=TaocanDao.query(Taocan);SimplePr转载 2017-10-24 12:14:10 · 782 阅读 · 0 评论 -
Hibernate SQL 方言(hibernate.dialect)
Hibernate SQL 方言(hibernate.dialect)RDBMSDialectDB2org.hibernate.dialect.DB2DialectDB2 AS/400org.hibernate.dialect.DB2400DialectDB2 OS390org.hibernate.dialect.DB转载 2017-10-19 14:33:18 · 469 阅读 · 0 评论 -
SpringData Jpa、Hibernate、Jpa 三者之间的关系
JPA规范与ORM框架之间的关系是怎样的呢?JPA规范本质上就是一种ORM规范,注意不是ORM框架——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口,但具体实现则由服务厂商来提供实现,JBoss应用服务器底层就以hibernate作为JPA的实现。既然JPA作为一种规范——也就说JPA规范中提供的只是一些接口,显然接口不能直接拿来使用。虽然应用程转载 2017-07-05 18:31:02 · 357 阅读 · 0 评论 -
c3p0详细配置
3301000false属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试使用。Default: null-->Test保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。De转载 2017-06-19 10:00:57 · 394 阅读 · 0 评论 -
Hibernate(四)单向多对一映射下的增删改查
Hibernate单向多对一映射下的增删改查注:作为初学者,本文仅为了巩固自己学习的知识亦或帮助初学者,如有缺漏,请见谅在软件开发中,类与类之间最普遍的关系就是关联关系,而且关联关系是有方向的。以Student类和Grade类为例,一个年级包含多个学生,一个学生只对应一个年级,从Student到Grade就是多对一映射,从Grade到Student到Student就是一对多转载 2017-06-19 19:30:06 · 337 阅读 · 0 评论 -
Hibernate(三)Criteria查询
Criteria查询是与HQL查询、原生sql查询完全不一样的查询形式,是一种对象查询。Hibernate提供了Criteria接口、Criterion接口和Restrictions类、Order类等API,用于运行时动态生成查询语句,使用起来非常简便,并且支持连缀写法。1.条件查询(1)使用Criteria查询需要以下步骤: ①使用Session接口的createCrite转载 2017-06-19 19:29:29 · 539 阅读 · 0 评论 -
Hibernate(二)HQL&SQL参数绑定、投影和分页以及命名查询
在上文中讲解了HQL查询和sql查询的一些基本技能,本篇将对HQL查询和原生sql查询的知识进行一些补充。一、参数绑定无论是HQL查询还是SQL查询还是讲要讲到的命名查询,都支持两种参数绑定形式——按位置、按名称绑定(以下均以hql查询为例)1.按照位置绑定参数此时在HQL语句中使用“?”占位符来定义参数位置,如:[java] view plain copy转载 2017-06-19 19:27:25 · 361 阅读 · 0 评论 -
Hibernate(一)HQL查询、原生sql查询
hibernate中支持三种查询方式:HQL(Hibernate Query Language),原生sql查询,Criteria查询。HQL是一种面向对象的查询语言,其中没有表和字段的概念,只有类、对象、属性的概念;原生sql查询就是我们程序员手动的写sql语句并执行;Criteria查询又称为对象查询,采用真正的面向对象的方式进行查询,Criteria查询将在后续篇章中进行单独讲解,本篇文章只转载 2017-06-19 19:26:25 · 602 阅读 · 0 评论 -
Hibernate:命名SQL查询
命名SQL查询顾名思义就是将SQL语句从程序中抽出来,放在注解中管理,然后给每个SQL查询起一个名称,在程序中仅需要调用此名称即可,从而可以更好的提高程序的解耦。hibernate允许使用@NamedNativeQuery注解来定义命名的原生SQL查询,如果有多个命名查询,则使用@NamedNativeQueries注解来管理。下面@NamedNativeQuery注解支持的属性:转载 2017-04-27 18:02:28 · 486 阅读 · 0 评论 -
解决load,get,save 等is not valid without active transaction异常的原因
org.hibernate.HibernateException:*** is not valid without active transaction 2010-12-09 15:36:07Exception in thread "main" org.hibernate.HibernateException: *** is not valid without active tra转载 2016-10-24 16:50:49 · 1385 阅读 · 0 评论 -
hibernate中配置<param name="sequence">SEQ_CLASS_ID</param>
*.hbm.xml文件里面SEQ_CLASS_ID使用时必须先创建一个sequence,如果不指定sequence名称,则使用默认的名称hibernate_sequence,则就不会是自己定义的名字了。转载 2016-10-24 17:52:29 · 1687 阅读 · 0 评论 -
hibernate主键配置
一般主键的配置:[html] view plain copyid name="id"> 要求此属性要是数字类型 generator class="identity"/> -->原创 2016-10-24 22:46:59 · 517 阅读 · 0 评论 -
对Hibernate中Session与Thread绑定的一点认识
对Hibernate中Session与Thread绑定的一点认识1.在 Hibernate3 的 hibernate.cfg.xml配置文件中有这么一条:thread官方对他的解释如下:首先,只要你持有SessionFactory,大可在任何时候、任何地点调用这个方法:getCurrentSession()方法总会返回“当前的”工作单元。记得我们在hibernate.cfg转载 2016-10-30 19:07:34 · 3637 阅读 · 1 评论 -
web应用中通常将session绑定到当前线程上
hibernate.current_session_context_class属性配置此设置的作用如下:sessionFactory.getCurrentSession()可以完成一系列的工作,当调用时,hibernate将session绑定到当前线程,事务结束后,hibernate将session从当前线程中释放,并且关闭session。当再次调用getCurrentSess转载 2016-10-30 19:08:13 · 3634 阅读 · 0 评论 -
hibernate中session的线程安全问题
Hibernate的基本特征是完成面向对象的程序设计语言到关系数据库的映射,在Hibernate中使用持久化对象PO(Persistent Object)完成持久化操作,对PO的操作必须在Session管理下才能同步到数据库,但是这里的Session并非指HttpSession,可以理解为基于JDBC的Connnection,Session是 Hibernate运作的中心, 对象的生命转载 2016-10-30 19:14:56 · 3113 阅读 · 1 评论 -
使用hibernate SQLQuery执行原生SQL
hibernate对原生SQL查询的支持和控制是通过SQLQuery接口实现的。通过Session接口,我们能够很方便的创建一个SQLQuery(SQLQuery是一个接口,在Hibernate4.2.2之前,默认返回的是SQLQuery的实现类——SQLQueryImpl对象,在下文中出现的SQLQuery如非注明,都是指该子类)对象来进行原生SQL查询:session.createSQLQ转载 2016-11-01 18:42:39 · 733 阅读 · 0 评论 -
hibernate里的createSQLQuery()方法
1.使用SQLQuery对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。最简单的情况下,我们可以采用以下形式:List cats = sess.createSQLQuery( " select * from cats " ).addEntity(Cat. class ).list();这个查询指定了:转载 2016-11-01 18:44:14 · 799 阅读 · 0 评论 -
Hibernate异常:query specified join fetching, but the owner of the fetched association was not present
通过内连接返回dept对象部分属性的时候报错,在这种情况下把inner join fetch中的fetch去掉,就可以了List list = session.createQuery("select d.deptName from Dept d inner join d.emps").list();转载 2016-11-03 16:09:02 · 578 阅读 · 0 评论 -
hibernate jpa 注解 @Temporal(TemporalType.DATE) 格式化时间日期,页面直接得到格式化类型的值
1.日期: @Temporal(TemporalType.DATE) @Column(name = "applyDate", nullable = false, length = 10) public Date getApplyDate() { return applyDate; }在页面端取值:2011-04-12 2.时间:@Temporal(Te转载 2016-11-06 10:46:42 · 1063 阅读 · 0 评论 -
Hibernate 自动提交autoCommit一般建议设置成false
connection.autocommit=true这个属性是说,如果是true的话,就是自动提交,比如在一个业务中中,你有多个操作数据库的子业务,例如业务SuperA中有子业务suba,subb,subc.....如果是自动的话,suba操作成功 提交subb操作失败 回滚subc操作失败 回滚按照我们的逻辑当SuperA中有某一环节操作失败的话,都应转载 2017-02-13 01:00:49 · 3102 阅读 · 0 评论 -
hibernate中session的线程安全问题
Hibernate的基本特征是完成面向对象的程序设计语言到关系数据库的映射,在Hibernate中使用持久化对象PO(Persistent Object)完成持久化操作,对PO的操作必须在Session管理下才能同步到数据库, 但是这里的Session并非指HttpSession,可以理解为基于JDBC的Connnection,Session是 Hibernate运作的中心, 对象的生命周转载 2017-02-14 00:33:59 · 563 阅读 · 0 评论