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 ...
随机推荐
- Spring MVC和Struts2的比较
Spring MVC PK Struts2 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置.spring3 mvc可以认为已经100%零配置了(除了配置spring mvc ...
- 2016 UESTC Training for Dynamic Programming
强行做做试试看吧. http://acm.hust.edu.cn/vjudge/contest/124721#overview 密码:mytrain C - 柱爷与咸鱼神功 一个简单01背包. #in ...
- SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结
下载地址: http://pan.baidu.com/s/1qWDinyk 一 开发环境 1.动态web工程 2.部分依赖 hibernate-release-4.1.0.Final.zip hibe ...
- 开涛spring3(7.3) - 对JDBC的支持 之 7.3 关系数据库操作对象化
7.3.1 概述 所谓关系数据库对象化其实就是用面向对象方式表示关系数据库操作,从而可以复用. Spring JDBC框架将数据库操作封装为一个RdbmsOperation,该对象是线程安全的.可复 ...
- HTTP权威指南-HTTP概述
1.web服务器(HTTP服务器)使用的是HTTP协议,存储了因特网中的数据,当客户端发出请求时,服务器提供相应的数据.HTTP客户端和HTTP服务器共同构成了万维网的基本组件. 2.资源:Web服务 ...
- Webdriver+Java实现使用cookie跳过登录
Webdriver+Java实现使用cookie跳过登录 Webdriver模拟登录过程中很有可能遇到验证码,最近认真学习了下如何使用cookie直接跳过登录过程. 一.cookie的定义 来源百 ...
- SQL Server中对存储过程的理解
数据库的存储过程理解为,处理数据的子程序,写起来像函数,用起来像函数,在SQL Server中存储过程分为两大类,系统的和自定义的,系统的都放在master系统数据库中,自定义就是自己去写的,用DDL ...
- Android Studio 工具栏添加常用按钮
本文中 Android Studio 的版本为 android Studio 2.2 ,操作系统为 Windows,如有操作不同,可能是版本差异.在工具栏中添加一些常用的按钮,如设置.DDMS,有利于 ...
- 读Zepto源码之样式操作
这篇依然是跟 dom 相关的方法,侧重点是操作样式的方法. 读Zepto源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2. ...
- 表单的get和post使用情景
GET和POST两种方法都是将数据送到服务器,但你该用哪一种呢? HTTP标准包含这两种方法是为了达到不同的目的.POST用于创建资源,资源的内容会被编入HTTP请示的内容中.例如,处理订货表单.在数 ...