数据库框架-hibernate
过天
学无止境 温故而知新
展开
-
hibernate HQL查询
Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。第 15 章 HQL: Hibernate查询语言Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常转载 2012-12-24 12:53:07 · 1345 阅读 · 0 评论 -
Hibernate多表查询结果处理
如果我们在Hibernate中需要查询多个表的不同字段,那么如何来获取Hibernate多表查询的结果呢?有两种方式:1、 对各个字段分别转化成对应类型,如下:Java代码:Query q = session.createQuery(" select members, classInfo.className " + " from Members members, C转载 2013-01-12 21:37:19 · 786 阅读 · 0 评论 -
集成Spring后HibernateTemplate实现分页
Spring 整合 Hibernate 时候用的 HibernateTemplate 不支持分页,因此需要自己包装一个类进行分页,具体实现如下...使用spring的hibernateTemplate的回调机制扩展hibernateTemplate的功能实现分页 [java] view plaincopy/** * 使转载 2012-12-25 00:15:15 · 2938 阅读 · 0 评论 -
hibernate 乐观锁与悲观锁使用
总结一句话概述 当多个事务同时使用相同数据时会导致并发问题,此时只能用锁来限制。 悲观锁:直接锁住数据库,一个用完,下个才能用,开销大。 乐观锁:数据库中增大version字段,每次提交时,对比当前version和数据库的version是否一致来判断。 引用其他文章详细讲解:Hibernate支持两种锁机制: 即通常所说的“悲观锁(Pess原创 2012-12-25 00:16:10 · 870 阅读 · 0 评论 -
Hibernate 映射xml中的属性类型
Hibernate的内置映射类型 1 JAVA基本类型(包括它们的包装类)和Hibernate映射类型HibernateJava类型标准SQL类型大小和取值范围integer/intint/java.lang.Integerinteger4字节转载 2012-12-25 00:14:14 · 3588 阅读 · 0 评论 -
ssh配置的一些简便方法
如ssh集成hibernate的xml映射2种方法 com/model/Novel.hbm.xml com/model/NovelType.hbm.xml --> //在com/model/mapping/*.hbm.xml存放所有的xml classpath:com/model/mapping/*.hbm.xml原创 2012-12-25 00:12:22 · 743 阅读 · 0 评论 -
Hibernate 检索查询的几种方式(HQL,QBC,本地SQL,集成Spring等)
1.非集成SpringHibernate的检索方式,主要有以下五种。 1.导航对象图检索方式。(根据已经加载的对象,导航到其他对象。) 2.OID检索方式。(按照对象的OID来检索对象。) 3.HQL检索方式。(使用面向对象的HQL查询语言。) 4.QBC检索方式。(使用QBC(Qurey By Cri原创 2012-12-25 00:14:45 · 2387 阅读 · 0 评论 -
让控制台打印的Hibernate显示SQL语句显示绑定参数值
使用Hibernate提供的内置属性true只能输出类似于下面的SQL语句:Hibernate: insert into student(name, sex, age, cardId, classroom_id, id) values (?, ?, ?, ?, ?, ?) 这样不利于程序的调试,为了可以显示?占位符所代表的具体数据,需要第三方Jar包,p6spy是一个该需求的开源实转载 2012-12-24 12:52:57 · 3300 阅读 · 0 评论 -
hibernate的搭建(包括Spring集成)和调用
一.非Spring集成的搭建和使用1.首先我们得下载Hibernate的需要的jar包(通常情况下导入hibernate3.jar和require文件夹里面的所有jar包). hibernate3.jar: 这个是Hibernate的核心包,所以是必须的jar包. cglib-2.2.jar: cglig库,Hiberna原创 2012-12-25 00:11:17 · 1361 阅读 · 0 评论 -
json返回hibernate的结果会自动调用(get)查询出关联表的数据,解决方法
//防止json数据用类的get方法访问关联类的所有数据,如果不需要关联的数据,set关联的Nullfor(Novel novel : novelList){novel.setNovelType(null);}comentData.put("rows", novelList);原创 2012-12-25 00:09:20 · 1519 阅读 · 1 评论 -
Hibernate 事务处理和spring中配置事务
1.非集成spring事务管理 事务是指由一个或者多个SQL语句组成的工作单元,这个单元中SQL语句只要有一个SQL语句执行失败,就会撤销整个工作单元。 事务的成功取决于工作单元的所有SQL语句都执行成功,它必须具备ACID特征,ACID是Atomic(原子性)、Consistency(一致性)、Isolation(隔离性)和持久性(Durability),它们的含义是:原创 2012-12-25 00:16:24 · 4188 阅读 · 0 评论 -
hibernate 延迟加载的错误 failed to lazily initialize
这个问题一般出现在一对多的情况下,解决的方法有两种1、设置lazy=false如果是用annotation,则配置如下Xml代码 @OneToMany( targetEntity = CourseAuthorizationItem.class, cascade = {CascadeType.PERSIST, CascadeType.转载 2012-12-25 00:16:01 · 968 阅读 · 0 评论 -
hibernate的1级缓存和2级缓存
一级缓存就是Session级别的缓存,close后就没了。 二级缓存就是SessionFactory级别的缓存,全局缓存,要配置其他插件。 什么样的数据适合存放到第二级缓存中? 1、很少被修改的数据 2、不是很重要的数据,允许出现偶尔并发的数据 3、不会被并发访问的数据 4、参考数据 不适合存放到第二级缓存的数据? 1、经常被修改的数据原创 2012-12-25 00:15:53 · 5247 阅读 · 0 评论 -
hibernate执行sql获取泛型对象
看下面的SQL查询示例:private void test(){ //获取Hibernate Session对象 Session session = HibernateUtil.currentSession(); //开始事务 Transaction tx = session.beginTransaction();原创 2012-12-25 00:15:24 · 1949 阅读 · 0 评论 -
浅谈hibernate(cascade,lazy,inverse,fetch)
1.cascade是否执行级联操作 在保存主表的时候,如果没有保存从表信息,会抛出异常,如果设置了级联关系,可以自动先保存从表,在保存主表 all: 所有情况下均进行关联操作,即save-update和delete。 none: 所有情况下均不进行关联操作。这是默认值。 save-update: 在执行save/原创 2012-12-25 00:13:42 · 3669 阅读 · 0 评论 -
hibernate简介(Session,几种状态,方法······等)
Hibernate是什么? Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 对象关系映射简称ORM(Object Relational Mapping),由于我们目前使用的编程语言大都是面向对象的编程,使用的数据库也大多都是关系型数据库,数据得以对象的形式原创 2012-12-25 00:12:33 · 2338 阅读 · 0 评论 -
hibernate的映射关系(1对n,n对1,n对n······)
1对多(1对多关系,name="novelSet"对应字段名 inverse=“true”不维护关联关系,order-by排序字段) //多端的类名 多对1(多对1关系,name="novelType"类的字段名 column="novelType"对应数据库的字段名 class="Nov原创 2012-12-25 00:13:02 · 2688 阅读 · 0 评论