hibernate.properties : project\etc\hibernate.properties hibernate.cfg.xml : project\etc\hibernate.cfg.xml 所有hibernate相关配置文件都在project中.包括class.hbm.xml.*.dtd 啦啦啦…
在所有的ORM框架中有一个非常重要的媒介 : PO(持久化对象:Persistent Object).持久化对象的作用是完成持久化操作,简单地说,通过该对象可对数据执行增.删.改的操作 ------ 以面向对象的方式操作数据库. Hibernate直接采用POJO作为持久化类.为了使POJO具备持久化操作的能力,需要添加注解:@Entity.@Table.@Id.@GeneratedValue等. POJO : News package hibernate5chapter; import jav…
Hibernate提供三种方式将POJO变成PO类: 1. 使用持久化注解(以JPA标准注解为主,如果有一些特殊要求,则依然需要使用Hibernate本身提供的注解). 2. 使用JPA2 提供的XML配置描述文件(XML deployment descriptor),这种方式可以让Hibernate的PO类与JPA实体类兼容. 3. 使用Hibernate传统的XML映射文件(*.hbm.xml文件的形式). 对于Hibernate PO类而言,通常可以采用如下两个注解来修饰它: 1. @En…
事务也是Hibernate持久层访问的重要方面,Hibernate不仅提供了局部事务支持,也允许使用容器管理的全局事务. Hibernate关于事务管理的属性: ⊙ hibernate.transaction.factory_class : 指定Hibernate所用的事务工厂的类型,该属性值必须是TransactionFactory的直接或间接子类. ⊙ jtaUserTransaction : 该属性值是一个JNDI名,Hibernate将使用JTATransactionFactory从应用…
Hibernate的持久化操作离不开SessionFactory对象,这个对象是整个数据库映射关系经过编译后的内存镜像,该对象的openSession()方法可打开Session对象.该对象通常由Configuration对象产生. 每个Hibernate配置文件对应一个Configuration对象.在极端的情况下,不使用任何配置文件,也可创建Configuration对象. 5.4.1 创建Configuration对象 5.4.2 hibernate.properties文件与hibern…
1. 下载Hibernate压缩包 2. 解压:文件结构 ⊙ documentation : 该路径下存放了Hibernate的相关文档,包括Hibernate的参考文档和API文档等. ⊙ lib : 该路径下存放了Hibernate x.x 的核心类库,以及编译和运行所依赖的第三方类库.其中lib路径下的required子目录下保存了运行Hibernate x.x 的核心类库,以及必须的第三方类库. ⊙ project : 该路径下存放了Hibernate各种相关项目的源代码. ⊙ lgpl…
Hibernate 不仅仅管理Java类到数据库的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间.…
Hibernate的基本用法 ⊙ ORM的基本知识 ⊙ ORM和Hibernate的关系 ⊙ Hibernate的基本映射思想 ⊙ Hibernate入门知识 ⊙ 使用Eclipse开发Hibernate应用 ⊙ Hibernate的体系和核心API ⊙ Hibernate的配置文件 ⊙ 持久化类的基本要求 ⊙ 持久化对象的状态 ⊙ Hibernate的基本映射 ⊙ 数据库对象映射 ⊙ List.Set和Map等集合属性映射 ⊙ 组件属性映射 ⊙ 集合元素为符合类型的映射 ⊙ 符合主键映射 ⊙…
1. package org.crazyit.app.domain; import javax.persistence.*; /** * Description: <br/> * ��վ: <a href="http://www.crazyit.org">���Java����</a> <br/> * Copyright (C), 2001-2016, Yeeku.H.Lee <br/> * This program is p…
Hibernate底层依然使用SQL语句来执行数据库操作,虽然所有关系数据库都支持使用标准SQL语句,但所有数据库都对标准SQL进行了一些扩展,所以在语法细节上存在一些差异.因此,Hibernate需要根据数据库来识别这些差异. 同样的应用程序,如果在不同的数据库之间迁移,底层数据库的访问细节会发生改变,开发者需要做的是,告诉Hibernate应用程序的底层即将使用哪种数据库  ------  这就是数据库方言. Properties : MySQL org.hibernate.dialect.…
org.hibernate.cfg.Configuration实例代表了应用程序到SQL数据库的配置信息,Configuration对象提供了一个buildSessionFactory()方法,该方法可以产生一个不可变的SessionFactory对象. 另外,先实例化Configuration实例,然后在添加Hiberante持久化类.Configuration对象可调用addAnnotatedClass()方法逐个地添加持久化类,也可调用addPackage()方法添加指定包下的所有持久化类…
一.eclipse搭建 A.创建动态web项目 New-->Dynamic web project(web project) B.导入jar包 1.数据库驱动包 2.hibernate开发必须jar包(去官网下载hibernate,解压后里面lib-->required,里面jar包是hibernate必须jar包) 3.日志记录包 C.创建表(也可以不创建) D.创建实体类(数据库中如一个客户表就是客户实体,用Java语言描述出来) public class Customer { priva…
一.Hibernate简介 1.hibernate是对jdbc的二次开发 2.jdbc没有缓存机制,但是hibernate有. 3.hibernate的有点和缺点 (1)优点:有缓存,而且是二级缓存:完全的面向对象编程,代码操作比较简单. (2)缺点:大量的数据条件下不适合使用hibernate:程序员对hibernate生成的sql语句不可控,如果对sql优化的条件比较高,这时候也不适合使用hibernate. 4.hibernate中称数据库中的表为持久化表,相对应的,建立的类称之为持久化类…
1.直接通过JDBC API持久化实体域对象: A.java.sql常用接口和类: DriverManager:驱动程序管理器,负责创建数据库连接. Connection:代表数据库连接. Statement:负责执行SQL语句. PreparedStatement:负责执行SQL语句,具有预定义SQL语句的功能. ResultSet:代码SQL查询语句的查询结果集. 2.常用的ORM中间件: Hibernate\Mybatis\Toplink\Torque\ObjectRelationBrid…
org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1542) at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:1035) at…
事务并发处理 一. 数据库的隔离级别:并发性作用. 1.   ReadUncommited(未提交读):没有提交就可以读取到数据(发出了Insert,但没有commit就可以读取到.)很少用 2.   ReadCommited(提交读):只有提交后才可以读,常用, 3.   RepeatableRead(可重复读):mysql默认级别, 必需提交才能见到,读取数据时数据被锁住. 4.   Serialiazble(序列化读):最高隔离级别,串型的,你操作完了,我才可以操作,并发性特别不好, 隔离…
如何从数据库逆向生成Hibernate实体类呢??? 1. 首先,要在eclipse中采用自带的数据库管理器(Data Management),连通你的数据库: 然后选择数据库,这里用的oracle,然后给个名字,如MyOracle. 点击下图中按钮,新建一个数据库驱动的配置. 选择数据库版本,这里是oracle 10g版本,可以为该配置另起个名字. 然后选择相应数据库版本的jar包. 下面就是依据自身情况填写数据库连接配置了. 接下来,完善Properties下的General选项卡内容,同样…
一 准备工作 首先,我们将创建一个简单的基于控制台(console-based)Hibernate应用. 我们所做的第一件事就是创建我们的开发文件夹.并把所有需要用到的Java件放进去.解压缩从Hibernate站点下载的Hibernate公布包.并把全部须要的库文件拷到我们项目中去. 学习建User-library-hibernate,并增加对应的jar包 (a)项目右键-buildpath-configure build path-add library watermark/2/text/a…
声明: 1.本文系原创,非抄袭或转载过来的. 2.本文论点都亲手做过实验论证. 3.本文所讲的Hibernate配置都基于注解的方式,hbm语法未提供. 非常多人对持久层概念搞不清JPA.Hibernate.EJB3.0的关系,这里做一下简单的说明:JPA是一个持久层设计接口,EJB3.0和Hibernate是详细的实现类,EJB3.0和Hibernate的功能近似相等的(Hibernate没有Session Bean,Spring MVC3的SessionAttribute跟Session B…
ORM概念 在学习 Hibernate 之前,我们先来了解ORM   对象关系映射 O, Object  对象 R,Realtion 关系  (关系型数据库: MySQL, Oracle…) M,Mapping  映射 ORM, 解决什么问题? 存储:   能否把对象的数据直接保存到数据库? 获取:   能否直接从数据库拿到一个对象? 想做到上面2点,必须要有映射!   总结:          Hibernate与ORM的关系?             Hibernate是ORM的实现,简化对…
自动生成model.java.*.hbm.xml 甚至是dao.java.*.ddl.*.html等等.一般也就如下三种方式1. MyEclipse 自带插件2. jboss的 hibernate-tools插件(最为常用)3. ant 脚本方式.当然也有一些其他工具自动生成,比如 SSM 的 mybatis-Generator 自动生成dao.model.mapping 等等, 基于目前SSH 和 eclipse 选择第二种方式 hibernate-tools插件.网上看了一些资料大部分都是m…
Hibernate缓存 缓存(Cache):计算机领域非常通用的概念.它介于应用程序和永久性数据存储源(如磁盘上的文件或者数据库)之间,起作用是降低应用程序直接读取永久性数据存储源的频率,从而提高应用的运行性能.缓存中的数据是数据存储源中数据的拷贝.缓存的物理介质通常是内存. Hibernate中提供了两个级别的缓存 1)第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存.这一级别的缓存由hibernate管理. 测试函数1:Hibernate一级缓存示例 @Test public…
背景: 在上一篇文章中实现双向关联时,其中在Customer.java中我们使用了java.util.List<Order>来关联多的Order.其实还有另外一种实现方法:使用java.util.Set来替代java.util.List. Customer.java(定义Order:private java.util.Set<Order> orders=new HashSet<Order>();) package com.dx.hibernate.onetomany;…
框架辅助开发者进行开发,半成品软件,开发者与框架进行合作开发 Hibernate3Hibernate是一种基于Java的轻量级的ORM框架 基于Java:底层实现是Java语言,可以脱离WEB,在纯JAVA环境下运行 轻量级:与重量级比对,消耗资源比较小,运算速度比较快 ORM:(ORMapping:Object Relation Mapping)对象关系映射 O:Java对象 R:关系型数据库表 M:映射(map:地图 映射) 对象与表的对应关系 1.类与表对应 2.类的属性与表的字段对应 3…
Hibernate.基础篇<一>.Hibernate工具类. 话述: Hibernate.基础篇第一篇,前面是代码.后面再加理论&实践. Hibernate使用的版本是:5.x,在<Hibernate.基础篇<一>.Hibernate工具类.>已有具体描述,并实现了创建SessionFactory的方式,本篇对Hibernate工具类进行了小小的改良,如下: 项目结构: RunTest.java package com.charles.hibernate.tes…
eclipse从数据库逆向生成Hibernate实体类(注解和配置文件) 分类: hibernate 数据库 java 2011-10-22 21:28 2915人阅读 评论(8) 收藏 举报 做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再“自己”建立一变VO.意思是,在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表:要么就先进行数据库表设计,再逆向生成实体类.没有说进行完任意一…
没有Hibernate以前 Cilent 客户端 new出一个对象 然后执行JDBC 然后这样的访问数据库并不是面向对象语言 使用Hibernate以后 Cilent new 出一个对象后 访问配置文件 产生sessionfactory  然后opensession 获得一个session 拿到session后直接save 不用具体的拼sql语句 OR 即hibernate帮我们屏蔽了 R relationship 这层关系 只需要面向对象就好了 第一个小程序 首先引入相关jar包 透了懒 以前…
多对多 相当于一个老师可以教多个学生,一个学生也可以有多个老师 数据表中都是再设计一个表寸相关的id 1.多对多单向 1annotation Student.java package com.bjsxt.hibernate; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToOne…
1.组建映射 可以存在一个表里面 Husband.java package com.bjsxt.hibernate; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.per…
主要指对象之间的关系 1.一对一关联 一对一单项外键关联 比如说一夫一妻 Wifi.java package com.bjsxt.hibernate; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Wife { private int id; private String name; @Id @G…