01-hibernate入门级配置2

合集下载

Hibernate基本使用及配置

Hibernate基本使用及配置

Hibernate基本使⽤及配置Hibernate基本使⽤及配置Hibernate是什么框架Hibernate是⼀个开放源代码的对象关系映射框架1.它对JDBC进⾏了⾮常轻量级的对象封装2.它将POJO与数据库表建⽴映射关系,是⼀个全⾃动的orm框架3.Hibernate可以⾃动⽣成SQL语句,⾃动执⾏,使得Java程序员可以随⼼所欲的使⽤对象编程思维来操纵数据库。

4.Hibernate可以应⽤在任何使⽤JDBC的场合,既可以在Java的客户端程序使⽤,也可以在Servlet/JSP的Web应⽤中使⽤5.它是持久层的ORM框架POJO是什么简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称EJB是什么是Sun的JavaEE服务器端组件模型,设计⽬标与核⼼应⽤是部署分布式应⽤程序。

简单来说就是把已经编写好的程序(即:类)打包放在服务器上执⾏。

ORM是什么Object Relational Mapping(对象关系映射),指的是将⼀个Java中的对象与关系型数据库中的表建⽴⼀种映射关系,从⽽操作对象就可以操作数据库中的表。

使⽤Hibernate有什么好处1.对JDBC访问数据库的代码进⾏了轻量级封装,简化了数据访问层繁琐重复性的代码,减少了内存消耗,加快了运⾏效率2.是⼀个基本JDBC的主流持久化框架,很⼤程度上简化了DAO层的编码⼯作3.性能⾮常好,映射灵活性⽐较好,⽀持多关系数据库,⼀对⼀,⼀对多,多对多的各种复杂关系4.可扩展性强,源代码及API开放,当本⾝功能不够⽤时,可以⾃⾏编码进⾏扩展框架下载地址/doc/81822fa9366baf1ffc4ffe4733687e21af45ffb1.html /orm/Hibernate⽬录解析documentation Hibernate开发的⽂档project Hibernate提供的参考项⽬lib Hibernate开发的⽂档required Hibernate开发的必须的依赖包optional Hibernate开发的可选的jar包Hibernate使⽤1.创建⼀个项⽬(普通Java项⽬、Web项⽬都可以)2.引⼊必须的jar包①数据库的驱动包②Hibernate开发必须的Jar包3.建表5.创建Hibernate的核⼼配置⽂件,通常都叫hibernate.cfg.xml①创建完毕后,也有⼀个约束要引⼊,在org.hibernate包当中可以找到对应的dtd configuration.dtd数据库相关配置(如果属性名记不住):在⽬录提供的project当中有⼀个etc,在etc当中有⼀个hibernate.properties 的⽂件打开。

Hibernate基本配置与操作

Hibernate基本配置与操作
</id>
<property name="属性名" column="表的字段名"
type="..." length="" unique="true|false" not-null="true|false"/>
</class>
</hibernate-mapping>
4. session操作的典型代码:
Session session = ...;
Transaction tx = null;
try{
tx = session.beginTransaction();
session.save();....
mit();
Session session = factory.openSession();
☆4. Transaction:Hibernate对象底层事务的封装,默认采用手工提交事务方式,所以在进行CRUD操作时,要显示开启一个事务。
Transaction tx = session.beginTransaction();
5) update() 可以使一个脱管对象重附到新的session中, 成为持久化对象。
6) merge() 方法做合并。
传入瞬时对象,做插入。创建一个持久对象,把瞬时对象的状态复制过来,返回这个持久化对象。
传入脱管对象:先检查session缓存中有没有跟这个脱管对象的OID相同的持久化对象
<class name="实体类名" table="表名">
<id name="OID的名字" column="表的主键名" type="hibernate内置的映射类别">

hibernate_01_基本配置和查询_关键类_HQL_条件查询_C3p0

hibernate_01_基本配置和查询_关键类_HQL_条件查询_C3p0

目录



1:认识Hibernate 1、完全借助MyEclipse工具开发Hibernate应用。 2、分析MyEclipse生成的配置文件和工具类。 3、修改工具类,并进行简单的查询。 4、使用hibernate进行CRUD操作。-必须打开事务。 5、更好的认识Hibernate-体系结构。 6、Session,与SessionFactory介绍。 7、- 主键生成策略。 8、关键类介绍。-Query,Criteir
clob
blob serializable
java.sql.Clob
java.sql.Blob 实现了Serializable的java类
CLOB
BLOB VARBINARY
4、完成CRUD-使用hibernate进行CRUD操作。-必须打开事务:
Session,与SessionFactory介绍:
Hibernate的体系结构:
认识Hibernate:



在今日的企业环境中,把面向对象的软件和关系型数据库一起使用可能是相当麻烦和浪费时间 的。Hibernate 是一个面向 Java 环境的对象/关系型数据库映射工具。对象/关系型数据库映射 (object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射 到基于 SQL 的关系模型数据结构中去,即将数据表影射为JavaBean. Hibernate 不仅管理 Java 类到数据库表的映射(包括 Java 数据类型到 SQL 数据类型的映射), 还提供数据查询和获取数据的方法,可以大幅度减少开发时对人工使用 SQL 和 JDBC 处理数 据的 时间。HQL Hibernate 的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的 95%。对于以 数 据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,Hibernate 可能 不 是最好的解决方案;对于那些在基于 Java 的中间层应用中,它们实现面向对象的业务模型和 商 业逻辑的应用,Hibernate 是最有用的。不管怎样,Hibernate 一定可以帮助你消除或者包装那 些针对特定厂商的 SQL 代码,而且帮助你结果集从表格式的表示形式转换到一系列的对象中 去。

Hibernate教程_从入门到精通_第二篇(共四篇)

Hibernate教程_从入门到精通_第二篇(共四篇)
第二章 Hibernate API
目标: •Hibernate API简介
Hinernate的体系结构(运行时)





SessionFactory:它保存了对当前数据库配置的所有映射关系,它是将某 个数据库的映射关系经过编译之后全部保存在内存中的。 它还是生成 Session的工厂,它在进行实例化的过程中将会用到ConnectionProvider。 一个SessionFactory对应一个数据库连接,当数据库连接改变时需要修改 SessionFactory Sesion: 是进行持久化操作的基础,所有的持久化操作都是在Session的 基础上进行的。它相当与JDBC中的Connection。它是Hibernate的持 久化 管理器的核心,提供了一系列的持久化操作方法。另外,它还持有一个针 对持久化对象的一级缓存,在遍历持久化对象或者根据持久化标识查找对 象的时候会用 到。 Transation:功能上和数据库中的事务完全一样,通过它实现对数据库中 事务的控制。Transation对象是Session对象产生的,所以他的生命周期比 Session短。一个Session的生命周期中可以有多个Transaction对象。 ConnectonProvider:主要作用是生成与数据库建立了连接的JDBC对象 ,同时他还作为数据库连接的缓冲池。通过ConnectionProvider实现了应 用程序和底层的DataSource和DriverManager的隔离。 TransactionFactory:是生成Transaction对象的工厂,通过 TransactionFactory实现了事务的封装,使其具体的实现方法与应用程序无 关。

判断一个实体对象是否处于瞬态: 该实体对象的<id>属性(如果存在)的值为空 如果在映射文件中为<id>设置了unsaved-value属性,并且 实体对象的id属性的值与unsaved-value属性的值相同 如果这个实体对象配置version属性,并且version属性的 空 在映射文件中为version属性设置了unsaved-value属性,并且 version属性的值与unsaved-value属性的值相同。 如果设置了interceptor,并且interceptor的isUnsaved() 方法的返回值为true

1 Hibernate入门

1 Hibernate入门

加载并存储对象
public class EventManager { public static void main(String[] args) { EventManager mgr = new EventManager(); mgr.createAndStoreEvent("My Event", new Date()); HibernateUtil.getSessionFactory().close(); } private void createAndStoreEvent(String title, Date theDate) { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); Event theEvent = new Event(); theEvent.setTitle(title); theEvent.setDate(theDate); session.save(theEvent); session.getTransaction().commit(); } }
– column属性则告诉Hibernate, 我们使用EVENTS表的 哪个字段作为主键。嵌套的generator元素指定了标识 符生成策略,在这里我们指定native,它根据已配置的 数据库(方言)自动选择最佳的标识符生成策略。
映射文件
• 和id元素一样,property元素的name属性告诉 Hibernate使用哪个getter和setter方法。在此例中, Hibernate会寻找getDate()/setDate(), 以及 getTitle()/setTitle()。 • 为什么date属性的映射含有column attribute,而 title却没有?当没有设定column attribute 的时候, Hibernate缺省地使用JavaBean的属性名作为字 段名。对于title,这样工作得很好。然而,date在 多数的数据库里,是一个保留关键字,所以我们 最好把它映射成一个不同的名字。

1-Hibernate入门

1-Hibernate入门

维 信 高端 软 件 研 发 实 训
创建持久化类
持久化类是指其实例需要被hibernate持久化到数据库 中的类,持久化符合javaBean的规范,包含一些属 性,以及与之对应的set,get方法 持久化类必须有一个ID
public class User { private int id; private String username; private String password; }
维 信 高 端 软 件 研 发 实 训
Hibernate入门
应用Hibernate包含以下步骤:
创建hibernate配置文件 创建持久化类 创建对象-关系映射文件 通过API编写访问数据库的代码
维 信 高 端 软 件 研 发 实 训
创建hibernate配置文件
Hibernate从其配置文件hibernate.cfg.xml中读取和数据库连接有 关的信息,这个配置文件应该位于应用的classpath
维 信 高 端 软 件 研 发 实 训
Query接口
Query 接口是 Hibernate 的查询接口,用于向数据库查询对象。 Query Query 接口是 Hibernate 的查询接口,用于向数据库查询对象。 Query 实例包装了一个 HQL(hibernate 查询语句, HQL 查 实例包装了一个 HQL(hibernateQuery QueryLanguage) Language) 查询语句, HQL 查 询语句与 SQL 查询语句有些类似,但 HQL 查询语句是面向对象的,它 询语句与 SQL 查询语句有些类似,但 HQL 查询语句是面向对象的,它 引用类名及类的属性名,而不是表名和字段名 引用类名及类的属性名,而不是表名和字段名

hibernate入门教程.-15页精选文档

hibernate官方入门教程第一部分-第一个Hibernate程序首先我们将创建一个简单的控制台(console-based)Hibernate程序。

我们使用内置数据库(in-memory database) (HSQL DB),所以我们不必安装任何数据库服务器。

让我们假设我们希望有一个小程序可以保存我们希望关注的事件(Event)和这些事件的信息。

(译者注:在本教程的后面部分,我们将直接使用Event而不是它的中文翻译“事件”,以免混淆。

)我们做的第一件事是建立我们的开发目录,并把所有需要用到的Java库文件放进去。

从Hibernate网站的下载页面下载Hibernate分发版本。

解压缩包并把/lib下面的所有库文件放到我们新的开发目录下面的/lib目录下面。

看起来就像这样:.+lib antlr.jar cglib-full.jar asm.jar asm-attrs.jars commons-collections.jar commons-loggin g.jar ehcache.jar hibernate3.jar jta.jar dom4j.jar log4j.jarThis is the minimum set of required libraries (note that we also copied hibernate3.jar, the main archive) for Hibernate. See the README.txt file in the lib/ directory of the Hibernate distribution for more information about required and optional third-party libraries. (Actually, Log4j is not required but preferred by many developers.) 这个是Hibernate运行所需要的最小库文件集合(注意我们也拷贝了Hibernate3.jar,这个是最重要的库)。

Hibernate-01-入门

易可导航
第一章
Hibernate入门
易可导航
预习检查
为什么需要Hibernate? Hibernate是什么? 使用Hibernate的步骤是?
易可导航
本章任务
了解Hibernate基本原理 学会编写实体映射文件 学会使用Hibernate完成数据增、删、改操作 学会在项目中使用Hibernate 一级缓存与二级缓存
i"3mh.t0pt.lpde:tm/d/"e>hnitbserjanvatae.i.os.oSuercrieafloizrageb.lnee{t/hib实er体na类te到-m表ap的pin映g-射 private I<nhtiebgeernrautied-;mapping>
private S<scctrlhiaensmgsa=un"nadmbaeom=""ec;er" table="tbl_user"
}
<property name="upass" type="ng.String">
<column name="upass" length="30" />
</property>
</class> </hibernate-mapping>
属性到字段的映射
易可导航
如何使用Hibernate?
代码精简易读
封装了JDBC操作, 以面向对象的方式
操作数据
开发工作量小,可 以集中精力处理业
务逻辑
Hibernate就是用来 解决这些问题的!
易可导航

第二章 Hibernate - 入门


POJO
package base_mon.beans; public class Student { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { = name; } }
二 Hibernate入门
Hibernate介绍 Hibernate组成部分 Hibernate使用流程 入门程序开发
Hibernate介绍
hibernate 是一个O/R mapping框架,它使 得与关系数据库打交道变得十分轻松,就 像您的数据库中包含每天使用的普通Java 对象一样,同时不必考虑如何把它们从神 秘的数据库表中取出(或放回到数据库表 中).
Hibernate使用流程
建立库表(找发言人) 编写hibernate.cfg.xml(总体配置) 编写POJO(找各国代表) 配置POJO与库表的映射(请翻译) 编写数据库操作代码(开始开会)
入门程序开发
需求:有库表STUDENT,其中字段 student_id,student_name类型都是 VARCHAR(20),要求搭建用Hibernate对 此表进行操作的环境.
Hibernate程序的组成部分
先看看联合国大会的 组成
有各个国家的老外们参 加 有开会的发言人 老外们需要翻译
Hibernate程序的组成部分
使用了Hibernate的程 序:

02.Hibernate入门

– org.hibernate.cfg.AnnotationConfiguration(支持注解方式) • 是Configuration的子类 • 能够自动加载定义在POJO中的注解映射配置信息。
19
2.4.3 事务

事务 – 任何与数据库之间的通讯都必须在某个事务中进行 – 避免自动事务提交模式

Session对象是一个轻量级的非线程安全对象;创建Session的 代价相对较小,对象的生存期很短,一般在使用时创建,使用 后即关闭。
22
2.4.5 获取SessionFactory
public class HibernateUtil {
private static final SessionFactory sessionFactory; static { try { sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; }}
17
2.4.1 配置文件

Hibernate的配置文件分为两种: – Hibernate本身的配置信息 • 配置数据源 – 非容器管理 – 容器管理 • 配置SQL方言 • 其它可选属性
– POJO的映射配置 • XML方式的配置 • 注解方式的配置
18
2.4.2 加载Hibernate配置文件的两个类
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档