Hibernate快速入门实例
Hibernate工程项目创建基本步骤:导包(Hibernate依赖包、SQL驱动包)、编写实体类、编写ORM映射配置文件、编写核心配置文件、编写测试驱动。
项目工程代码已经上传到GitHub:https://github.com/wanyouxian/Hibernate 工程名:HibernateQuickStart
整个工程项目结构如下图:

一、导包
笔者使用的是MySQL数据库,因此导入数据包如下图:

二、编写实体类
实体类就是与数据库里表对应的实体类,其编写有一定的规则:
1、提供私有成员变量和公有的get/set方法
2、提供空构造器:Hibernate反射需要使用该构造器
3、成员变量的类型尽量使用包装类:如果是long类型,则尽量使用Long类型
4、不能使用final关键字修饰实体类:主要用于hibernate延迟加载时创建代理对象,即该代理对象是实体类的子类,因此不能使用final修饰,延迟加载主要用于hibernate性能优化
5、必须提供用于生成主键OID的属性:如果不提供则不能使用Hibernate框架,hibernate是通过oid来区分是否为同一个对象
package com.rocky.domain; public class User
{
private Integer uId;
private String uName;
private Integer uAge;
public User()
{
super();
}
@Override
public String toString()
{
return "User [u_id=" + uId + ", uName=" + uName + ", uAge=" + uAge + "]";
}
public Integer getuId()
{
return uId;
}
public void setuId(Integer uId)
{
this.uId = uId;
}
public String getuName()
{
return uName;
}
public void setuName(String uName)
{
this.uName = uName;
}
public Integer getuAge()
{
return uAge;
}
public void setuAge(Integer uAge)
{
this.uAge = uAge;
}
}
三、编写ORM映射文件
一个实体类对应于一个ORM映射文件,主要用于指定实体类与表的映射规则。
<?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="com.rocky.domain">
<!--指定实体类和表的对应关系 -->
<class name="User" table="tb_user">
<!--指定主键 -->
<id name="uId">
<!--指定主键生成策略,assigned:代表生成自然主键,实际开发中我常使用native:根据配置选择主键 -->
<generator class="assigned"></generator>
</id>
<!--指定实体类属性和表的列的对应关系,如果不填写column属性则创建的表和实体属性名相同,
具体情况看公司表的设计和要求 -->
<property name="uName"></property>
<property name="uAge"></property>
</class>
</hibernate-mapping>
四、编写主配置文件
一个项目工程只有一个核心配置文件,用于配置和数据连接的参数和引入ORM映射配置文件
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
<session-factory> <!--指定数据库的参数 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://192.168.100.100:3306/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">1</property> <!--指定hibernate是否显式SQL语句及其格式化 -->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property> <!--指定表的生成方式-即是否由hibernate自动创建表,其取值为:create-drop、
create、validate、update-->
<property name="hibernate.hbm2ddl.auto">update</property> <!--引入 ORM配置文件 -->
<mapping resource="com/rocky/domain/User.hbm.xml"/>
</session-factory> </hibernate-configuration>
五、编写测试类
package com.rocky.testdriver; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration; import com.rocky.domain.User; public class TestDriver
{ public static void main(String[] args)
{ //加载配置文件
Configuration cfg = new Configuration();
cfg.configure();
//创建会话工厂
SessionFactory factory = cfg.buildSessionFactory();
//获取非线程绑定会话
Session session = factory.openSession();
//开启事务
Transaction tx = session.beginTransaction();
//创建User对象
User user = new User();
user.setuId(1);
user.setuName("rocky");
user.setuAge(28); //将数据插入数据库
session.save(user); //提交事务
tx.commit();
//关闭会话
session.close();
} }
Hibernate快速入门实例的更多相关文章
- (转)Hibernate快速入门
http://blog.csdn.net/yerenyuan_pku/article/details/64209343 Hibernate框架介绍 什么是Hibernate 我们可以从度娘上摘抄这样有 ...
- 实体框架(Entity Framework)快速入门--实例篇
在上一篇 <实体框架(Entity Framework)快速入门> 中我们简单了解的EF的定义和大体的情况,我们通过一步一步的做一个简单的实际例子来让大家对EF使用有个简单印象,看操作步骤 ...
- Hibernate快速入门之CRUD
一.Hibernate的基本概念 前言 Hibernate是一个ORM框架,ORM是Object Relational Mapping的缩写,即对象关系映射,也就是将面向对象思想的编程语言与关系型数据 ...
- 笔记44 Hibernate快速入门(一)
一.Hibernate简介 Hibernate 是传统 Java 对象和数据库服务器之间的桥梁,用来处理基于 O/R 映射机制和模式的那些对象. Hibernate 架构是分层的,作为数据访问层,你不 ...
- 01.Hibernate快速入门
第一步:下载Hibernate5的运行环境 https://sourceforge.net/projects/hibernate/files/hibernate-orm/ 第二步:在数据库创建表 Cr ...
- hibernate快速入门示例
hibernate概述 hibernate是一个java的全自动ORM框架,它可以自动生成SQL语句.自动建表.自动执行,使用者可以不使用SQL完成数据的CRUD操作,同时它也是基于JPA规则的一种实 ...
- hibernate快速入门
第一步:下载Hibernate的开发包: http://sourceforge.net/projects/hibernate/files/hibernate3 第二步:Hibernate框架目录结构: ...
- Structs+Spring+Hibernate快速入门
Structs+Spring+Hibernate,这是很经典的一个搭配,它的开发流程也比较程式化,下面以用户注册为例. 注册页面代码: <%@page contentType=" ...
- Rsync快速入门实例(转)
三种主要数据传输方式 单主机本地目录间数据传输(类似cp) Local: rsync [OPTION...] SRC... [DEST] 借助rcp,ssh等通道来传输数据(类似scp) Access ...
随机推荐
- Editplus配置java运行环境以及其他需求的简单设置
java配置 首先,打开"工具"(tools)选项,选择"配置自定义工具组"(英文版 是倒数第二个)然后按照上面第二幅图片来配置javac环境,其中命令一栏是j ...
- Advanced Sort Algorithms
1. Merge Sort public class Mergesort { private int[] numbers; private int[] helper; private int numb ...
- Java基础知识二次学习--第七章 容器
第七章 容器 时间:2017年4月27日15:08:30 章节:07章01节~07章04节 视频长度:20:21 +12:38 +3:55 +2:57 内容:容器API 心得: Java API ...
- MySQL 主从复制与读写分离概念及架构分析 (转)
1.MySQL主从复制入门 首先,我们看一个图: 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中. 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的33 ...
- 《JAVA与模式》之命令模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述命令(Command)模式的: 命令模式属于对象的行为模式.命令模式又称为行动(Action)模式或交易(Transaction)模式. ...
- 探讨SQL Server并发处理队列数据不阻塞解决方案
前言 之前对于并发这一块确实接触的比较少,自从遇到现在的老大,每写完一块老大都会过目一下然后给出意见,期间确实收获不少,接下来有几篇会来讲解SQL Server中关于并发这一块的内容,有的是总结,有的 ...
- MySQL中间件Atlas安装及使用
简介 Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目.它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量 ...
- javascript中break和continue的区别
1.break:跳出循环. 2.continue:跳过循环中的一个迭代.(迭代:重复反馈过程的滑动,其目的是为了逼近所需目标或结果.每一次对过程的重复称为一次"迭代",而每一次迭代 ...
- SDN学习之实现环路通信
在对OpenFlow协议有了一定了解以后,开始尝试如何通过Ryu控制器实现网络中的通信.根据协议,我们知道,当数据信息首次传输到交换机时,由于交换机不存在该数据信息所对应的流表,因此,会触发Packe ...
- C# 类型基础(中)
前一篇文章中我们讲到了值类型和引用类型的一些区别,那这篇我们将深入的分析一下到底有什么不一样 先总结一下两者的差别: 黄金法则: 1.引用类型总是被分配到托管堆上. 2.值类型总是分配到它声明的地方: ...