Hibernate是一种ORM(Object/Relation Mapping),对象关系映射,Hibernate的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行加载。每一张数据库表都需要一个*.hbm.xml映射一个持久化类。但是在新版本的Hibernate中可以利用hibernate annotation,利用注释发简化这种映射,省掉了xml文件,这跟JPA就很类似了。
以前的Hibernate配置方法:http://hi.baidu.com/amauri3389/blog/item/64a10f3804c8bdfd3b87ce2f.html
同样利用MyEclipse,Hibernate的注释方配置和使用方法如下:
新建工程:
1,工具栏File->new->Java Project->工程命名,我这里是HibernateTest,其他都默认就好了->Finish
2, 在左侧Package Explorer里面,工程名上鼠标右键->MyEclipse->Add Hibernate Capabilities->弹出的对话框设置都用默认就好了,点击next->再next->到了设置连接的数据库参数的页面(如下图)
填写完相关信息后,下一个页面时选择把自动生成的HibernateSessionFactory.java文件放在哪个包里,这里新建一个com包就好了,点击Finish就设置好了。
然后就会发现已经自动生成了hibernate.cfg.xml,同时com包里也已经有HibernateSessionFactory.java了。新建数据库,里面只有一张表test_account,有三个属性列account varchar(50), password varchar(50), balance float。其中主键是account。包结构如下图:
持久化类Test_Account.java代码如下:
package com.domain;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="test_account")
public class Test_Account {
@Id
private String account;
private String password;
private double balance;
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
其实这里的Hibernate注释跟JPA的几乎完全一样。
接下来就是在hibernate.cgf.xml文件里添加该持久化类的映射声明,具体就是在<session-factory></session-factory>里加入<mapping class="com.domain.Test_Account"/>。我这里加完之后hibernate.cgf.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">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=TestDB</property>
<property name="connection.username">sa</property>
<property name="connection.password">1234</property>
<property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="myeclipse.connection.profile">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<mapping class="com.domain.Test_Account"/>
</session-factory>
</hibernate-configuration>
然后就是增删改查,test包里面的Maintest.java代码如下:
package test;
import java.util.ArrayList;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import com.domain.Test_Account;
public class Maintest {
public static void main(String[] args) {
new Maintest().execut();
System.out.println("success");
}
private void execut()
{
SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
Session session =sessionFactory.openSession();
session.beginTransaction();
Test_Account insertaccout=new Test_Account();
insertaccout.setAccount("78512000");
insertaccout.setPassword("1234656");
insertaccout.setBalance(222.31);
session.beginTransaction();
Test_Account ta2=(Test_Account)session.get(Test_Account.class, "110110");
session.delete(ta2);//删除记录
session.save(insertaccout);//插入记录
Test_Account med=(Test_Account)session.load(Test_Account.class, "1456");
med.setPassword("tiananmen4");
session.update(med);//更新记录
ArrayList<Object> result=(ArrayList)session.createQuery("from Test_Account").list();//查询所有记录
for(int i=0;i<result.size();i++)
{
Test_Account temp=(Test_Account)result.get(i);
System.out.println(""+temp.getAccount()+" "+temp.getPassword()+" "+temp.getBalance());
}
session.getTransaction().commit();
session.close();
}
}
这里要注意的是session的获得方法,跟以前传统的方式不同,还有就是获得持久化对象的方式,使用load和get其实都可以。其他都跟传统方式利用HQL操作是一样的。
- 大小: 34.3 KB
- 大小: 8 KB
分享到:
相关推荐
hibernate注释详解 内含hibernate各种注释说明
本篇文章将深入探讨Hibernate注释的使用。 1. **属性和方法注解** Hibernate允许对类的属性或方法进行注解,以声明它们与数据库表的对应关系。属性注解通常使用`@Column`,它指定了字段在数据库表中的列名、是否...
hibernate@注解方式配置实体类时,利用javadoc接口生成数据库表及字段的注释说明,支持oracle、sqlserver、db2、mysql数据库。因用到java\lib\tools.jar,需要将该jar放入工程lib下(或者tomcat\lib下、或加入...
Eclipse中Hibernate简单配置和使用 Eclipse中配置和使用Hibernate框架是Java开发中常见的数据库持久化解决方案。本文将通过详细的步骤介绍Eclipse中配置和使用Hibernate框架,并提供一个简单的示例实现。 ...
在本案例中,我们将深入探讨Hibernate的配置与使用,以此帮助开发者更好地理解和掌握这一强大的工具。 首先,我们要了解Hibernate的核心配置文件——`hibernate.cfg.xml`。这个文件是Hibernate应用的起点,它包含了...
在 Hibernate 中配置多数据库,并自由切换,可以使用 Spring 框架来实现。下面是一个简单的配置示例: 首先,创建一个父数据源(parentDataSource),用于配置多个数据源共有的信息: ```xml ...
本教程将详细讲解如何在Java项目中配置和使用Hibernate,包括在普通Java工程和Maven工程中的配置实例。 首先,我们需要了解Hibernate的核心概念。Hibernate是一个开源的ORM框架,它可以将Java类与数据库表进行映射...
3. **配置与使用** 要使用`Hibernate-tools`,首先需要将其加入到项目的类路径中。然后,创建一个配置文件(如`hibernatetool.properties`),设置数据库连接信息、实体类输出目录、模板文件等。接着,通过命令行...
在 Hibernate 的配置文件中,我们可以使用 properties 文件或 XML 文件来配置数据库连接。下面是一个使用 properties 文件配置 Hibernate 连接数据库的示例: hibernate.connection.driver_class = org.hsqldb.jdbc...
本篇文章将深入探讨Hibernate中的注释(Annotation)使用以及级联操作,并通过一个简单的源程序实例进行解析。 ### Hibernate 注释 在Hibernate 3.x版本之后,注释成为了一种主流的元数据定义方式,替代了传统的...
在这个 demo 中,我们可能会看到一个简单的数据库脚本,用于创建与 Hibernate 实体类相对应的表。数据库脚本通常包括创建表的 SQL 语句,以及可能的索引和约束定义。 在整合 Spring 和 Hibernate 时,我们需要配置 ...
本知识点主要聚焦于Hibernate的配置文件,它是使用Hibernate进行数据库交互的基础。 首先,我们需要理解Hibernate的核心配置文件——`hibernate.cfg.xml`。这个文件是Hibernate与数据库建立连接的桥梁,它包含了...
通过上述讨论,我们可以看到,无论是实体类的字段映射,还是SessionFactory的配置,或是关联关系的定义,注释都扮演着至关重要的角色,使得开发人员能够以更加简洁、直观的方式完成Hibernate的集成与使用。
理解并熟练配置Hibernate的基本要素,如配置文件、实体类映射、Session和SessionFactory的使用,是掌握Hibernate的关键。通过实际项目中的简单配置示例,可以更好地理解和应用这些概念。在`hibernate_start`这个...
Hibernate 注释语法的简单讲解,个人的学习总结笔记
总结,Hibernate作为一个强大的ORM框架,极大地简化了Java开发者与数据库的交互,而其配置文件和jar包是实现这一目标的关键组成部分。理解和掌握Hibernate的配置、映射、工作流程及其优化技巧,对于提升Java应用的...
Hibernate连接SQLite配置步骤: 1、添加SQLite库: 1.1、将两个jar包:com.zy.hibernate.dialect.SQLiteDialect.jar、sqlite-jdbc-3.7.2.jar拷贝到“\WEB-INF\lib”文件夹下; 2、配置hibernate: 2.1、将...
### Hibernate 参数配置详解 #### 一、概述 Hibernate 是一款流行的 Java 持久层框架,它通过提供一套丰富的 API 和配置选项来简化数据库访问。本文档将深入探讨 Hibernate 的核心配置参数及其功能,帮助开发者更...
### Spring与Hibernate整合的优化配置 #### 一、Spring与Hibernate简介 - **Spring框架**:作为Java开发领域中的一款主流轻量级框架,Spring主要提供了依赖注入(DI)和面向切面编程(AOP)的功能,使得Java开发...