HIBERNATE - 技术教程文章

[转]NHibernate之旅(4):探索查询之条件查询(Criteria Query)【代码】

本节内容NHibernate中的查询方法条件查询(Criteria Query) 1.创建ICriteria实例2.结果集限制3.结果集排序4.一些说明根据示例查询(Query By Example)实例分析结语上一节,我们介绍了NHibernate查询语言的一种:NHibernate查询语言(HQL,NHibernate Query Language),这一节介绍一下条件查询(Criteria API)。NHibernate中的查询方法在NHibernate中提供了三种查询方式给我们选择:NHibernate查询语言(HQL,NHibernate Query Language)...

org.hibernate.MappingException: invalid configuration

写hibernate的hello world 内容非常简单,一个实体bean--Student.java 一个测试文件--StudentTest.java 两个配置文件:Student.hbm.xml,hibernate.cfg.xml 可是一直报错: Exception in thread "main" org.hibernate.MappingException: invalid configuration Caused by: org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 25; 文档无效: 找不到语法。 我实在是很困惑啊,都简单到不能简单的东西,还报错,也分明知道是...

持久层框架--hibernate(2)【代码】【图】

一 .持久化对象的oid 映射为数据库表的主键,唯一不重复当数据库表中的主键为代理主键时,持久化对象的oid 要交给hibernate来维护(避免重复)当数据库中表的主键为自然主键时,持久化对象的oid 要由程序本身来维护主键生成策略(生成持久化oid的方式): 1. increment 带走+1 由hibernate来维护oid的值, 优点:与底层数据库类型无关 缺点:只适用于单线程对数据库的访问 2. identity +1带走 优点:适合多用...

hibernate和spring下载网址

hibernate4下载地址 http://hibernate.org/orm/SpringMVC 官网:http://projects.spring.io/spring-framework下载地址:http://repo.spring.io/release/org/springframework/spring/4.2.2.RELEASE/ Spring-Security下载地址:http://repo.spring.io/libs-release-local/org/springframework/security/spring-security/Spring Security开发手册:http://docs.spring.io/spring-security/site/docs/4.1.0.RELEASE/reference/htmlsi...

Hibernate5.2之一对一主键关联(四)【代码】

Hibernate5.2之一对一主键关联(四)一.简介 一对一关联关系分为两种:a.主键关联;b.外键关联。这两种关联关系在日常的开发中都比较的常用,本篇文章介绍主键关联,在下一篇文章中介绍外键关联。二.主键关联2.1 数据库的创建createtable cards (id varchar2(255char) notnull, card_num varchar2(255char), primarykey (id) );createtable people (id varchar2(255char) notnull, name varchar2(255char), sex varchar2(255char),...

Mingyang.net:hibernate.hbm2ddl.auto配置详解【转】【代码】

原文地址:http://www.cnblogs.com/feilong3540717/archive/2011/12/19/2293038.htmlhibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如下:<properties><property name="hibernate.show_sql" value="true"/><property name="hibernate.hbm2ddl.auto" value="create"/></properties> Hibernate Reference Documentation 3.3.1解释如下:Automatically validate or export schema DDL to the database when the SessionFactory ...

Hibernate介绍

1.什么是Hibernate?????????? 首先,Hibernate是数据持久层的一个轻量级框架。数据持久层的框架有很多比如:iBATIS,myBatis,Nhibernate,Siena等等。????????? 并且Hibernate是一个开源的orm(object relations mapping)框架,提供了查询获取数据的方法,用面向对象的思想来操作数据库,节省了我们开发处理数据的时间。2.那使用Hibernate的优点呢?????????? 1.使用简介的hql语句(Hibernate query language)。可以不使用传统的i...

Hibernate之Session方法

对象的状态: Session中 数库中-----------------------临时无无持久化有最终会有游离无有删除调用了delete()方法后1,操作实体对象的Session方法save()update()saveOrUpdate()delete()2,操作缓存的Session方法clear() 清空Session缓存,不会执行sql语句。evict()flush() 马上执行sql语句,不会清楚Session缓存。3,查询实体对象的Session方法get()load()createQuery()createCriteria()package test.hibernate.session;public cl...

【面试 hibernate】【第二篇】hibernate相关问题

1.hibernate工作原理【说一下你怎么理解的hibernate】2.hibernate核心接口有哪些,核心模块都分别扮演什么样的角色3.get()和load()方法的区别4.save()、saveOrUpdate()、persist()方法的区别5.sessionFactory是什么,是做什么的6.hibernate中的session是指什么,是否可以多线程间共享7.顺势状态、持久化状态和游离状态分别都是什么,怎么可以转化8.hibernate的二级缓存你了解么?9.hibernate的查询缓存你知道么?10.hibernate为什么...

day37 03-Hibernate二级缓存:集合缓冲区特点【图】

所以说要经常检查hibernate3的核心配置文件hibernate.cfg.xml. Hibernate: select customer0_.cid as cid0_0_, customer0_.version as version0_0_, customer0_.cname as cname0_0_, customer0_.age as age0_0_ from customer customer0_ where customer0_.cid=?Hibernate: select orders0_.cno as cno0_1_, orders0_.oid as oid1_, orders0_.oid...

hibernate AOP【图】

摘自:http://pandonix.iteye.com/blog/336873/ 此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题。最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP 来解决。一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习Spring AOP相关的内容。本文是权当本人的自己AOP学习笔记,以下需求不用AOP肯定也能解决,至于是否牵强附会,仁者见仁智者见智。对部分函数的调用进行日...

Hibernate 配置文件hibernate.cfg.xml的详细

<!--标准的XML文件的起始行,version=‘1.0‘表明XML的版本,encoding=‘gb2312‘表明XML文件的编码方式--> <?xml version=‘1.0‘ encoding=‘gb2312‘?><!--表明解析本XML文件的DTD文档位置,DTD是Document Type Definition 的缩写,即文档类型的定义,XML解析器使用DTD文档来检查XML文件的合法性。hibernate.sourceforge.net/hibernate-configuration-3.0dtd可以在Hibernate3.1.3软件包中的src\org\hibernate目录中找...

在使用hibernate的getHibernateTemplate()时怎么让控制台输出封装好的SQL? 怎么用日志打印出来?【代码】

我们在使用 Hibernate 时一般只会关注是否显示生成的 SQL 语句,不过有些时候还不够。默认时 Hibernate 执行的 SQL 语句是打印在控制台上的,它也可以配置为输出给 Log4J 或是 Log4Back,还能显示出更详细的参数和取值信息。这里简单讲来。Hibernate 的配置文件 hibernate.cfg.xml 里提供有三个有关显示 SQL 的配置项,如果是与 Spring 联合,也可以配置到 Spring 的配置中。它们的取值是 boolean 值。1) hibernate.show_sql - 是否...

springboot使用hibernate validator校验【代码】

出直: https://www.cnblogs.com/mr-yang-localhost/p/7812038.html目录一、参数校验二、hibernate validator校验demo三、hibernate的校验模式1、普通模式(默认是这个模式)2、快速失败返回模式四、hibernate的两种校验1、请求参数校验2、GET参数校验(@RequestParam参数校验)a.此时需要使用MethodValidationPostProcessor 的Bean:b.方法所在的Controller上加注解@Validatedc.返回验证信息提示d.验证3、model校验4、对象级联校验5...

攻城狮在路上(壹) Hibernate(六)--- 通过Hibernate操纵对象(上)【图】

一、Hibernate缓存简介:  Session接口是Hibernate向应用程序提供的操纵数据接口的最主要接口,它提供了基本的保存、更新、删除和加载Java对象的方法。  Session具有一个缓存,位于缓存中的对象称为持久化对象,Session能够在某些时间点来同步更新数据库,这一过程即为清理缓存。  Hibernate把对象分为4种状态:持久化状态、临时状态、游离状态和删除状态。二、Session的缓存:  Session的缓存由一系列Java集合构成的。  ...

详解Hibernate中的二级缓存【图】

1.前言这篇博客再前几篇博客的基础上来讲解一下,Hibernate中的二级缓存,二级缓存是属于SessionFactory级别的缓存机制。第一级别的缓存是Session级别的缓存,是属于事务范围的缓存,由Hibernate管理,一般无需进行干预。第二级别的缓存是SessionFactory级别的缓存,是属于进程范围的缓存。 2.Hibernate二级缓存1.分类二级缓存也分为了两种内置缓存:Hibernate自带的,不可卸载,通常在Hibernate的初始化阶段,Hibernate会把映射元...

Rhythmk 学习 Hibernate 04 - Hibernate 辅助工具 之 JBoos Tool【图】

1、安装JBoos Tool Help -> Install new Software 然后添加:http://download.jboss.org/jbosstools/updates/developmenthttp://download.jboss.org/jbosstools/updates/stable/稍等一刻,选择 Hibernate tool 下一步 ,完成后重启Eclipse即可。2、项目配置文件生成: 2.1 新建一项目,项目右键生成相关配置 然后如图: 2.2 此处需要根据下图 选择:Hibernate code generation configurations ...

hibernate 常识【图】

应用程序与hibernate是通过持久化类通信:hibernate需要访问的属性一定要在*.hbm.xml中定义,不一定在持久化类中定义,但持久化类一定要提供该属性的set和get方法。如果持久化类里有一个属性,数据库中表没有对应字段,可以用*.hbm.xml中的formula属性做对应关系,例如下图,持久化类中有totalPrice属性,数据库表里没有4.5.原文:http://blog.51cto.com/2839840/2055822

Hibernate 级联之OneToMany【图】

首先看看表结构!customer表:create table customers( ID bigint not null primary key auto_increment, userName varchar(20));Order表:create table orders( ID bigint not null primary key auto_increment, customers_ID bigint, --应该为customers(ID)外键 orderDescription varchar(50)--订单描述); 有了上面简单的客户表与订单表,来建立一个Project!~并且添加Hibernate~并由上面二张表生成Beans,主键...

Hibernate学习笔记(5)联合主键

现在大家都不推荐使用联合主键,关键是因为其需要自己手工维护,比较麻烦。但是一个项目可能因为历史遗留原因,你不得不面对联合主键。 Hibernate联合主键问题解决如下: 可以使用一个组件作为一个实体类的标识符。你的组件类必须满足以下要求: (1)它必须实现 java.io.Serializable 接口 (2)它必须重新实现 equals() 和 hashCode() 方法,始终和组合关键字在数据库中的概念保持一致 注意:在 Hibernate3 中,第二个要求并非是 ...

hibernate映射实体类查询时数据库空字段赋值给实体类报错的问题【代码】【图】

因为一直报实体类空异常,去网上查了资料只查到了并没有查到数据库空值时不给实体类赋值的属性,只有这两个属性  这两个属性时设置 实体类有空字段插入或更新 数据库时空属性为默认值异常org.hibernate.InvalidMappingException: Could not parse mapping document from resource cn/pojo/EmpDao.xmlat org.hibernate.cfg.Configuration.addResource(Configuration.java:616)at org.hibernate.cfg.Configuration.parseMappingEleme...

11.hibernate的连接查询【代码】【图】

1.创建如下javaweb项目结构2.在项目的src下创建hibernate.cfg.xml主配置文件 1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" > 3<hibernate-configuration> 4<session-factory> 5<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</prope...

Hibernate中事务的隔离级别设置【图】

Hibernate中事务的隔离级别,如下方法分别为1/2/4/8。在Hibernate配置文件中设置,设置代码如下 原文:http://www.cnblogs.com/mainstudio/p/6217334.html

org.hibernate.LazyInitializationException: could not initialize proxy - no Session

在<many-to-on>中这错误很常见,字面意义就是不能被初始化,因为session已经关闭了。简单理解就是因为,你使用了lazy=true,这样hibernate在从数据库中调数据的时候是不会把关联的对象查出来的,而是保存一个获取值得方法,在你使用getXXX()调用的时候,hiberante会利用这个保存的方法去从数据库中取数据。而往往我们在jsp页面中使用getXXX()准备展示数据的时候,session早已经在dao中就关闭了,我们该如何解决这种异常呢?简单的说...

Hibernate学习笔记_02【代码】【图】

上篇文章(传送门:Hibernate学习笔记_01)介绍了Hibernate是什么,如何搭建,配置文件详解以及Hibernate的一些基本API详解这几个方面做了简单介绍,那么本文将会从一下5个方面记录Hibernate的学习经历:1.hibernate中的实体规则2.hibernate中的对象状态3.hibernate进阶—— 一级缓存4.hibernate中的事务5.hibernate中的批量查询(概述) Ⅰ.Hibernate中的实体规则在Hibernate使用中,需要创建与数据库表对应的实体,并在映射文件中配置.在创建...

spring hibernate实现动态替换表名(分表)【代码】

1.概述其实最简单的办法就是使用原生sql,如 session.createSQLQuery("sql"),或者使用jdbcTemplate。但是项目中已经使用了hql的方式查询,修改起来又累,风险又大!所以,必须找到一种比较好的解决方案,实在不行再改写吧!经过3天的时间的研究,终于找到一种不错的方法,下面讲述之。 2.步骤2.1 新建hibernate interceptor类/*** Created by hdwang on 2017/8/7.** hibernate拦截器:表名替换*/publicclass AutoTableNameIntercep...

hibernate对象三种状态

在Hibernate中,对象有三种状态:临 时状态(Transient)、持久状态(Persistent)和游离状态(Detached)。处于持久态的对象也称为 PO(PersistenceObject),临时对象和游离对象也称为VO(ValueObject). 1. 临时状态 由 new命令开辟内存空间的java对象,例如:User user=new User();临 时对象在内存孤立存在,它是携带信息的载体,不和数据库的数据有任何关联关系.(a) 如 果没有变量对该对象进行引用,它将被gc回收;(b) 在Hibernate中,可通过 ...

org.springframework.orm.hibernate3.LocalSessionFactoryBean的疑惑解决办法【代码】

在项目中使用了SSH框架(Struts2 + Spring3+ Hibernate3),applicationContext中配置了sessionFactory<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource"ref="dataSource"></property><property name="hibernateProperties"><props><prop key="hibernate.dialect" >org.hibernate.dialect.SQLServerDialect</prop><prop key="hibernate.jdbc.batch_size">20...

spring与hibernate整合【代码】

1.引入相关jar包  1)连接池与数据库驱动包    |--c3p0-0.9.5.2.jar    |--mysql-connector-java-5.1.39-bin.jar  2)hibernate的相关jar包    |--antlr-2.7.7.jar    |--cdi-api-1.1.jar    |--classmate-1.3.0.jar    |--dom4j-1.6.1.jar    |--el-api-2.2.jar    |--geronimo-jta_1.1_spec-1.1.1.jar    |--hibernate-commons-annotations-5.0.1.Final.jar    |--hibernate-core-5...

什么是hibernate懒加载?什么时候用懒加载?为什么要用懒加载?

所谓懒加载(lazy)就是延时加载,延迟加载。 什么时候用懒加载呢,我只能回答要用懒加载的时候就用懒加载。 至于为什么要用懒加载呢,就是当我们要访问的数据量过大时,明显用缓存不太合适, 因为内存容量有限 ,为了减少并发量,减少系统资源的消耗, 我们让数据在需要的时候才进行加载,这时我们就用到了懒加载。 比如部门ENTITY和员工ENTITY,部门与员工1对多,如果lazy设置为 false,那么只要加载了一个部门的po,就会根据一对多配...