一、下载

官网地址:http://hibernate.org/

Hibernate下有ORM(关系型数据库)、OGM(NoSQL数据库)、Search(对象全文检索)、Validator的工具。

ORM 5.2下载地址为:http://hibernate.org/orm/releases/5.2/

使用时,将Hibernate Lib下的required Jar包引入即可,其他高级功能可继续引用相关包。

二、工具

Hibernate通过XML将对象映射到数据库表,可以通过Hibernate Tools自动生成XML、POJO等。

除Hibernate Tools外,也可使用xdoclet来生成XML,xdoclet地址:http://xdoclet.sourceforge.net/index.html

Hibernate Tools下载地址:http://tools.jboss.org/downloads/

三、关键文件

  • Hibernate Configuration File(cfg.xml)

配置数据库连接信息(JDBC)以及注册映射:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--数据库连接配置-->
<property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.password">password</property>
<property name="hibernate.connection.url">jdbc:sqlserver://ipaddress:port;DatabaseName=dbname;SelectMethod=cursor</property>
<property name="hibernate.connection.username">username</property>
<property name="hibernate.default_catalog">dbname</property>
<property name="hibernate.default_schema">dbo</property>
<!--数据库方言-->
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<!--加载所有映射-->
<mapping resource="lims/hibernate/LIMS_TESTS.hbm.xml"/>
</session-factory>
</hibernate-configuration>
  • Hibernate Console Configuration

当使用File->New后,竟然发现找不到这个文件,正确的打开方式为:Run->Run Configurations。

实质上,Hibernate Configuration File(cfg.xml)是与项目相关的,例如包括了该项目使用的数据库连接信息,而Hibernate Console Configuration则是在项目开发过程中工具使用相关的,即可通过它来生成代码。

配置时,选择好项目及其配置文件路径,在Classpath中引入该项目所用的数据库的JDBC驱动。

  • Hibernate Reverse Engineering File(Revenge.xml)

该文件为数据库逆向工程配置文件,如果先创建数据库表,则可通过已有的数据库表来创建POJO和ORM XML等文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" > <hibernate-reverse-engineering>
<table-filter match-catalog="dbname" match-schema="dbo" match-name="tablename"/>
</hibernate-reverse-engineering>

根据该配置,使用Hibernate Tools可生成POJO和ORM XML等代码:

使用Hibernate Tools生成代码时,指定Hibernate Reverse Engineering File:

  • Hibernate XML Mapping File(hbm.xml)

Hibernate XML Mapping File是关键,各种映射都通过其实现。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="package name">
<class name="class name" table="table name">
<!-- 主键 ,id,映射-->
<id name="property name" column="column name">
<!-- <generator class="native"/> -->
</id>
<!-- 非主键,property,映射 -->
<property name="property name" column="column name" ></property>
</class>
</hibernate-mapping>

一个简单的示例如上所示,配置包名、类名、类属性和表字段映射即可。

复杂的应用,可以进一步配置字段的数据类型、长度、唯一约束等。

ID可配置自动生成方式,自增序列值、GUID值等,或可不配置,此时在业务代码中根据业务规则生成并赋值到Java对象中。

联合主键时,除了实体类外,需创建ID类,id替换为composite-id定义。

外键通过many-to-one配置。

四、示例代码

        // 对象
tests test = new tests();
test.setTestcode(1);
test.setTestname("test"); // 获取加载配置文件的管理类对象
Configuration config = new Configuration();
// 默认加载src/hibenrate.cfg.xml文件
config.configure();
// 创建session的工厂对象
SessionFactory sf = config.buildSessionFactory();
// 创建session (代表一个会话,与数据库连接的会话)
Session session = sf.openSession();
// 开启事务
Transaction tx = session.beginTransaction();
//保存-数据库
session.save(test);
// 提交事务
tx.commit();
// 关闭
session.close();
sf.close();

Java ORM Hibernate 入门笔记的更多相关文章

  1. Hibernate入门笔记

    相关基础概念请从其它教材简单了解,这里仅记录下第一个Hibernate程序的实现步骤. 环境说明: java开发工具:eclipse MARS.2 Release(4.5.2) hibernate版本 ...

  2. Hibernate学习笔记(一)—— Hibernate概述及入门

    一.Hibernatea概述 1.1 什么是Hibernate? 在介绍什么是Hibernate之前,我们先讨论一下什么是框架?框架是用来提高开发效率的,框架封装好了一些功能,我们需要使用这些功能时, ...

  3. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  4. Hibernate学习笔记(一)

    2016/4/18 19:58:58 Hibernate学习笔记(一) 1.Hibernate框架的概述: 就是一个持久层的ORM框架. ORM:对象关系映射.将Java中实体对象与关系型数据库中表建 ...

  5. 三大框架之hibernate入门

    hibernate入门   1.orm      hibernate是一个经典的开源的orm[数据访问中间件]框架           ORM( Object Relation Mapping)对象关 ...

  6. Hibernate 学习笔记一

    Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰 ...

  7. Hibernate day01笔记

    框架体系结构   hibernate入门 ORM框架 Hibernate是一个数据持久化层的ORM框架. Object:对象,java对象,此处特指JavaBean Relational:关系,二维表 ...

  8. Hibernate入门3.配置映射文件深入

    Hibernate入门3.配置映射文件深入 2013.11.27 前言: 之前的两节是在Java项目中如何使用hibernate,并且通过一个简单地项目实践,期间有很多的错误,一般都是因为配置包的问题 ...

  9. Hibernate入门(1)-第一个Hibernate程序

    Hibernate入门(1)-第一个Hibernate程序 Hibernate是最著名的ORM工具之一,本系列文章主要学习Hibernate的用法,不涉及Hibernate的原理.本文介绍第一个Hib ...

随机推荐

  1. yii学习笔记--快速创建一个项目

    下载yii框架 下载地址:http://www.yiiframework.com/ 中文网站:http://www.yiichina.com/ 解压文件

  2. MongoDB集群之分片

    原文:点击打开链接 MongoDB分片 分片(sharding)是将数据拆分,将其分散在不同的机器上的过程.MongoDB支持自动分片 片键(shard key)设置分片时,需要从集合里面选一个键,用 ...

  3. Linux显示一行显示列总计

    Linux显示一行显示列总计 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ free -t total used free shared buffers ca ...

  4. HTML5图片居中的问题

    刚开始接触html5,准备写一些网页,但是学习的过程中遇到了图片不能居中的问题,首先来看看,代码和执行效果: <!DOCTYPE html> <html> <head&g ...

  5. hihocoder Challenge 29 A.序列的值

    我现在就感觉我这人现在真的没有dp的意识 其实真写起来也不难,但是把就是练的少思维跟不上,dp从根本上就是一种状态的提炼和聚集. 按照题解的意思来,表示二进制第i位的值为j(0,1)的组合有多少,然后 ...

  6. banner图片轮播

    html部分                           版本号   <script src="http://www.jq22.com/jquery/jquery-1.10.2 ...

  7. day9(Hash、字典)

    一.Hash 简介: Hash,一般被翻译成"散列",也有直接音译"哈希"的,就是把任意长度的输入,通过哈希算法,变换成固定长度的输出,输出的结果就叫做哈希值, ...

  8. 指针数组与带参main函数

    (一)指针数组 指针数组就是每一个元素存放一个地址,相当于一个指针变量.如:int *p[4]指针数组比较适合用来指向若干字符串,使得处理字符串更加灵活.例如,现在要将若干字符串按字母顺序由小到大输出 ...

  9. 洛谷P3796 【模板】AC自动机(加强版)(AC自动机)

    洛谷题目传送门 先膜一发yyb巨佬 orz 想学ac自动机的话,推荐一下yyb巨佬的博客,本蒟蒻也是从那里开始学的. 思路分析 裸的AC自动机,这里就不讲了.主要是这题太卡时了,尽管时限放的很大了.. ...

  10. 【BZOJ1901】【Luogu2617】Dynamic Ranking(主席树,树状数组)

    [BZOJ1901][Luogu2617]Dynamic Ranking(主席树,树状数组) 题面 神TM BZOJ权限题 Luogu真良心 题解 如果不考虑修改 很容易的主席树区间第K大 考虑修改 ...