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框架的基本用法。Hibernate是一个强大的Java对象关系映射(ORM)框架,它简化了数据库与Java应用程序之间的交互,使开发者可以...
在“1、springboot入门案例helloworld与集成hibernate”这个主题中,我们将学习如何创建一个简单的 SpringBoot 项目,并集成 Hibernate 进行数据库操作。Hibernate 是一个强大的 ORM(对象关系映射)框架,它可以将 ...
本篇文章将带你入门Struts2,通过创建一个简单的"HelloWorld"示例来理解其核心概念。 首先,了解Struts2框架的基本组成: 1. **Action类**:这是业务逻辑的入口点,处理用户请求并返回结果。在我们的"HelloWorld...
## 示例:Hibernate HelloWorld 假设我们有一个简单的User实体,包含id、name和email属性。我们可以按照以下步骤进行操作: 1. 创建User实体类,添加`@Entity`和字段注解。 2. 编写`hibernate.cfg.xml`,配置...
【hibernate helloworld入门级代码】是针对初学者的一个简单示例,旨在帮助理解Hibernate这一流行的Java对象关系映射(ORM)框架的基本用法。在这个项目中,我们将探讨Hibernate如何将Java对象与数据库中的记录关联...
本篇文章将深入探讨在"hibernate-helloworld"项目中的核心概念与实践步骤,帮助初学者快速入门Hibernate。 首先,我们需要了解Hibernate的核心理念:对象关系映射。ORM是连接Java应用程序和关系数据库的桥梁,它...
"Hibernate的HelloWorld版"是学习Hibernate的入门教程,通过一个简单的例子,帮助初学者理解Hibernate的基本工作原理和配置。 **描述:“如果你没学过Hibernate,但是又想看一下它的最简单形式。这个应该适合你。”...
在"SpringMVC入门很简单之HelloWorld"这个主题中,我们将探讨如何设置一个基本的SpringMVC项目并实现简单的"Hello, World!"展示。 首先,项目结构至关重要。在给定的文件名称列表中,我们看到了几个关键目录: 1. ...
总结来说,"Hibernate 4.0版HelloWorld"项目是一个简单的入门示例,它涵盖了Hibernate 4.0的基本使用,包括Maven配置、实体类创建、配置文件编写、会话管理以及基本的数据操作。通过这个项目,开发者可以学习到如何...
**SpringBoot之HelloWorld的Maven项目(Eclipse)** SpringBoot是由Pivotal团队开发的一个框架,旨在简化Spring应用程序的初始搭建以及开发过程。它集成了大量的常用库,如数据访问、安全、Web等,使得开发者可以...
HelloWorld helloWorld = (HelloWorld) context.getBean("helloWorld"); helloWorld.sayHello(); } } ``` 当我们运行`MainApp`时,Spring容器会加载配置文件,创建`HelloWorld`实例,并调用其`sayHello`方法,...
这个例子特别适合初学者,旨在帮助他们快速理解和入门Hibernate框架。 **标签关键词:“hibernate”**:Hibernate是一个流行的Java ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来操作数据库,避免了...
总结来说,SpringBoot HelloWorld是一个简单的入门示例,展示了如何利用Spring Boot快速构建一个运行的Web应用。通过这个示例,开发者能够理解Spring Boot的核心概念,包括自动配置、依赖注入和RESTful API的创建。...
SSH框架整合入门——HelloWorld与两种事务管理方式详解 SSH框架是Java开发中常见的三大开源框架集成,包括Spring、Struts2和Hibernate。这个框架组合提供了强大的MVC(Model-View-Controller)架构支持,方便开发者...
本节我们将探讨SpringData的概述以及如何通过一个简单的"HelloWorld"示例来入门。 SpringData的核心目标是通过减少样板代码,使数据访问更加简单、高效。它支持多种数据存储技术,包括JPA(Java Persistence API)...
Spring集成Struts与Hibernate入门详解 Spring框架是Java平台上一个开源的轻量级框架,它提供了许多功能强大且灵活的模块,以帮助开发者快速构建企业级应用程序。Struts是Apache软件基金会的一个开源项目,提供了一...
5. **创建视图页面**:在WebContent目录下创建一个名为HelloWorld.jsp的JSP文件,用于展示结果。添加如下代码: ```jsp ;charset=UTF-8" language="java" %> <title>Hello World ${message} ``` ...
"Helloworld"是学习任何新框架时的经典入门示例,通过它我们可以了解Struts2的基本工作原理和配置。 首先,让我们深入了解Struts2的核心概念: 1. **Action类**:在Struts2中,业务逻辑通常被封装在Action类中。一...