HIBERNATE - 技术教程文章

02.Hibernate映射基础【代码】

前言:Hibernate的核心功能是根据数据库到实体类的映射,自动从数据库绑定数据到实体类。使我们操作实体类(Java对象)就能对数据库进行增、删、查、改,而不用调用JDBC API使数据操作变得简单而不繁琐。本文就主要讲解Hibernate的映射文件的映射机制,但本文讲解的重点在于通过Hibernate如何配置实体类到数据库表的映射,至于数据库表(或实体类)之间的各种关联关系的映射会在后面的文章中讲到。1.映射配置文件基础(XXX.hbm.xml) ...

hibernate 基础总结

1 hibernate的认知: hibernate是一种实现了ORM映射的持久层框架,它通过持久化类、配置文件、映射文件进行持久化操作。它有三个核心的类 Configuration获取数据库配置信息,SessionFactory类用来产生Session,SessionFactory同时是Hibernate的二级缓存,Session是hibernate的核心类,完成增删改查操作;2 hibernate的POJO: hibernate的持久化类要符合POJO,pojo是普通的javaBean,一般是私有属性,get/set方法,...

NHibernate

USE WFC_DBGOcreate table Students(Id int primary key IDENTITY(1,1) not null,Name varchar(255),Age int,Score int)GOinsert into Students values(‘cheng‘, 10, 60)insert into Students values(‘liu‘, 11, 80) http://www.cnblogs.com/stone_w/archive/2011/09/15/2177830.html1、注意xml文件,添加注释2、config文件,程序集,报错3、原文:http://www.cnblogs.com/MattCheng/p/4619432.html

笔记:Hibernate SQL 查询

Hibernate 支持使用原生的SQL查询,使用原生SQL查询可以利用某些数据库特性,原生SQL查询也支持将SQL语句放在配置文件中配置,从而提高程序的解耦,命名SQL查询还可以用于调用存储过程。 SQL查询是通过SQLQuery接口来表示的,SQLQuery接口是Query接口的子接口,完全可以使用Query接口的方法,SQLQuery增加了二个重载方法 addEntity():将查询到的记录与特定的实体关联 addScalar():江查询的记录关联标量值 执行SQL的步骤如下: 获取...

nhibernate GetType【代码】

本原理/* This code assumes an IEntity interface that identifies your persistent types. *////<summary>/// This static class provides common extension methods for <see cref="IEntity"/> types. ///</summary>publicstaticclass EntityExtensions { ///<summary>/// Gets the real, underlying Entity-type - as opposed to the standard GetType() method, /// this method takes into account the possibility that t...

数据持久层框架iBatis, Hibernate 与 JPA 比较

在本文中我们介绍并比较两种最流行的开源持久框架:iBATIS和Hibernate,我们还会讨论到Java Persistence API(JPA)。我们介绍每种解决方案并讨论其所规定的品质,以及在广泛的应用场景中其各自的长处和缺点。然后我们会基于诸如性能、移植性、复杂性以及对数据模型改变的适应性等因素来比较iBATIS、Hibernate和JPA。 如果你是一个刚起步的Java程序员,新接触持久性概念的话,那么就把阅读此文当作是接受一次这一主题以及大部...

hibernate之关于关联映射的综合应用

【hibernate】之关于关联映射的综合应用 1、关联映射如何处理业务逻辑 2、如何指定中间表 3、如何进行级联操作 4、如何解决Hibenrate建表过程中主键错乱问题 现在有三张表 Student(学生表),Course(课程表),Score(学生,课程,分数,表) 那么我们分析业务逻辑可知,学生和课程是多对多的关系,学生和分数表是一对多的关系,课程和分数也是一对多的关系。直接看Annotations配置,在这里我所有的配置都是双向关联,这样在分数,课程,...

zbb20170303_spring4_hibernate4事务管理【代码】【图】

1、总体结构图 2、classBookDao.javapackage com.zbb.dao;import com.zbb.entity.Book;public interface BookDao{ public String findBookById(int id); public void saveBook(Book book);}BookDaoImp.javapackage com.zbb.daoimp;import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframe...

Hibernate完成单表数据库操作

1、在数据库中建立一张数据表,这里建立一个张新闻表(news)CREATE TABLE news ( id number(8) primary key , title varchar2(50) not null, content varchar2(500) not null, pub_date date not null );在MyEclipse中需要建立项目,并加入Hibernate框架支持。但在这些之前,建议先在MyEclipse里...

Hibernate 关联映射【代码】

ORM(Object Relational Mapping)对象/关系映射说到Hibernate的关联映射就必须要提一提ORM了。那么ORM是什么呢,其是一种持久化技术,他在对象模型和关系型数据库之间建立对象关系,通过操作JavaBean对象来完成对数据库的操作!注意:ORM是概念化的并不是实际存在的,可以理解为其是一种编程思想,而Hibernate框架就是该思想的实现产品!配置Po对象(和数据表绑定的持久化对象)的关联关系从上面说到ORM可以在对象模型和数据库之间...

面试题--优化Hibernate所鼓励方法

下面哪一项不属于优化Hibernate所鼓励的?A:使用单向一对多关联,不使用双向一对多B:不用一对一,用多对一取代C:配置对象缓存,不使用集合缓存D:继承类使用显式多态答案:(A)关于试题相关总结:优化Hibernate所鼓励的7大措施:1.尽量使用many-to-one,避免使用单项one-to-many 2.灵活使用单向one-to-many 3.不用一对一,使用多对一代替一对一 4.配置对象缓存,不使用集合缓存 5.一对多使用Bag 多对一使用Set 6.继承使用显示多态 HQ...

[原创]java WEB学习笔记87:Hibernate学习之路-- -映射 继承关系(subclass , joined-subclass,union-subclass )【代码】【图】

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系。本人互联网技术爱好者,互联网技术发烧友微博:伊直都在0221QQ:951226918--------------------------------------------------------------------------------------------------------------------------------------------------------...

hibernate annotation 主键生成策略的相关配置

Hibernate 默认总共支持 13 种生成策略 : 1. increment2. identity 3. sequence 4. hilo 5. seqhilo 6. uuid 7. uuid.hex 8. guid 9. native 10. assigned 11. select 12. foreign 13. sequence-identity 下面介绍几个较为常用的策略 : ① identity [ 自然递增 ] 支持 DB2,MySQL,SQL Server,Sybase 和HypersonicSQL 数据库, 用于为 long 或 short 或 int 类型生成唯一标识。它...

有关hibernate.hbm2ddl.auto create删除原来的表后无法创建的问题【代码】【图】

由于是初学者,我这几天在看JPA方面的东西,今天在对照视频学习JPA的动态查询方面时遇到了一个问题 以上是在运行在插入过程中,突然开始报错,内容是org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement。刚开始我一直以为是xml配置或者实体类的一些注解配置错误,仔细...

hibernate使用【代码】【图】

hibernate是一个ORM框架。  ORM的全拼是Object Relational Mapping,译为“对象关系映射”,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上来说,它其实是创建了一个可以在编程语言里使用的“虚拟对象数据库”。  使用较多的ORM框架有:  JPA---- Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系(只有接口规范) Hibernate---- 最流行ORM框架,通过对象-关系...

NHibernate学习过程笔记【代码】【图】

NHbernate自动生成数据库的方法:using NHibernate; using NHibernate.Tool.hbm2ddl;namespace Test {publicclass NHDataProvier{privatereadonly ISessionFactory _sessionFactory;public NHDataProvier(){var configuration = new NHibernate.Cfg.Configuration();configuration.Configure();_sessionFactory = configuration.BuildSessionFactory();}publicvoid InitDb(){var configuration = new NHibernate.Cfg.Configuration...

04.Hibernate一对一关联【代码】【图】

前言:本文主要介绍使用Hibernate映射一对一的关联关系的两种方式:使用外键映射、使用主键映射。1.数据库表的一对一关联关系 本文根据客户信息表(tb_customer)和地址信息表(tb_address)来说明其一对一的关系,每一个客户都有一个家庭住址,而每一个地址都对应一个客户。(1)使用外键映射的数据库表说明 数据库表模型图如下: 数据库建表语句如下:CREATE TABLE tb_customer( id bigint NOT...

SSH系列:(3)Hibernate【代码】

(1)引入jar包(2)配置(3)测试1、引入jar包引入mysql jar包mysql-connector-java-5.1.38-bin.jar引入c3p0 jar包c3p0-0.9.1.2.jar引入hibernate相关jar包 (hibernate-distribution-3.6.0.Final)antlr-2.7.6.jarcommons-collections-3.1.jardom4j-1.6.1.jarhibernate3.jarhibernate-jpa-2.0-api-1.0.0.Final.jarjavassist-3.12.0.GA.jarjta-1.1.jarslf4j-api-1.6.1.jar2、配置2.1、添加实体类:Person.javapackage com.rk.test.entit...

Spring+Jersey+JPA+Hibernate+MySQL实现CRUD操作案例【图】

本文承接我的另一篇博文:Spring+Jersey+Hibernate+MySQL+HTML实现用户信息增删改查案例(附Jersey单元测试),主要更改内容如下:Spring配置文件applicationContext中原先使用的是Hibernate,现在改为Hibernate对JPA的支持;增加了C3P0连接池;修改了Dao操作实现,改为Spring接管的JPA实现。如果读者想详细查看Spring整合Jersey与前端交互可以点击上述连接。本文主要介绍以上三处修改内容,并且使用Jersey Test测试整合结果正确性...

hibernate之List&Set批量插入【代码】【图】

package com.chris.pojo;import java.util.List; import java.util.Map; import java.util.Set;publicclass User {private Integer userid;private String name;private List<String> address_list;private Set<String> address_set;public Set<String> getAddress_set() {return address_set;}publicvoid setAddress_set(Set<String> address_set) {this.address_set = address_set;}public List<String> getAddress_list() {retu...

Hibernate中的一对多、多对多映射【图】

一、一对多映射 如快递网点(ExpSite)与快递员(Deliver)的关系,即为一对多关系,一个快递网点有多个快递员,他们的关系如下图所示。在一对多中,外键在多的一方 (1)在多的一方配置外键Deliver表为多方,在Deliver实体类中放一个ExpSite方的引用做属性(外键),即所属网点ExpSiteId;Deliver实体类配置文件:<many-to-one name="ExpSiteId" class="ExpSite表所在的包名+ExpSite表的名" column="ExpSiteId(外键字段)"></many-to-one>(2)在...

框架 day38 SVN安装及使用,SSH练习项目CRM,环境搭建(myeclipse hibernate 反转引擎生成PO和映射)【图】

1 版本控制1.1 介绍? 版本控制(Revision Control):是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。也是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。1.2 没有版本控制? 代码管理混乱? 备份多个版本,占用磁盘空间大? 解决代码冲突困难? 容易引发BUG? 难于追溯问题代码的修改...

hibernate初入门2--Annotation【代码】【图】

零基础接触hibernate,在学习的过程中接触到了Annotation(翻译过来“注释”)。在学习过程中, 并不知道annotation怎么发展来的,但通过对比操作,发现了Annotation在编码中简化了对映射文件的编写(虽然很大程度上是copy过来的)!!话不多上,直接将编码过程贴上(菜鸟,写不出高大上的东西,此乃无奈之举)!!创建数据库创建实体类Teacher.java 1package com.hibernate.Exp150704;2 3import javax.persistence.Entity;4import javax...

struts2+Hibernate4+spring3+EasyUI环境搭建之三:引入sututs2以及spring与sututs2整合【代码】

1、引入struts2<!-- struts2 和心包 排除javassist 因为hibernate也有 会发生冲突--><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-core</artifactId><version>2.3.4.1</version></dependency><!-- struts2和spring整合包 这样会使action对每个请求new一个action对象 非单例注意区别:springMVC注解是Cotroller 是单例的--><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-spring-...

Hibernate——ORMapping【图】

ORMapping第一种:一对一单向外键关联一、Annotaion配置小实验1:(1)编写hunsband.java,属性为id,name,wife。id是主键(2)编写wife.java,属性为id,name。id是主键(3)实现方式:在husband.java中,用wife作为外键关联wife.java中的主键idHusband.javapackage com.zgy.hibernate.model; import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.OneToOne; @Enti...

Hibernate 性能优化之抓取策略

fetch 抓取策略前提条件:必须是一个对象操作其关联对象。  1、 根据一的一方加载多的一方,在一的一方集合中,有三个值:join/select/subselect  2、根据多的一方加载一的一方, 这种情况不考虑,因为关联对象就一个数据,怎么样都可以join 连接 【一次性的把两张表的数据全部查询出来,只发出一条sql语句】 * 在页面上既包括一的一方的数据,又包括多的一方的数据 * 数据库的数据量比较小select 默认的查询方式 ...

Caused by: code is 9998;desc is dao exception is org.hibernate.exception.DataException: error execu

1、错误描述exception is org.hibernate.exception.DataException: error executing workat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:601)at org.springframework.aop.support.A...

hibernate的配置 1【代码】

hibernate 是一种ORM框架,是ORM框架中一个典范 ORM叫做对象关系映射 是面向对象语言和关系型数据库之间的映射关系 所以只有在面向对象语言或者关系型数据库没用的时候ORM才会消失 ORM为我们做什么  减少乏味的代码   更加面向对象的设计   更好的性能   更好的移植性使用Hibernate http://hibernate.org/ 1. 加入Hibernate的jar包<dependency>   <groupId>org.hibernate</groupId>   <artifactId>hibernate-core...

Hello World之Hibernate版

双数组trie树实现的第一篇论文,日本人JUN-ICHI AOE 1989年撰写的.大概看完,简单记录下,可能有不准确的地方.trie树有静态和动态两种,静态的直接就是一个DFA,没什么好说的,使用内存什么都比较确定而且最少.动态的可以支持删除和插入,双数组做法就是一种实现.为了保证字典中所有词都不是其他词的前缀,在每个词后面加上#标识.双数组是指base和check这两个数组,base数组和check数组,一个状态用一个数字表示(这个数字是从1开始数),一个状...

hibernate_boolean类型的处理【代码】【图】

xml方式,直接写就行,hibernate会直接帮你生成:javaBean代码片段:privateboolean leaf;publicboolean isLeaf() {return leaf;}publicvoid setLeaf(boolean leaf) {this.leaf = leaf;}hbm.xml配置直接写就行:<property name="leaf"></property>测试里代码://s.setLeaf(true); s.setLeaf(false);数据库结果:true会存入1,false存入0。Annotation方式:定义boolean类型属性为:private boolean isLeave;JavaBean代码片段:bo...