在编写Hibernate的时候,需要将实体类映射到数据库中的表。通常需要一个配置文件(hibernate.cfg.xml),一个实体类(XX.java),还有一个映射文件(XX.hbm.xml)。从JAVA5.0之后,可以利用注解来简化配置。简单来说就是不再需要映射文件了,hibernate需要的元数据(metadata)通过注解实体类就行了。
下面是一个简单的基于注解映射的Hibernate Hello World项目:
用到的工具和技术:1.Eclipse4.2.2
hibernate-annotations.jar
hibernate-commons-annotations.jar (Hibernate中支持注解开发的jar包)ejb3-persistence.jar(API规范的jar包)
slf4j/slf4j-api-1.5.0.jar
slf4j-log4j12-1.5.0.jar
log4j-1.2.15.jar (支持日志输出的jar包,注意版本的匹配)
首先是项目的整体架构:
项目的依赖(pom.xml):
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>4.2.2.Final</version>
- </dependency>
- </dependencies>
JPA jar包在hibernate3.6之后被放入hibernate-core包中。
Hibernate的配置文件(hibernate.cfg.xml):
- <?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>
- <!-- Database connection settings -->
- <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
- <property name="connection.url">jdbc:mysql://localhost:3306/test</property>
- <property name="connection.username">username</property>
- <property name="connection.password">password</property>
- <!-- SQL dialect -->
- <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
- <!-- Echo all executed SQL to stdout -->
- <property name="show_sql">true</property>
- <property name="format_sql">true</property>
- <!-- Drop and re-create the database schema on startup -->
- <property name="hbm2ddl.auto">update</property>
- <mapping class="org.hibernate.test.tutorial.Person" />
- </session-factory>
- </hibernate-configuration>
注意:需要在Mysql数据库中创建一个test数据库 CREATE DATABASE test
一个简单的实体类:
- package org.hibernate.test.tutorial;
- import java.io.Serializable;
- import java.util.Date;
- import javax.persistence.Column;
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.GenerationType;
- import javax.persistence.Id;
- import javax.persistence.Table;
- import javax.persistence.Temporal;
- import javax.persistence.TemporalType;
- @Entity
- @Table(name="T_PERSONS")
- public class Person implements Serializable {
- private static final long serialVersionUID = 1L;
- private Long id;
- private String name;
- private double age;
- private Date birth;
- @Id
- @GeneratedValue(strategy=GenerationType.AUTO)
- @Column(name="ID",unique=true)
- public Long getId() {
- return id;
- }
- @SuppressWarnings("unused")
- private void setId(Long id) {
- this.id = id;
- }
- @Column(name="NAME",length=20)
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- @Column(name="AGE")
- public double getAge() {
- return age;
- }
- public void setAge(double age) {
- this.age = age;
- }
- @Temporal(TemporalType.DATE)
- @Column(name="BIRTH_DATE")
- public Date getBirth() {
- return birth;
- }
- public void setBirth(Date birth) {
- this.birth = birth;
- }
- }
注意需要在Hibernate配置文件中注册该实体类: <mapping class="org.hibernate.test.tutorial.Person" />
最后编写一个运行程序:
- public static void main( String[] args )
- {
- SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory();
- Session session = factory.openSession();
- session.beginTransaction(); // 开启事务
- try{
- Person p = new Person();
- p.setName("Benson");
- p.setAge(22);
- p.setBirth(new Date());
- session.save(p);
- } catch(Exception e) {
- e.printStackTrace();
- session.getTransaction().rollback(); // 回滚事务
- }
- session.getTransaction().commit(); // 提交事务
- }
运行之后,可以在Ecilpse控制台观察到Hibernate为我们自动生成的格式化后的SQL:
- Hibernate:
- insert
- into
- T_PERSONS
- (AGE, BIRTH_DATE, NAME)
- values
- (?, ?, ?)
进入Mysql控制台,可以查看到自动生成(hibernate.hbm2dll.auto)的表和插入的记录。
相关推荐
这个"springmvc+hibernate注解框架整合 demo"是一个示例项目,展示了如何通过注解方式将这两个框架无缝集成。 **Spring MVC 框架** Spring MVC 是 Spring 框架的一部分,它提供了处理HTTP请求、转发响应以及管理...
Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库。在 Hibernate 中,注解是一种简洁且强大的工具,用于替代传统...理解并灵活运用这些注解是成为 Hibernate 专家的关键步骤。
- 设计模型:创建实体类,并使用Hibernate注解定义其与数据库的映射关系。 - 编写服务:创建Service层,利用Spring的注解注入DAO,实现业务逻辑。 - 控制器:创建Struts2的Action类,使用注解定义Action方法和返回...
【hibernate注解功能模拟】这一主题主要涵盖了三个核心概念:Hibernate、Annotation(注解)和Reflection(反射)。在Java编程中,这三个概念对于理解对象关系映射(ORM)框架,尤其是Hibernate的工作机制至关重要。...
首先,Hibernate注解分为两类:类级注解和属性级注解。类级注解用于描述整个实体类与数据库表的关系,而属性级注解则关注于类的各个属性如何映射到表的字段。 1. 类级注解: - `@Entity`:标记在POJO类上,表明该...
假设我们有一个`User`实体类,包含`id`、`name`和`email`属性,我们需要为每个属性添加注解,如`@Id`、`@GeneratedValue`、`@Column`等,以便Hibernate知道如何与数据库表对应。 3. **配置Hibernate** 创建一个`...
### Hibernate注解详解 #### 一、概述 Hibernate 注解是一种使用 Java 注解来定义对象关系映射(ORM)配置的方式。这种方式简化了 Hibernate 的配置过程,并且避免了大量的 XML 配置文件。本文将深入探讨如何使用 ...
Hibernate是一款强大的Java持久化框架,它简化了与关系型数据库如SQL Server的交互。通过将对象映射到数据库表,...总之,熟练掌握Hibernate的操作步骤和特性,对于提高Java开发中的数据库操作效率有着重要作用。
在MyEclipse中进行Hibernate反向工程的步骤主要涉及创建数据库连接、添加Hibernate支持、替换JAR包、打开数据库连接以及选择表进行反向工程。...理解并熟练掌握这些步骤对于进行基于Hibernate的Java Web开发至关重要。
以下是对Spring、Hibernate、Struts整合开发步骤的详细解释: 1. **创建J2EE Web工程** 在MyEclipse 5.0 GA环境下,首先我们需要创建一个新的J2EE Web工程,这是所有后续操作的基础。 2. **配置数据源** 数据源...
通过使用Hibernate,开发人员可以避免直接编写SQL语句,而是通过面向对象的方式来管理和操作数据。本文将详细介绍使用Hibernate进行数据库操作的步骤。 1. **配置Hibernate** - 创建`hibernate.cfg.xml`配置文件:...
这个“SpringMVC、spring、hibernate简单整合实例”通过注解开发的方式,旨在帮助初学者理解这三个框架如何协同工作。 SpringMVC是Spring框架的一个模块,主要负责Web应用的Model-View-Controller(MVC)架构。它的...
在MyEclipse中进行Hibernate反转工程是开发Java Web应用程序时常用的一种快速生成实体类和映射文件的方法。这个过程能够帮助开发者节省手动编写这些文件的时间,使得开发更加高效。以下是一个详细的步骤指南: 1. *...
在学习Hibernate的过程中,源码分析是提高技术水平的关键步骤。通过阅读源码,我们可以了解到Hibernate如何将Java对象与数据库表进行映射,如何执行SQL语句,以及事务管理、缓存机制、查询优化等核心功能的实现原理...
通过阅读博客文章,你可以看到具体示例和详细的配置步骤,这将有助于加深对Hibernate注解关联的理解。同时,实践操作可以帮助巩固理论知识,确保你能灵活地应用于实际项目中。 总之,掌握Hibernate的注解关联配置是...
首先,我们来看一下Hibernate注解的基本概念。自从JDK 1.5引入注解机制后,Hibernate也开始支持使用注解来替代传统的XML配置文件。通过在实体类上添加特定的注解,我们可以告诉Hibernate如何将Java对象映射到数据库...
Struts2.1、Spring2.5和Hibernate3.3是Java Web开发中经典的三大框架,它们的整合应用是企业级应用开发中的常见实践。这三个框架的集成为开发者提供了强大的功能,包括模型-视图-控制器(MVC)架构、依赖注入(DI)...
【标题】"5 Hibernate 开发步骤及案例代码" 提供了一个关于使用Hibernate进行J2EE开发的实践教程,特别适合初学者。Hibernate是Java平台上一个流行的开源对象关系映射(ORM)框架,它极大地简化了数据库操作,使得...
3. 实体类与表映射:理解Hibernate的注解或XML方式来定义对象与数据库表之间的映射关系,例如@Entity、@Table、@Column等注解的使用。 4. SessionFactory与Session:掌握SessionFactory的创建,它是整个应用程序的...
初始化Hibernate会话工厂(SessionFactory)是应用程序启动时的关键步骤。 4. **实体类与映射文件**:实体类代表数据库中的表,通过注解或XML映射文件与数据库表建立关联。例如,@Entity注解标识一个Java类为实体,...