`
smiky
  • 浏览: 257796 次
  • 性别: Icon_minigender_1
  • 来自: 天门
社区版块
存档分类
最新评论

hibernate1(begin)

阅读更多

参考资料来源于hibernate3.3.2 reference

1.实体类初识

下面是一个JavaBean,但是hibernate还不认识它

public class Event {
    private Long id;
    private String title;
    private Date date;
    public Event() {}
    public Long getId() {
        return id;
    }
    private void setId(Long id) {
        this.id = id;
    }
    public Date getDate() {
        return date;
}
    public void setDate(Date date) {
        this.date = date;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }

}

 这个类遵循标准的JavaBean约定,使用私有的field,添加相应的get与set方法。

 

id属性用于标识特定的event,所有的持久化类必须有一个标识属性。持久化类必须有一个无参构造器,hibernate会通过反射机制来创建对象。

 

2.hiberante映射文件(xxx.hbm.xml)

EVENT类对应的hibernate映射文件,它告诉hibernate在操作EVENT类的对象时对数据库中什么表进行操作:

<hibernate-mapping package="org.hibernate.tutorial.domain">
    <class name="Event" table="EVENTS">

            <id name="id" column="EVENT_ID">
            <generator class="native"/>//native表示跟据数据库本来所具有的能力来生成主键,如sqlserver可以自增,

那么在这里native就相当于identity,对于mysql,可用sequence来生成主键,那么native就对应sequence
        </id>

       <property name="date" type="timestamp" column="EVENT_DATE"/>
        <property name="title"/>
    </class>
</hibernate-mapping>

 

class属性用来告诉hibernate,Event类对应数据库中的EVENTS表

 

这里的id属性用于标识数据库中的主键。name=id表示JavaBean中的id属性是用于hibernate作为主键来访问的,coloumn=EVENT_ID表示数据库中该表的主键列名为EVENT_ID。

generator用于描述主键的生成策略。

 

property用于表示EVENT类中其它的属性。name表示EVENT类中属性的名称,type表示hibernate映射类型,它可以在java与sql类型之间转换。column表示该属性对应的数据库中表的名字。

那么像下面的title只有name,没有type与column,hibernate会自动通过反射机制得到title在EVENT类中的类型,然后给定一个相应的值,对于column,hibernate将默认表中的名称与类中的名称一致。

 

3.hibernate配置文件(xxx.cfg.xml)

有了hibernate映射文件,hibernate可以通过对对象的操作,进而操作数据库表,但是hibernate怎么知道你要操作什么数据库,及你的映射文件又放在什么地方呢?

所以这里就引出了hibernate配置文件,它有两种形式,hibernate.cfg.xml或hibernate.properties,一般以xml为主,

当你用new Configuration().configue()加载配置文件时,默认加载hibernate.cfg.xml,如果你的hibernate配置文件的名字为xxx.cfg.xml那么你必须为configue()方法加参数,即new Configuration().configue("xxx.cfg.xml")。

 

下面是一个配置文件的例子:

<hibernate-configuration>

一个session-factory对应一个数据库,在这里要配置数据库相关信息,并且hibernate映射文件信息必须在这里进行配置(指出映射文件所处的位置),只有这样,hibernate才能知道什么实体类与什么表对应。
    <session-factory>
        <!-- Database connection settings -->
        <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>数据库驱动
        <property name="connection.url">jdbc:hsqldb:hsql://localhost</property>连接数据库的url
        <property name="connection.username">sa</property>用户名
        <property name="connection.password"></property>密码
     
        <!-- 方言,每种数据库有自己的特性,你要跟它交流就得用与之相应的方式,就跟你跟中国人说话要用汉语一样-->
        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>

        <!-- 是否显示sql -->
        <property name="show_sql">true</property>


        <mapping resource="org/zengge/hibernate/pojo/Event.hbm.xml"/>映射文件位置,这个很关键,如果定位不对,就会报错。
    </session-factory>

</hibernate-configuration>

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    hibernate学习资料大全

    在Hibernate中,事务处理是通过Session的beginTransaction()、commit()和rollback()方法实现的。了解事务的ACID特性以及如何在Hibernate中处理事务,可以确保数据的一致性。 7. **一对多、多对一、多对多关联映射*...

    hibernate3.zip 包含hibernate3.jar

    1. **对象关系映射(ORM)**:ORM是将数据库表与Java类之间建立映射的技术,允许开发者以面向对象的方式处理数据库。Hibernate通过XML配置文件或注解来定义这种映射关系,使得数据库操作如同操作普通Java对象一样...

    hibernate的jar包

    5. **Transaction管理**:Hibernate提供了事务管理功能,通过SessionFactory的openSession()方法创建Session,并通过Session的beginTransaction()、commit()和rollback()方法控制事务。 6. **Criteria查询**:除了...

    hibernate第一个hibernate

    1. Hibernate概述: Hibernate是一个开源的Java库,它提供了一种在Java应用中持久化数据的方式,使得开发者无需编写大量的SQL语句,即可实现对数据库的CRUD(创建、读取、更新和删除)操作。它的核心理念是将面向...

    hibernate案例1

    【hibernate案例1】是初次接触和学习Hibernate框架的一个基础教程。Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的数据操作。在这个案例中,我们将深入理解Hibernate的...

    初学hibernate,hibernate入门

    1. **环境准备**:首先确保已安装JDK,并在项目中引入Hibernate的依赖库。 2. **配置Hibernate**:创建`hibernate.cfg.xml`,设置数据库连接参数,如URL、用户名、密码、驱动类等。 3. **创建实体类**:定义一个...

    Hibernate执行持久层访问步骤

    1. 添加Hibernate依赖:在项目中引入Hibernate的JAR包或者Maven/Gradle依赖。 2. 配置Hibernate:创建hibernate.cfg.xml文件,设置数据库连接参数,如驱动类名、URL、用户名、密码等。 二、实体类定义 1. 创建实体...

    hibernate的相关jar包

    1. `hibernate-core.jar`:这是Hibernate的核心库,包含了持久化框架的主要功能,如Session接口、Entity接口、Criteria查询等。 2. `hibernate-entitymanager.jar`:提供JPA(Java Persistence API)的支持,使得...

    hibernate3.3.1框架必要jar包整合

    1. **对象关系映射(ORM)**:ORM是Hibernate的核心,它将数据库表映射为Java类,而表中的记录映射为类的实例。通过这种方式,开发者可以使用面向对象的编程方式来处理数据库操作。 2. **配置文件(hibernate.cfg....

    Hibernate 4.1.1中文文档

    1. **Hibernate概述**:Hibernate提供了一种在Java应用程序中持久化对象的机制,通过将对象模型转换为关系数据模型,使得开发者可以专注于业务逻辑而不是底层的数据库操作。 2. **安装与配置**:文档详细解释了如何...

    hibernate

    Transaction transaction = session.beginTransaction(); ``` - **解释**:通过 `Session` 对象获取事务对象,并开始事务处理。 以上步骤构成了使用 Hibernate 进行数据库操作的基本流程,通过这一流程,开发者...

    hibernate jar包

    1. **实体管理**:在Hibernate中,实体类代表数据库中的表,实体对象则代表表中的记录。通过在实体类上使用`@Entity`注解,Hibernate可以识别这个类作为数据库表的映射。`@Id`注解用于标记主键字段,而`@...

    Hibernate基本配置演示

    1. **hibernate.cfg.xml**: 创建一个名为`hibernate.cfg.xml`的配置文件,其中定义了数据库连接信息、SessionFactory配置等。例如: ```xml &lt;!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate...

    hibernate系列(一)hibernate入门

    **1. Hibernate简介** Hibernate是由 Gavin King 创建的一个开源项目,它实现了JPA(Java Persistence API)规范,提供了一种在Java应用中持久化对象的机制。通过Hibernate,我们可以避免编写大量的SQL语句,而是...

    hibernate立体结构文档

    Hibernate的Transaction接口提供了begin(), commit(), rollback()等方法,实现数据库事务的ACID特性。 八、性能优化 1. 配置优化:合理设置连接池大小,优化缓存策略。 2. 查询优化:避免N+1查询问题,使用JOIN查询...

    hibernate_day02笔记

    1. Hibernate提供了多种主键生成策略,如native、uuid等。 2. native策略会根据所使用的数据库自动选择合适的主键生成策略。 3. uuid策略会生成一个全局唯一的UUID字符串作为主键。 **实体类操作**: - **添加**:...

    hibernate 和hibernate_annotations(中文API).pdf帮助文档

    1. 实体(Entity):在Hibernate中,实体代表数据库表中的记录,是Java类的实例。通过@Entity注解标记一个Java类作为实体。 2. 表映射(Table Mapping):Hibernate将Java类映射到数据库表,通过配置文件或注解来...

    Hibernate教程03_Hibernate核心开发接口介绍

    在Hibernate中,事务的生命周期通常与Session关联,可以通过Session的beginTransaction()、commit()和rollback()方法来控制事务的提交和回滚。 5. **Entity和持久化类**: 在Hibernate中,我们通过在Java类上使用@...

    Hibernate简单的demo

    1. **实体(Entity)**: 在Hibernate中,实体通常对应数据库中的表,它们是Java类,通过注解或XML配置与数据库表进行映射。 2. **对象关系映射(ORM)**: Hibernate 提供了ORM工具,将Java对象与数据库表之间的映射...

    Hibernate更新某些字段

    session.beginTransaction(); Teacher t = (Teacher) session.get(Teacher.class, 3); t.setName("yangtb2"); session.update(t); session.getTransaction().commit(); } } ``` 然而,Hibernate 生成的 SQL ...

Global site tag (gtag.js) - Google Analytics