`

hibernate学习之1:1映射

阅读更多
1、hibernate1:1映射(外键关联)

2、包结构:


3、源代码:
Account.java
package domain;

public class Account {
	private String id;
	private String acctNo;
	private double bal;
	private User owner;

	public Account() {
	}

	public Account(String acctNo, double bal) {
		this.acctNo = acctNo;
		this.bal = bal;
	}

	public String getId() {
		return id;
	}

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

	public String getAcctNo() {
		return acctNo;
	}

	public void setAcctNo(String acctNo) {
		this.acctNo = acctNo;
	}

	public double getBal() {
		return bal;
	}

	public void setBal(double bal) {
		this.bal = bal;
	}

	public User getOwner() {
		return owner;
	}

	public void setOwner(User owner) {
		this.owner = owner;
	}

}

Account.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 package="domain">
	<class name="Account" table="ACCOUNT">
		<id name="id">
			<column name="id"></column>
			<generator class="uuid"></generator>
		</id>
		<property name="acctNo" column="ACCTNO"></property>
		<property name="bal" column="BAL"></property>
		<one-to-one name="owner" property-ref="acct"></one-to-one>
	</class>
	
</hibernate-mapping>

User.java
package domain;

public class User {
	private String id;
	private String name;
	private int age;
	private Account acct;

	public User() {
	}

	public User(String name, int age) {
		this.age = age;
		this.name = name;
	}

	public String getId() {
		return id;
	}

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

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Account getAcct() {
		return acct;
	}

	public void setAcct(Account acct) {
		this.acct = acct;
	}

}

User.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 package="domain">
	<class name="User" table="USERS">
		<id name="id" column="ID">
			<generator class="uuid"></generator>
		</id>
		<property name="name" column="NAME"></property>
		<property name="age" column="AGE"></property>
		<many-to-one name="acct" column="FID" unique="true"></many-to-one>
	</class>
</hibernate-mapping>

工具类HbnUtil.java
package util;

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

public class HbnUtil {
	private static SessionFactory sessionFactory;
	private HbnUtil(){}
	public static synchronized SessionFactory getSessionFactory(){
		if(sessionFactory==null){
			sessionFactory=new Configuration().configure().buildSessionFactory();
		}
		return sessionFactory;
	}
}

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

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

    <session-factory>
        <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
        <property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:myorcl</property>
        <property name="connection.username">myorcl</property>
        <property name="connection.password">embed</property>
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    	<property name="show_sql">true</property>
    	<property name="format_sql">true</property>
		<mapping resource="domain/Account.hbm.xml"/>
		<mapping resource="domain/User.hbm.xml"/>
    </session-factory>

</hibernate-configuration>

测试类:
package test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import domain.Account;
import domain.User;

public class TestUser {
	public static void main(String[]args){
		SessionFactory sf=util.HbnUtil.getSessionFactory();
		Session session=sf.openSession();
		session.beginTransaction();
		
		User user=new User("newuser",24);
		Account acct=new Account("acct_04",1000.0);
		user.setAcct(acct);
		
		session.save(acct);
		session.save(user);
		
		session.getTransaction().commit();
		session.close();
		sf.close();
	}
}

  • 大小: 16.2 KB
分享到:
评论

相关推荐

    hibernate知识复习三:关联映射:一对多/多对一

    在提供的"src"文件中,虽然没有具体的代码,但通常源码会包含实体类的定义以及它们之间的注解配置,这可以帮助我们学习如何在实际项目中应用这些关联映射。 六、工具支持 在开发过程中,使用像IntelliJ IDEA这样的...

    Hibernate初之单表映射学习例子

    "Hibernate初之单表映射学习例子" 这个标题表明我们将探讨的是Hibernate框架在处理单个数据库表映射的基础教程。Hibernate是Java开发中一个流行的对象关系映射(ORM)工具,它允许开发者用面向对象的方式来操作...

    妙解Hibernate 3.x:叩响面向对象思想之门 PDF

    1. Hibernate基本概念:介绍Hibernate的核心理念,包括对象关系映射(ORM)的基本原理,以及它如何将Java对象与数据库表进行映射。 2. Hibernate配置:讲解如何配置Hibernate的XML配置文件,包括数据库连接、实体类...

    hibernate学习资料大全

    【hibernate学习资料大全】 Hibernate 是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。...希望这些资料能对CSDN的网友们在Hibernate学习之路上提供宝贵的帮助。

    hibernate关联映射详解

    包含《多对多双向关联映射》《多对一单向关联映射》《多对一双向关联映射》《一对多单向关联映射》等文档,并有图解及例子,非常适合新手学习,尤其是刚刚接触hibernate,对映射关系不清楚的。。。。

    Hibernate基础和入门:新建表和插入表

    1. **Hibernate简介**:Hibernate是一个开源的ORM框架,它通过提供对象-关系映射,将Java类与数据库表关联起来,使得开发者可以使用面向对象的方式来处理数据库操作。 2. **环境配置**:在使用Hibernate之前,需要...

    hibernate学习入门一对多实体映射源码

    在这个“hibernate学习入门之一对多实体映射源码”教程中,我们将深入探讨如何在Hibernate中设置和管理一对多的关系。 一、Hibernate简介 Hibernate是Java开发人员用于处理数据库操作的强大工具,通过它,我们可以...

    hibernate 映射关系学习入门 多对多实体映射

    通过源码学习,你可以深入了解Hibernate如何处理多对多关系的细节,从而更好地应用到实际项目中。在实际编程时,注意合理设计实体关系,确保数据的一致性和完整性,同时利用Hibernate的便捷性提高开发效率。

    Spring+Hibernate 自动映射

    1. **对象关系映射**:Hibernate通过XML映射文件或注解,将数据库表与Java对象对应起来,实现了数据库操作的对象化,使得开发者可以像操作普通Java对象一样操作数据库记录。 2. **查询语言(HQL)**:Hibernate提供...

    hibernate映射和查询

    学习 Hibernate 的映射和查询,可以帮助开发者更高效地处理数据库操作,减少手动 SQL 编写的工作量,提高代码的可维护性和可移植性。对于初学者而言,理解并熟练掌握这些概念是成为合格的 Java 开发者的必经之路。...

    Hibernate学习.pdf

    ### Hibernate学习知识点详解 #### 1. Hibernate简介与安装配置 **标题:** Hibernate学习 **描述:** Hibernate 学习 Hibernate学习.pdf **标签:** Hibernate 学习 Hibernate学习.pdf **知识点详解:** ####...

    hibernate关联映射实例

    1. **一对多关联映射**: 在现实世界中,一个实体可能会与多个其他实体相关联,比如一个用户可以有多个订单。在Hibernate中,我们通过`@OneToMany`注解来实现这种关系。这个注解通常放在拥有众多子项的一方,配置`...

    Hibernate继承映射代码

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者用面向对象的方式处理数据库操作。在大型项目中,由于业务需求复杂,我们常常会使用到类的继承来组织代码结构,而Hibernate提供了对...

    hibernate映射关系总结

    hibernate开发的关系: one-to-one,many-to-one,many-to-many学习经验总结

    Hibernate学习笔记整理

    Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...

    Hibernate映射树形结构

    通过学习这些材料,开发者可以更深入地理解Hibernate映射树形结构的具体实现,并在自己的项目中灵活应用。 总结来说,映射树形结构在Hibernate中是一项重要技能,它涉及到对数据库设计的理解和ORM框架的熟练运用。...

    Hibernate学习笔记特别详细

    《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...

    Hibernate高级映射实例

    通过深入学习和实践Hibernate的高级映射,开发者能够更好地设计和实现数据模型,从而提升应用程序的性能和可维护性。对于初学者,可以从简单的例子开始,逐渐增加复杂度,通过实际操作来加深理解和记忆。而提供的...

    hibernate 学习用例1

    **hibernate 学习用例1** 在Java开发领域,Hibernate是一个强大的对象关系映射(ORM)框架,它极大地简化了数据库操作。本学习用例1是为初学者设计的,旨在帮助菜鸟们理解Hibernate的基本概念和用法。通过这个实例...

    hibernate学习一:简单应用1配置文件版

    本篇文章将探讨“Hibernate学习一:简单应用1配置文件版”,主要涵盖如何配置Hibernate,创建实体类,以及进行基本的CRUD操作。 首先,我们来了解Hibernate的核心配置文件——`hibernate.cfg.xml`。这个文件包含了...

Global site tag (gtag.js) - Google Analytics