`
flysky
  • 浏览: 65401 次
社区版块
存档分类
最新评论

Hello,World in Hibernate 入门

    博客分类:
  • java
阅读更多
url:
http://www.blogjava.net/zhuguangxiang/archive/2007/02/10/99147.html

本文介绍如何用hibernate写一个hello world 程序,以及说明Hibernate下的对象的识别。
1、配置文件hibernate.cfg.xml:

<? 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 >

         <!--  Database connection settings  -->
         < property name = " connection.driver_class " > com.mysql.jdbc.Driver </ property >
         < property name = " connection.url " > jdbc:mysql: // localhost:3306/eg</property>
          < property name = " connection.username " > root </ property >
         < property name = " connection.password " > 4864452 </ property >

         <!--  JDBC connection pool (use the built - in)  -->
         < property name = " connection.pool_size " > 1 </ property >

         <!--  SQL dialect  -->
         < property name = " dialect " > org.hibernate.dialect.MySQLInnoDBDialect </ 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 " > create </ property >
          -->
   
         < mapping resource = " eg/Message.hbm.xml " />
       
       
     </ session - factory >

</ hibernate - configuration >
2、源文件:

package  eg;

public   class  Message   {
     private  Long id;
     private  String text;
            
     private  Message nextMessage;

     public  Message()   {}
      public  Message(String text)  {
         this .text = text;
    }
   
     public   void  setId(Long id)   {
         this .id  =  id;
    }

      public   void  setText(String text)   {
         this .text  =  text;
    }

      public   void  setNextMessage(Message nextMessage)   {
         this .nextMessage  =  nextMessage;
    }
         public  Long getId()   {
         return  ( this .id);
    }
         public  String getText()   {
         return  ( this .text);
    }
         public  Message getNextMessage()   {
         return  ( this .nextMessage);
    } 
}

3、配置文件:Messsage.hbm.xml

<? 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 >
     < class
        name =" eg.Message "
        table = " MESSAGE "
     >

         < id
            name = " id "
            column = " MESSAGE_ID "
            type = " java.lang.Long "
         >
             < generator  class = " native " />
                        
         </ id >
         < property
            name = " text "
            type = " java.lang.String "
            update = " true "
            insert = " true "
            column = " MESSAGE_TEXT "
         />

         < many - to - one
            name = " nextMessage "
             class = " jmuse.eg.Message "
            cascade = " all "
            outer - join = " auto "
            update = " true "
            insert = " true "
            column = " NEXT_MESSAGE_ID "
         />

       </ class >

</ hibernate - mapping >

4、最后的包结构:


+ lib
     antlr.jar
     cglib.jar
     asm.jar
     asm - attrs.jars
     commons - collections.jar
     commons - logging.jar
     hibernate3.jar
     jta.jar
     dom4j.jar
     log4j.jar
+src
     + eg
       Message.java
       Message.hbm.xml
       TestMessage.java
     hibernate.cfg.ml
     log4j.properties

5、测试:

  session.beginTransaction();
        Message m = new  Message( " hello,world " );
        session.save(m);
        session.getTransaction().commit();
        session.close();

你会发现在数据库中有一条信息了,id=1
Hibernate的对象识别是通过对象的Id 来识别的:
如:


我们刚才在数据库中保存了一个Id为1的Message对象。
如果:
session.beginTraction();
Message m = new  Message();
m.setId( new  Long( 1 ));
m.setText( " This is another greeting " );
session.saveOrUpdate(m);
sesion.getTraction.commit();
你会发现Hibernate会自动的把刚才的对象进行更新,而不是保存一个新的对象。
这个例子有点极端,呵呵。能说明问题就可以了。
分享到:
评论

相关推荐

    hibernate_HelloWorld

    【hibernate_HelloWorld】项目是一个入门级的教程,旨在帮助初学者了解并实践Hibernate框架的基本用法。Hibernate是一个强大的Java对象关系映射(ORM)框架,它简化了数据库与Java应用程序之间的交互,使开发者可以...

    1、springboot入门案例helloworld与集成hibernate

    在“1、springboot入门案例helloworld与集成hibernate”这个主题中,我们将学习如何创建一个简单的 SpringBoot 项目,并集成 Hibernate 进行数据库操作。Hibernate 是一个强大的 ORM(对象关系映射)框架,它可以将 ...

    Struts2入门之HelloWorld

    本篇文章将带你入门Struts2,通过创建一个简单的"HelloWorld"示例来理解其核心概念。 首先,了解Struts2框架的基本组成: 1. **Action类**:这是业务逻辑的入口点,处理用户请求并返回结果。在我们的"HelloWorld...

    初学hibernate,hibernate入门

    ## 示例:Hibernate HelloWorld 假设我们有一个简单的User实体,包含id、name和email属性。我们可以按照以下步骤进行操作: 1. 创建User实体类,添加`@Entity`和字段注解。 2. 编写`hibernate.cfg.xml`,配置...

    hibernate hellowrold入门级代码

    【hibernate helloworld入门级代码】是针对初学者的一个简单示例,旨在帮助理解Hibernate这一流行的Java对象关系映射(ORM)框架的基本用法。在这个项目中,我们将探讨Hibernate如何将Java对象与数据库中的记录关联...

    hibernate-helloworld

    本篇文章将深入探讨在"hibernate-helloworld"项目中的核心概念与实践步骤,帮助初学者快速入门Hibernate。 首先,我们需要了解Hibernate的核心理念:对象关系映射。ORM是连接Java应用程序和关系数据库的桥梁,它...

    hibernate的helloworld版

    "Hibernate的HelloWorld版"是学习Hibernate的入门教程,通过一个简单的例子,帮助初学者理解Hibernate的基本工作原理和配置。 **描述:“如果你没学过Hibernate,但是又想看一下它的最简单形式。这个应该适合你。”...

    SpringMVC入门很简单之HelloWorld

    在"SpringMVC入门很简单之HelloWorld"这个主题中,我们将探讨如何设置一个基本的SpringMVC项目并实现简单的"Hello, World!"展示。 首先,项目结构至关重要。在给定的文件名称列表中,我们看到了几个关键目录: 1. ...

    Hibernate 4.0版HelloWorld

    总结来说,"Hibernate 4.0版HelloWorld"项目是一个简单的入门示例,它涵盖了Hibernate 4.0的基本使用,包括Maven配置、实体类创建、配置文件编写、会话管理以及基本的数据操作。通过这个项目,开发者可以学习到如何...

    SpringBoot之HelloWorld的Maven项目(Eclipse)

    **SpringBoot之HelloWorld的Maven项目(Eclipse)** SpringBoot是由Pivotal团队开发的一个框架,旨在简化Spring应用程序的初始搭建以及开发过程。它集成了大量的常用库,如数据访问、安全、Web等,使得开发者可以...

    spring入门学习-hello,world

    HelloWorld helloWorld = (HelloWorld) context.getBean("helloWorld"); helloWorld.sayHello(); } } ``` 当我们运行`MainApp`时,Spring容器会加载配置文件,创建`HelloWorld`实例,并调用其`sayHello`方法,...

    hibernate的第一个例子

    这个例子特别适合初学者,旨在帮助他们快速理解和入门Hibernate框架。 **标签关键词:“hibernate”**:Hibernate是一个流行的Java ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来操作数据库,避免了...

    springboot HelloWorld

    总结来说,SpringBoot HelloWorld是一个简单的入门示例,展示了如何利用Spring Boot快速构建一个运行的Web应用。通过这个示例,开发者能够理解Spring Boot的核心概念,包括自动配置、依赖注入和RESTful API的创建。...

    SSH框架整合入门helloworld两种事务管理方式(失败的自己)

    SSH框架整合入门——HelloWorld与两种事务管理方式详解 SSH框架是Java开发中常见的三大开源框架集成,包括Spring、Struts2和Hibernate。这个框架组合提供了强大的MVC(Model-View-Controller)架构支持,方便开发者...

    SpringData-1 概述与HelloWorld

    本节我们将探讨SpringData的概述以及如何通过一个简单的"HelloWorld"示例来入门。 SpringData的核心目标是通过减少样板代码,使数据访问更加简单、高效。它支持多种数据存储技术,包括JPA(Java Persistence API)...

    Spring集成Struts与Hibernate入门详解

    Spring集成Struts与Hibernate入门详解 Spring框架是Java平台上一个开源的轻量级框架,它提供了许多功能强大且灵活的模块,以帮助开发者快速构建企业级应用程序。Struts是Apache软件基金会的一个开源项目,提供了一...

    Struts2之Hello World | #struts2

    5. **创建视图页面**:在WebContent目录下创建一个名为HelloWorld.jsp的JSP文件,用于展示结果。添加如下代码: ```jsp ;charset=UTF-8" language="java" %&gt; &lt;title&gt;Hello World ${message} ``` ...

    Struts2架构简介(Helloworld)

    "Helloworld"是学习任何新框架时的经典入门示例,通过它我们可以了解Struts2的基本工作原理和配置。 首先,让我们深入了解Struts2的核心概念: 1. **Action类**:在Struts2中,业务逻辑通常被封装在Action类中。一...

Global site tag (gtag.js) - Google Analytics