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
分享到:
相关推荐
本文将指导您在 Eclipse 环境中使用 Hibernate,包括下载和安装 Hibernate、配置 Hibernate、生成实体类和 DAO 类、添加映射资源等步骤。 下载和安装 Hibernate 首先,您需要下载 Hibernate 并将其添加到项目中。...
#### 四、配置 Hibernate 环境 1. **创建 Eclipse 工程**:打开 Eclipse,创建一个新的 Java 工程,例如命名为 `hibernate-Demo`。 2. **设置工程结构**:在新建的工程中创建 `src`, `bin`, `lib`, `db` 等必要的...
在Java开发环境中,Eclipse是一款广泛使用的集成开发环境(IDE),而Hibernate则是一个优秀的对象关系映射(ORM)框架,它极大地简化了数据库操作。在使用Eclipse进行Hibernate项目开发时,正确配置所需的jar包是至...
本文将详细介绍如何在Eclipse集成开发环境中设置和使用Hibernate进行开发。 #### 二、环境搭建 ##### 1. Eclipse安装与配置 - **Eclipse IDE**: 首先确保已经安装了最新版本的Eclipse IDE for Java Developers。 -...
1. **Eclipse环境配置**:首先,你需要知道如何在Eclipse中安装Hibernate插件,设置相应的构建路径,导入所需的Hibernate库。 2. **Hibernate配置**:理解`hibernate.cfg.xml`文件,它是Hibernate的主配置文件,...
在Java开发中,Eclipse是一款广泛使用的集成开发环境(IDE),而Hibernate则是一个优秀的对象关系映射(ORM)框架,它极大地简化了数据库操作。为了提高开发效率,开发者经常使用Hibernate Tools来反向工程数据库...
Eclipse中配置和使用Hibernate框架是Java开发中常见的数据库持久化解决方案。本文将通过详细的步骤介绍Eclipse中配置和使用Hibernate框架,并提供一个简单的示例实现。 Hibernate简介 Hibernate是一个开放源代码的...
Eclipse 是一个广泛使用的集成开发环境(IDE),尤其在Java编程领域中,它提供了丰富的功能支持。Hibernate 是一个流行的持久化框架,用于简化数据库与Java对象之间的交互。Hibernate Tools 是一组 Eclipse 插件,...
Hibernate_Tools_for_Eclipse插件的安装和使用 Hibernate_Tools_for_Eclipse插件是 Eclipse 中的一个插件,用于支持 Hibernate 开发。它提供了许多有用的功能,如Hibernate配置文件的创建、实体类的生成、SQL语句...
Eclipse 下配置和使用 Hibernate Tools Hibernate 是一个非常流行的 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到关系数据库中。Eclipse 是一个功能强大且广泛使用的集成开发环境(IDE),它提供...
在 Eclipse 中搭建 Hibernate 项目环境步骤 在本文中,我们将详细介绍如何在 Eclipse 中搭建 Hibernate 项目环境的步骤。Hibernate 是一个流行的 Java 持久层框架,提供了对数据库的访问和操作功能。通过本文,读者...
为了在Eclipse中使用Hibernate,我们需要安装Hibernate插件。"EclipseHibernateSynchronizer.pdf"文件可能就是这个插件的用户指南或安装教程,它可以帮助我们将Hibernate集成到Eclipse中,实现数据库模型与Java类的...
这一步骤完成后,项目中将包含映射文件、POJO类文件以及Hibernate配置文件,构成了使用Hibernate框架进行数据库操作的基础。 此外,HibernateSyn插件在项目中的使用还包括对Hibernate的配置文件进行更新,添加对新...
本教程将带你快速了解如何在Eclipse中配置和使用Hibernate。 ### 1. 安装Hibernate插件 首先,我们需要在Eclipse中安装Hibernate插件。你可以通过Eclipse的内置软件更新功能来查找并安装Hibernate相关的插件,如...
这款Eclipse插件是为了更好地集成Hibernate框架到Eclipse集成开发环境中,提供了一套便捷的工具集,使得在Eclipse中开发和调试Hibernate应用变得更为高效。 **插件兼容性** 该插件声明完全适用于Eclipse 3.7版本。...
本文将详细介绍如何在Eclipse环境中搭建Hibernate,并列举出支持Oracle数据库所需的19个jar包。 首先,我们需要理解Hibernate的工作原理。Hibernate通过提供一个对象层,将Java类映射到数据库表,这样开发者就可以...
### 在Eclipse中使用Hibernate的知识点详解 #### 1. 持久化框架产生的背景和现状 在Java开发过程中,特别是在涉及数据库交互时,由于数据库本身的特性(通常是关系型数据库),与Java语言的面向对象特性之间存在...
本篇将介绍如何在Eclipse环境中配置和使用Hibernate进行简单的数据操作。 ### 一、Hibernate环境搭建 1. **下载Hibernate**: 首先,我们需要从官方网站或Maven仓库下载Hibernate的JAR包,包括hibernate-core、...
11. **源码查看**:由于标签中有“源码”,这可能意味着在使用Hibernate Tools时,开发者会接触到并可能需要修改或理解相关的源代码,以便于定制或者优化工具的功能。 12. **工具的持续更新**:随着Hibernate框架的...