Java ORM Hibernate 入门笔记
一、下载
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 入门笔记的更多相关文章
- Hibernate入门笔记
相关基础概念请从其它教材简单了解,这里仅记录下第一个Hibernate程序的实现步骤. 环境说明: java开发工具:eclipse MARS.2 Release(4.5.2) hibernate版本 ...
- Hibernate学习笔记(一)—— Hibernate概述及入门
一.Hibernatea概述 1.1 什么是Hibernate? 在介绍什么是Hibernate之前,我们先讨论一下什么是框架?框架是用来提高开发效率的,框架封装好了一些功能,我们需要使用这些功能时, ...
- [Java入门笔记] 面向对象编程基础(二):方法详解
什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...
- Hibernate学习笔记(一)
2016/4/18 19:58:58 Hibernate学习笔记(一) 1.Hibernate框架的概述: 就是一个持久层的ORM框架. ORM:对象关系映射.将Java中实体对象与关系型数据库中表建 ...
- 三大框架之hibernate入门
hibernate入门 1.orm hibernate是一个经典的开源的orm[数据访问中间件]框架 ORM( Object Relation Mapping)对象关 ...
- Hibernate 学习笔记一
Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰 ...
- Hibernate day01笔记
框架体系结构 hibernate入门 ORM框架 Hibernate是一个数据持久化层的ORM框架. Object:对象,java对象,此处特指JavaBean Relational:关系,二维表 ...
- Hibernate入门3.配置映射文件深入
Hibernate入门3.配置映射文件深入 2013.11.27 前言: 之前的两节是在Java项目中如何使用hibernate,并且通过一个简单地项目实践,期间有很多的错误,一般都是因为配置包的问题 ...
- Hibernate入门(1)-第一个Hibernate程序
Hibernate入门(1)-第一个Hibernate程序 Hibernate是最著名的ORM工具之一,本系列文章主要学习Hibernate的用法,不涉及Hibernate的原理.本文介绍第一个Hib ...
随机推荐
- dojo CsvStore简介
dojox.data.CsvStore 作者:Jared Jurkiewicz 版本:V1.0 CsvStore是由dojo提供的简单的只读存储,并且是包含在dojox项目中的.CsvStore是读取 ...
- Srtuts2实现登录界面(不连接数据库)报错(三)
二月 28, 2014 11:41:20 下午 org.apache.catalina.core.AprLifecycleListener init 严重: An incompatible versi ...
- 小白进阶之Scrapy(基于Scrapy-Redis的分布式以及cookies池)
首先我们更新一下scrapy版本.最新版为1.3 再说一遍Windows的小伙伴儿 pip是装不上Scrapy的.推荐使用anaconda .不然还是老老实实用Linux吧. conda instal ...
- 系统架构以及需要导入的jar包
架构: Servlet +JSP +JavaBean +JDBC 需要导入的jar包: MYSQL: 数据库驱动 C3PO连接池: (这个需要配置文件) C3PO DBUtils:特点:轻量级首选,增 ...
- ProgressBar、ProgessDialog用法解析
一.ProgressBar 1. 常用类型 1.1 不确定式圆形进度条 style="@android:style/Widget.Holo.Light.ProgressBar" s ...
- 【BZOJ1216】操作系统(堆,模拟)
[BZOJ1216]操作系统(堆,模拟) 题面 题目描述 写一个程序来模拟操作系统的进程调度.假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的.其中运行优先级用自然数表示 ...
- MySQL系列-第一章节:MySQL介绍与安装
1.数据库介绍 1.1.什么是数据库`<Database>` 简单说存放数据的仓库,这个仓库按照一定的数据结构<数据结构是指数据的组织形式或数据之间的联系>来组织.存储的,我们 ...
- hibernate 反向生成 实体类
1,配置数据库连接 步骤. 点击 windows -> open perspective - > myeclipse datebase Exprorer 打开了dateb ...
- 17.HTML
HTML简介 htyper text markup language 即超文本标记语言. 超文本: 就是指页面内可以包含图片.链接,甚至音乐.程序等非文字元素. 标准模板 <!DOCTYPE ...
- lamp进阶
前言:上一文说到,在lamp上简单的部署应用程序,wordpress和phpmyadmin 稍稍回顾一下,动态页面apche发往后端类PHP程序,其PHP本身提供能与后端mysql进行交互的驱动,使得 ...