`

eclipse配置hibernate

阅读更多
hibernate相对于spring配置还是略显繁琐的:
对于Eclipse要求:
                           EclipseEE
数据库,我选用的是
                           mysql

新件项目:需要建成:dynamic web project

在WEB-INF/lib下需要的jar包:


整个项目的目录结构:



源码:
HelloWorld.java
package com.yy.hello;

import org.hibernate.Session;
import org.hibernate.Transaction;

import persistence.*;

public class HelloWorld {
	public static void main(String[] args) {
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction tx = session.beginTransaction();
		
		Message message = new Message("Hello World");
		Long msgId = (Long) session.save(message);
		
		tx.commit();
		session.close();
		
		HibernateUtil.shutdown();
	}
}


Message.java
package com.yy.hello;

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

	public Message(){}
	
	public Message(String text) {
		this.text = text;
	}

	public Long getId() {
		return id;
	}

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

	public String getText() {
		return text;
	}

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

	public Message getNextMessage() {
		return nextMessage;
	}

	public void setNextMessage(Message nextMessage) {
		this.nextMessage = nextMessage;
	}

}


Message.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="com.yy.hello.Message" table="MESSAGES" >
		<id 
			name="id"
			column="MESSAGE_ID">
			<generator class="increment"></generator>	
		</id>
		
		<property name="text" column="MESSAGE_TEXT"></property>
		
		<many-to-one 
			name="nextMessage"
			cascade="all"
			column="NEXT_MESSAGE_ID"
			foreign-key="FK_NEXT_MESSAGE" />

	</class>
</hibernate-mapping>         


HibernateUtil.java
package persistence;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;



public class HibernateUtil {
	
	private static SessionFactory sessionFactory;
	
	static{
		try{
			sessionFactory = new Configuration()
									.configure()
									.buildSessionFactory();
		} catch (Throwable ex) {
			throw new ExceptionInInitializerError(ex);
		}
	}
	
	public static SessionFactory getSessionFactory(){
		return sessionFactory;
	}
	
	public static void shutdown(){
		getSessionFactory().close();
	}
}



hibernate.cfg.xml
<!DOCTYPE hibernate-configuration SYSTEM   
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
	<session-factory>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_text</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		<!-- 让hibernate自动生成表 -->
		<property name="hibernate.hbm2ddl.auto">create</property>
		
		<!-- use the C3P0 connection pool provider -->
		<property name="hibernate.c3p0.min_size">5</property>
		<property name="hibernate.c3p0.max_size">20</property>
		<property name="hibernate.c3p0.timeout">300</property>
		<property name="hibernate.c3p0.max_statements">50</property>
		<property name="hibernate.c3p0.idle_test_period">3000</property>
		
		<!-- show and print nice SQL on stdout -->
		<property name="show_sql">true</property>
		<property name="format_sql">true</property>
		
		<!-- List of XML mapping files -->
		<mapping resource="com/yy/hello/Message.hbm.xml" />
	</session-factory>
</hibernate-configuration>       


log4j.properties
log4j.rootLogger=DEBUG,stdout,R

log4j.logger.org=ERROR, A1

log4j.logger.com.gc.action=DEBUG,A2

log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.File=org.log
log4j.appender.A1.MaxFileSize=500KB
log4j.appender.A1.MaxBackupIndex=50
log4j.appender.A1.Append=true
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ISO8601} - [%p] [%C{1}] - %m%n


log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.File=gc.log
log4j.appender.A2.MaxFileSize=500KB
log4j.appender.A2.MaxBackupIndex=50
log4j.appender.A2.Append=true
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{ISO8601} - [%p] [%C{1}] - %m%n

#--------------------stdout--------------------------------
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c - %m%n

#--------------------R--------------------------------
#log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
#this log file will be stored in web server's /bin directory,modify to your path which want to store.
log4j.appender.R.File=gf.log
#log4j.appender.R.datePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.R.datePattern='.'yyyy-MM-dd
log4j.appender.R.append=true
## Keep one backup file
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c - %m%n
#[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n


注意事项:
hibernate.cfg.xml放在源代码目录中,但是处在任何包之外的。
log4j.properties是放在WEB-INF/classes文件夹下的。
编译的时候,编译HelloWorld.java文件,用Java Application运行。
你需要在mysql中先建立好数据库(但在此不需要预先建立好表)。

至此,登录mysql,便可以发现表已经自动声称,并已经存入了数据。


补充:
将上面的改为注解,在此我将需要修改,并且改后的源文件贴出,读者可自行比较其中的不同之处:
Message.java
package com.yy.hello;

import javax.persistence.*;

@Entity
@Table(name = "TAB_AN")
public class Message {
	
	@Id
	@GeneratedValue
	@Column(name = "MESSAGE_ID")
	private Long id;
	
	@Column(name = "MESSAGE_TEXT")
	private String text;
	
	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "NEXT_TAB_AN")
	private Message nextMessage;

	public Message(){}
	
	public Message(String text) {
		this.text = text;
	}

	public Long getId() {
		return id;
	}

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

	public String getText() {
		return text;
	}

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

	public Message getNextMessage() {
		return nextMessage;
	}

	public void setNextMessage(Message nextMessage) {
		this.nextMessage = nextMessage;
	}

}



hibernate.cfg.xml
<!DOCTYPE hibernate-configuration SYSTEM   
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
	<session-factory>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/HBDB</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		<!-- 让hibernate自动生成表 -->
		<property name="hibernate.hbm2ddl.auto">create</property>
		
		<!-- use the C3P0 connection pool provider -->
		<property name="hibernate.c3p0.min_size">5</property>
		<property name="hibernate.c3p0.max_size">20</property>
		<property name="hibernate.c3p0.timeout">300</property>
		<property name="hibernate.c3p0.max_statements">50</property>
		<property name="hibernate.c3p0.idle_test_period">3000</property>
		
		<!-- show and print nice SQL on stdout -->
		<property name="show_sql">true</property>
		<property name="format_sql">true</property>
		
		<!-- List of XML mapping files -->
		<mapping class="com.yy.hello.Message" />
			<mapping package="com/yy/hello" />
	</session-factory>
</hibernate-configuration>       


还需要手动删除Message.hbm.xml文件,不需要导入新的包,编译,运行,在数据库里面会发现已经有了新的TAB_AN。
  • 大小: 12.4 KB
  • 大小: 17.8 KB
0
0
分享到:
评论

相关推荐

    Eclipse上使用Hibernate

    本文将指导您在 Eclipse 环境中使用 Hibernate,包括下载和安装 Hibernate、配置 Hibernate、生成实体类和 DAO 类、添加映射资源等步骤。 下载和安装 Hibernate 首先,您需要下载 Hibernate 并将其添加到项目中。...

    Eclipse 配置Hibernate3 插件,生成mapping 和java

    #### 四、配置 Hibernate 环境 1. **创建 Eclipse 工程**:打开 Eclipse,创建一个新的 Java 工程,例如命名为 `hibernate-Demo`。 2. **设置工程结构**:在新建的工程中创建 `src`, `bin`, `lib`, `db` 等必要的...

    eclipse配置hibernate需要的jar

    在Java开发环境中,Eclipse是一款广泛使用的集成开发环境(IDE),而Hibernate则是一个优秀的对象关系映射(ORM)框架,它极大地简化了数据库操作。在使用Eclipse进行Hibernate项目开发时,正确配置所需的jar包是至...

    使用Eclipse进行Hibernate开发

    本文将详细介绍如何在Eclipse集成开发环境中设置和使用Hibernate进行开发。 #### 二、环境搭建 ##### 1. Eclipse安装与配置 - **Eclipse IDE**: 首先确保已经安装了最新版本的Eclipse IDE for Java Developers。 -...

    eclipse项目Hibernate实例

    1. **Eclipse环境配置**:首先,你需要知道如何在Eclipse中安装Hibernate插件,设置相应的构建路径,导入所需的Hibernate库。 2. **Hibernate配置**:理解`hibernate.cfg.xml`文件,它是Hibernate的主配置文件,...

    eclipse 配置 hibernate tools 反向生成 pojo类 注解

    在Java开发中,Eclipse是一款广泛使用的集成开发环境(IDE),而Hibernate则是一个优秀的对象关系映射(ORM)框架,它极大地简化了数据库操作。为了提高开发效率,开发者经常使用Hibernate Tools来反向工程数据库...

    Eclipse中Hibernate简单配置和使用

    Eclipse中配置和使用Hibernate框架是Java开发中常见的数据库持久化解决方案。本文将通过详细的步骤介绍Eclipse中配置和使用Hibernate框架,并提供一个简单的示例实现。 Hibernate简介 Hibernate是一个开放源代码的...

    Eclipse 在线配置 Hibernate Tools

    Eclipse 是一个广泛使用的集成开发环境(IDE),尤其在Java编程领域中,它提供了丰富的功能支持。Hibernate 是一个流行的持久化框架,用于简化数据库与Java对象之间的交互。Hibernate Tools 是一组 Eclipse 插件,...

    Hibernate_Tools_for_Eclipse插件的安装和使用

    Hibernate_Tools_for_Eclipse插件的安装和使用 Hibernate_Tools_for_Eclipse插件是 Eclipse 中的一个插件,用于支持 Hibernate 开发。它提供了许多有用的功能,如Hibernate配置文件的创建、实体类的生成、SQL语句...

    Eclipse下配置和使用Hibernate_Tools

    Eclipse 下配置和使用 Hibernate Tools Hibernate 是一个非常流行的 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到关系数据库中。Eclipse 是一个功能强大且广泛使用的集成开发环境(IDE),它提供...

    在Eclipse中搭建hibernate项目环境步骤

    在 Eclipse 中搭建 Hibernate 项目环境步骤 在本文中,我们将详细介绍如何在 Eclipse 中搭建 Hibernate 项目环境的步骤。Hibernate 是一个流行的 Java 持久层框架,提供了对数据库的访问和操作功能。通过本文,读者...

    利用Eclipse 开发Hibernate 应用程序

    为了在Eclipse中使用Hibernate,我们需要安装Hibernate插件。"EclipseHibernateSynchronizer.pdf"文件可能就是这个插件的用户指南或安装教程,它可以帮助我们将Hibernate集成到Eclipse中,实现数据库模型与Java类的...

    利用Eclipse开发Hibernate应用程序

    这一步骤完成后,项目中将包含映射文件、POJO类文件以及Hibernate配置文件,构成了使用Hibernate框架进行数据库操作的基础。 此外,HibernateSyn插件在项目中的使用还包括对Hibernate的配置文件进行更新,添加对新...

    Eclipse快速上手Hibernate

    本教程将带你快速了解如何在Eclipse中配置和使用Hibernate。 ### 1. 安装Hibernate插件 首先,我们需要在Eclipse中安装Hibernate插件。你可以通过Eclipse的内置软件更新功能来查找并安装Hibernate相关的插件,如...

    eclipse_hibernate3.3IDE插件

    这款Eclipse插件是为了更好地集成Hibernate框架到Eclipse集成开发环境中,提供了一套便捷的工具集,使得在Eclipse中开发和调试Hibernate应用变得更为高效。 **插件兼容性** 该插件声明完全适用于Eclipse 3.7版本。...

    使用eclipse搭建Hibernate框架所需要的jar包

    本文将详细介绍如何在Eclipse环境中搭建Hibernate,并列举出支持Oracle数据库所需的19个jar包。 首先,我们需要理解Hibernate的工作原理。Hibernate通过提供一个对象层,将Java类映射到数据库表,这样开发者就可以...

    在eclipse中使用hibernate

    ### 在Eclipse中使用Hibernate的知识点详解 #### 1. 持久化框架产生的背景和现状 在Java开发过程中,特别是在涉及数据库交互时,由于数据库本身的特性(通常是关系型数据库),与Java语言的面向对象特性之间存在...

    Eclipse Hibernate基本配置及简单实现

    本篇将介绍如何在Eclipse环境中配置和使用Hibernate进行简单的数据操作。 ### 一、Hibernate环境搭建 1. **下载Hibernate**: 首先,我们需要从官方网站或Maven仓库下载Hibernate的JAR包,包括hibernate-core、...

    eclipse 下的hibernate tools

    11. **源码查看**:由于标签中有“源码”,这可能意味着在使用Hibernate Tools时,开发者会接触到并可能需要修改或理解相关的源代码,以便于定制或者优化工具的功能。 12. **工具的持续更新**:随着Hibernate框架的...

Global site tag (gtag.js) - Google Analytics