谈谈简单Hibernate入门
Hibernate简介
Hibernate寓意:Let Java objects hibernate in the relational database.
Hibernate 是Java应用和关系数据库之间的桥梁,负责Java对象和关系数据库之间的映射的ORM中间件。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java开发人员可以随心所欲的使用对象编程思维来操纵数据库。简单的说就是:
1.封装了通过JDBC访问数据库操作。
2.向上层应用提供访问面向对象数据访问的API。
创建Hibernate配置文件
通过一个例子practice 演示如何运用Hibernate来访问关系数据库。
Practice 工程的功能:
通过Hibernate保存客户(customer)信息。
其Hibernate应用结构图如下:
―――――――――――――――――――――――――――
Practice 应用
Customer Class ; action Class;Business Class
――――――――――――――――――――――――――――
――――――――――――――――――――――――――――
Hibernate xml
对象-关系映射文件 Hibernate ApI
Hibernate 配置文件
――――――――――――――――――――――――――――
――――――――――――――――――――――――――――
关系数据库(Mysql)
CUSTOMERS 表
――――――――――――――――――――――――――――
创建持久化类
Hibernate 从Hibernate配置文件中读取和数据库连接相关的信息。
配置文件有两种形式:
一种是XML格式的文件:hibernate.cfg.xml
一种是Java属性文件:hibernate.properties
这个实例中我们将使用hibernate.cfg.xml。
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
true
false
net.sf.hibernate.dialect.MySQLDialect
org.gjt.mm.mysql.Driver
jdbc:mysql://localhost:3306/netstore
root
123456
true
gb2312
插入位置在src目录下:
创建O/R对象-关系映射文件
创建持久化的类Customer.java
package entity;import java.io.Serializable;
public class Customers implements Serializable {
private Integer id;
private String name;
private int age;
public Customers() {
}
public int getAge() {
return age; }
public void setAge(int age) {
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}}
Get/set 方法的命名必须符合JavaBean的规范,否则Hibernate会报出异常,具体请参照相关资料。
关于Serializable接口:
Hibernate 并不要求持久化类必须实现java.io.Serializable接口,但是对于采用分布式结构的Java应用,当Java对象在不同的进程节点之间传输时,这个对象必须实现这个接口;如果希望对HttpSession中存放的Java对象进行持久化,那么这个Java对象必须实现Serializable接口。
关于不带参数的构造方法:
public Customers() { }
Hibernate要求持久化类必须提供一个不带参数的默认的构造方法,原因请参考相关资料。
创建Mysql数据库
数据库名称:netstroe
Customer表DDL定义如下:CREATE TABLE `customers` ( `Id` bigint(20) NOT NULL default '0', `name` varchar(15) default NULL, `age` int(11) default NULL, PRIMARY KEY (`Id`)) TYPE=MyISAM;
创建对象-关系映射文件
创建对象-关系映射文件:Customers.hbm.xml
代码如下:
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
name="entity.Customers"
table="customers">
name="id"
type="java.lang.Integer"
column="id"
>
name="name"
type="java.lang.String"
column="name"
length="15"
/>
name="age"
type="int"
column="age"
length="11"
/>
引入Hibernate所需的jar包
Hibernate2.jar、hibernate-tools.jar
通过Hibernate API 访问MYSQL数据库
创建业务逻辑类:useHibernate.java
代码如下:
package business;
import entity.Customers;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.Transaction;
import net.sf.hibernate.cfg.Configuration;
public class useHibernate {
public static SessionFactory sessionFactory;
/** 初始化Hibernate,创建SessionFactory实例 */
public void saveCustomers(Customers customers) throws Exception {
Configuration config = null;
config = new Configuration().configure();
// 创建一个SessionFactory 实例
sessionFactory = config.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = null;
try {
/* 开始一个事务 */
tx = session.beginTransaction();
session.save(customers);
/* 提交事务 */
tx.commit();
} catch (Exception e) {
// TODO Auto-generated catch block
if (tx != null)
tx.rollback();
throw e;
} finally {
session.close();
}
}}
测试Hibernate配置是否成功
创建Junit测试:testhibernate.java
有关Junit请参考相关资料:
package test;
import business.useHibernate;
import entity.Customers;import junit.framework.TestCase;
Customers customers = new Customers();
customers.setId(new Integer(330121));
customers.setAge(24);
customers.setName("huhpreal");
useHibernate usehibernate = new useHibernate();
try {
usehibernate.saveCustomers(customers);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
查看后台打印信息:
(cfg.Environment 403 ) Hibernate 2.0.3
(cfg.Environment 432 ) hibernate.properties not found
(cfg.Environment 452 ) using CGLIB reflection optimizer
(cfg.Environment 462 ) JVM proxy support: true
(cfg.Configuration 703 ) Configuration resource: /hibernate.cfg.xml
(cfg.Configuration 270 ) Mapping resource: hbm/Customers.hbm.xml
(cfg.Binder 178 ) Mapping class: entity.Customers -> customers
(cfg.Configuration 885 ) Configured SessionFactory: null
(cfg.Configuration 492 ) processing one-to-many association mappings
(cfg.Configuration 503 ) processing foreign key constraints
(impl.SessionFactoryImpl 132 ) building session factory
(dialect.Dialect 83 ) Using dialect: net.sf.hibernate.dialect.MySQLDialect
(connection.DriverManagerConnectionProvider 41 ) Hibernate connection pool size: 20
(connection.DriverManagerConnectionProvider 70 ) using driver: org.gjt.mm.mysql.Driver at URL: jdbc:mysql://localhost:3306/netstore
(connection.DriverManagerConnectionProvider 71 ) connection properties: {useUnicode=true, user=root, password=123456, characterEncoding=gb2312}
(impl.SessionFactoryImpl 162 ) Use outer join fetching: false
(impl.SessionFactoryImpl 185 ) Use scrollable result sets: true
(impl.SessionFactoryImpl 186 ) JDBC 2 max batch size: 15
(impl.SessionFactoryImpl 194 ) echoing all SQL to stdout
(impl.SessionFactoryObjectFactory 82 ) no JDNI name configured
(impl.SessionFactoryImpl 269 ) Query language substitutions: {}
Hibernate 配置使用成功
查看数据库:
插入成功!
分享到:
相关推荐
"Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...
【Hibernate入门案例源码】是针对初学者设计的一份教程,旨在帮助理解并掌握Java持久化框架Hibernate的基础应用。Hibernate是一个强大的ORM(对象关系映射)框架,它简化了数据库与Java对象之间的交互,使开发者可以...
本压缩包提供的是Hibernate入门所需的jar包,包括了Hibernate的核心库以及与之配合使用的相关组件。让我们深入探讨一下这些jar包以及它们在Hibernate中的作用。 1. Hibernate核心库: - `hibernate-core.jar`:这...
其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,看了这个希望能给你点启示!
**初学Hibernate,Hibernate入门** Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务。在Java应用中,通过Hibernate,开发者可以将数据库操作抽象成对象模型,使得代码...
**Hibernate入门** Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使得开发者无需编写大量的SQL语句,就能实现数据的增删改查。本教程将分为五个部分,逐步深入Hibernate的世界。 **...
以下是关于Hibernate入门的一些关键知识点: 1. **对象关系映射(ORM)**:ORM是将数据库中的表映射为Java类的过程,通过这种方式,我们可以使用面向对象的编程方式来操作数据,而无需直接编写SQL语句。 2. **...
【hibernate入门小例子】是一个适合初学者的教程,主要涵盖了如何在JavaWeb项目中使用Hibernate框架与MySQL数据库进行集成。在这个例子中,我们将会深入理解Hibernate的核心概念,包括实体映射、对象关系映射(ORM)...
### Hibernate入门知识点详解 #### Hibernate概述与ORM思想 - **定义**:Hibernate是一个开源的、轻量级的对象关系映射(Object-Relational Mapping,简称ORM)框架,它主要应用于JavaEE架构中的DAO(Data Access ...
【hibernate入门--第一个实例】 Hibernate 是一个强大的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务。通过使用Hibernate,我们可以将数据库操作转换为对Java对象的操作,从而简化了数据库...
《Hibernate入门到精通》这本书是针对Java开发人员深入学习Hibernate框架的一份宝贵资源。Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。通过使用Hibernate,...
### Hibernate入门教程知识点详解 #### 一、Hibernate框架简介 **Hibernate** 是一款开放源代码的**对象关系映射(Object-Relational Mapping,简称ORM)**框架,它为Java应用提供了一种高效的机制,用于处理Java...
标题"hibernate入门数据简单插入"指的是使用Hibernate框架进行数据库的基本操作,特别是数据的插入。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者在应用程序中处理数据库对象,而无需直接编写...
**hibernate入门** Hibernate 是一个强大的Java持久化框架,它简化了数据库操作,使得开发者无需直接编写SQL语句即可实现对象与关系数据库之间的映射。这个文档将带你步入Hibernate的世界,了解其基本概念和核心...
**hibernate简单的入门案例** Hibernate 是一个强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用程序中操作数据库的强大工具。这个入门案例将带你了解如何使用Hibernate进行基本的操作,包括配置、...
然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比:Tomcat,Eclipse,Log4J,Struts,XDoclet,甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。在这篇文章将不涉及...
hibernate入门数据简简单查询
在了解基本配置后,教程会引导你创建一个简单的Java项目,并添加必要的Hibernate依赖。然后,通过一个实际案例展示如何创建实体类,定义数据表映射,以及如何在会话中进行数据的保存、检索、修改和删除操作。这部分...