`

Hibernate(3.6)之初识

阅读更多
一 环境:W7+Eclipse3.6
二 所用Hibernate版本:hibernate-distribution-3.6.0.Final
工程目录结构如下

三 参考资料
1 Hibernate3.6的Annotation问题
http://mayuchuan99.blog.163.com/blog/static/320023442011029438354/

hibernate3.6之前的版本使用Annotation,还需要下载Annotation库,需要添加ejb3-persistence.jar hibernate-annotations.jar hibernate-commons-annotations.jar,而获得SessionFactory必须以下这样写
   
 Configuration cfg=new AnnotationConfiguration();
     SessionFactory s=cfg.configure().buildSessionFactory();

在hibernate3.6的这个版本中,Annotation类库集成到了hibernate3.6,所以不在需要添加hibernate-annotations.jar hibernate-commons-annotations.jar等类库了。但是必须添加hibernate-jpa-2.0-api-1.0.0.Final.jar。
     hibernate 3.6要获取一个SessionFactory,我可以直接像用xml来配置实体与数据库表的映射关系那样。代码如下:
Configuration cfg=new Configuration();
SessionFactory s=cfg.configure().buildSessionFactory();

四 具体代码
1 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/hibernate</property>       
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <!-- JDBC connection pool (use the built-in) 
        <property name="connection.pool_size">1</property>
        -->
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- Enable Hibernate's automatic session context management 
        <property name="current_session_context_class">thread</property>
        -->
        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <!-- Drop and re-create the database schema on startup
        <property name="hbm2ddl.auto">update</property>
         -->
        
        <!-- 
        <mapping resource="org/hibernate/model/Student.hbm.xml"/>
        -->
        <mapping class="org.hibernate.model.Student"/>

    </session-factory>
</hibernate-configuration>


2 Student.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping >
	 <class name="org.hibernate.model.Student">
        <id name="id" column="id">
            <generator class="native"/>
        </id>
        <property name="name"/>
	    <property name="age"/>
    </class>
</hibernate-mapping>


3 Student.java
@Entity
public class Student {
	
	@Id
@GeneratedValue
	private int id;
	private String name;
	private int age; 
        //get set
}


4 HibernateUtil.java
package org.hibernate.model;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;


public class HibernateUtil {

    private static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory() {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            return new Configuration().configure().buildSessionFactory();
        }catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }

    }


    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }

}


5 Test.java
import org.hibernate.Session;

public class Test {
	public static void main(String[] args) {

		Student s = new Student();
		// 设置了ID的自动递增,就不用在指定ID值
		// s.setId(1);
		s.setName("zhangsan");
		s.setAge(8);
		
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		session.save(s);
		session.getTransaction().commit();
		HibernateUtil.getSessionFactory().close();
	}
}


6 mysql.sql
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` int(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `age` int(3) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;

INSERT INTO `student` VALUES ('1', 'zhangsan', '8');

  • 大小: 45.7 KB
分享到:
评论

相关推荐

    Hibernate3.6

    **Hibernate 3.6 框架详解** Hibernate 是一个广泛使用的开源对象关系映射(ORM)框架,它为Java开发者提供了便捷的方式来处理数据库操作。在 Hibernate 3.6 版本中,这个框架继续强化了其在简化数据库访问、提高...

    hibernate 3.6 中文 chm

    《Hibernate 3.6 中文 CHM》是一个针对Hibernate 3.6版本的详细使用指南,旨在帮助开发者理解和掌握这个强大的对象关系映射(ORM)框架。Hibernate是Java开发中的一个重要工具,它允许程序员以面向对象的方式处理...

    hibernate3.6

    Hibernate 3.6 是一个流行的Java对象关系映射(ORM)框架的重要版本,它极大地简化了数据库操作,将复杂的SQL语句与Java对象之间建立了桥梁。在这个版本中,Hibernate提供了许多增强的功能和优化,旨在提高开发效率...

    hibernate3.6.jar

    `hibernate3.6.jar` 是Hibernate 3.6版本的核心库,包含了实现ORM功能所需的类和接口。 在这个版本中,Hibernate 提供了以下主要功能和知识点: 1. **对象关系映射(ORM)**:Hibernate 提供了一种将Java对象与...

    hibernate3.6框架中文文档

    **Hibernate 3.6 框架中文文档** Hibernate 是一个强大的对象关系映射(ORM)框架,它允许Java开发者将数据库操作与业务逻辑层解耦,极大地简化了数据库编程。此文档是Hibernate 3.6版本的官方中文翻译,为开发者...

    Hibernate3.6 Final &Hibernate tools

    Hibernate 3.6 Final所有的jar包,以及Hibernate Tools 中的hibernate-tools.jar 和 freemarker.jar 。 本jar包用于使用hibernate-tools生成POJO所需要的依赖库

    汤阳光Hibernate3.6(基础).doc

    【标题】:“汤阳光Hibernate3.6(基础).doc”文档详细介绍了Hibernate 3.6,这是一份适合Hibernate初学者的学习资料,涵盖了丰富的实例代码、图表和注解。 【描述】:文档主要讨论了Java对象持久化,特别是如何在...

    hibernate3.6参考文档中英文

    标题"hibernate3.6参考文档中英文"表明这是一个关于Hibernate 3.6版本的综合参考资料,包含中文和英文两个版本。Hibernate是一个流行的Java ORM(对象关系映射)框架,它使得Java开发者可以更加便捷地在数据库上操作...

    hibernate3.6所有包

    在这个“hibernate3.6所有包”压缩文件中,包含了Hibernate 3.6版本的所有核心组件和依赖库。这个版本在当时是一个重要的里程碑,因为它引入了许多改进和新特性。 1. **Hibernate核心**:这是Hibernate框架的基础,...

    hibernate3.6相关jar包

    在这个“hibernate3.6相关jar包”中,我们很可能找到了Hibernate 3.6版本所需的一系列库文件,这些文件对于理解和使用Hibernate 3.6版本至关重要。 首先,Hibernate 3.6是一个相对成熟的版本,发布于2010年,它在...

    ssh(struts2.2.1+_hibernate3.6+spring3.0.5)整合配置

    下面将详细介绍如何整合Struts2.2.1、Hibernate3.6和Spring3.0.5。 首先,确保准备好所有必要的库文件,包括: 1. Struts2的struts2-2.2.1-all.zip 2. Hibernate的hibernate-distribution-3.6.0.Final-dist.zip 3. ...

    jbpm4.4+spring2.5.6+hibernate 3.6+struts2.2.1 集成 保证运行成功

    这个集成项目是基于特定版本的这些技术,包括jbpm4.4(业务流程管理),spring2.5.6(依赖注入和事务管理),hibernate 3.6(对象关系映射),以及struts2.2.1(MVC框架)。下面将详细介绍这些组件以及它们如何协同...

    Hibernate 3.6 Final Source Code

    《深入探索Hibernate 3.6源码:核心与实践》 Hibernate 3.6作为一款广泛应用的Java对象关系映射(ORM)框架,其源代码是开发者深入理解ORM机制、优化数据库操作的重要参考资料。该源码包“hibernate-core-3.6.0....

    hibernate3.6基本jar包

    《Hibernate 3.6 基本jar包详解》 Hibernate是Java开发中的一款非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据库。Hibernate 3.6是其一个稳定且广泛...

    我见过的最好的最详细的hibernate3.6.X学习资料(汤阳光)

    【hibernate3.6.X】是一个流行的Java持久化框架,它实现了ORM(对象关系映射)技术,使得开发者可以通过面向对象的方式处理数据库操作,从而降低了数据库编程的复杂性。在传统的三层架构中,hibernate常被用作数据...

    基于hibernate3.6的jpa例子

    **基于Hibernate 3.6的JPA例子详解** 在Java世界中,ORM(Object-Relational Mapping)框架如Hibernate已经成为数据库操作的标准工具。本篇将深入探讨如何利用Hibernate 3.6版本进行JPA(Java Persistence API)...

    Hibernate3.6 api_en_US.chm

    Hibernate3.6 api_en_US,Hibernate3.6最新英文版 chm格式api帮助文档

Global site tag (gtag.js) - Google Analytics