一 组件属性定义
实体类中某个属性属于用于自定义的类的对象。
二 组件属性应用
1、Address
public class Address {
private String postcode; //邮编
private String photo; //电话
private String address; //地址
public Address()
{
}
public Address(String postcode, String photo, String address) {
this.postcode = postcode;
this.photo = photo;
this.address = address;
}
public String getPostcode() {
return postcode;
}
public void setPostcode(String postcode) {
this.postcode = postcode;
}
public String getPhoto() {
return photo;
}
public void setPhoto(String photo) {
this.photo = photo;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
2、Students
import java.sql.Blob;
import java.util.Date;
//学生类
public class Students {
/*
* JavaBeans的四点原则
* 1.必须是公有的类
* 2.提供公有的不带参数的默认的构造方法
* 3.属性私有
* 4.属性setter/getter封装
*/
private int sid; // 学号
private String sname; // 姓名
private String gender; // 性别
private Date birthday; // 出生日期
//private String address; // 地址
private Blob picture;//照片
private Address address; // 地址
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public Blob getPicture() {
return picture;
}
public void setPicture(Blob picture) {
this.picture = picture;
}
public Students() {
}
public Students(int sid, String sname, String gender, Date birthday,
String address) {
// super();
this.sid = sid;
this.sname = sname;
this.gender = gender;
this.birthday = birthday;
//this.address = address;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "Students [sid=" + sid + ", sname=" + sname + ", gender="
+ gender + ", birthday=" + birthday + ", address=" + address
+ "]";
}
}
3、Students.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
<!-- Generated 2017-9-17 10:33:28 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="Students" table="STUDENTS">
<id name="sid" type="int">
<column name="SID" />
<generator class="native" />
<!-- <generator class="assigned" />-->
</id>
<property name="sname" type="java.lang.String">
<column name="SNAME" />
</property>
<property name="gender" type="java.lang.String">
<column name="GENDER" />
</property>
<property name="birthday" type="timestamp">
<column name="BIRTHDAY" />
</property>
<!--
<property name="address" type="java.lang.String">
<column name="ADDRESS" />
</property>
-->
<property name="picture" type="java.sql.Blob">
<column name="PICTURE" />
</property>
<component name="address" class="Address">
<property name="postcode" column="POSTCODE"></property>
<property name="photo" column="PHOTO"></property>
<property name="address" column="ADDRESS"></property>
</component>
</class>
</hibernate-mapping>
4、测试方法
@Test
public void testSaveStudents(){
//Students s= new Students(1,"张三丰","男",new Date(),"武当山");
Students s= new Students();
s.setSname("张三丰");
s.setGender("男");
s.setBirthday(new Date());
//s.setAddress("武当山");
Address address = new Address("7232","125674323","湖北");
s.setAddress(address);
session.save(s);
}
5、测试结果
相关推荐
### Hibernate中的相关组件介绍 #### 一、Hibernate配置文件(`hibernate.cfg.xml`) 在Hibernate框架中,默认的配置文件被命名为`hibernate.cfg.xml`。此配置文件是Hibernate初始化过程中的关键组成部分,它定义...
在Hibernate中,组件映射是将一个类的实例作为另一个类的一个属性进行持久化的过程。这种映射方式有助于保持数据模型的整洁和逻辑性,同时也使得数据的管理更为高效。下面我们将详细探讨Hibernate的组件映射。 一、...
在 Hibernate 中,组件之间的关联是实现对象模型与数据库表之间映射的关键部分,它包括了一对一、一对多、多对一、多对多等多种关联类型。本篇文章将深入探讨 Hibernate 组件之间的关联机制及其应用。 **一对一关联...
组件映射是Hibernate中的一种高级映射策略,用于将一个类的属性组织成一个逻辑组件,这个组件可以有自己的持久化属性。 首先,我们需要理解什么是组件(Component)。在Hibernate中,组件通常是一个没有独立生命...
单表操作包括增加(Insert)、删除(Delete)、修改(Update)和查询(Select)。在Hibernate中,这些操作可以通过Session的对应方法完成,例如`save()`、`delete()`、`update()`和`load()`/`get()`。对于查询,还...
**Hibernate单表操作实例解析** Hibernate 是一个流行的 Java ORM(对象关系映射)框架,它允许开发者使用面向对象的方式操作数据库。在这个实例中,我们将深入理解如何使用 Hibernate 对单表进行基本的操作,包括...
在这个“hibernate 单元测试批处理代码”项目中,我们将深入探讨如何使用Hibernate进行单元测试,并实现批处理操作,特别针对MySQL数据库。 首先,让我们理解Hibernate单元测试的基础。单元测试是针对软件中的最小...
Hibernate 是一个流行的 JavaEE 应用程序开发中的对象关系映射(ORM)框架,它允许开发者以面向对象的方式处理数据库操作。在SSH(Spring、Struts、Hibernate)整合的项目中,了解并优化Hibernate的配置参数对于提升...
Hibernate操作数据库时,主要通过以下几个核心组件来实现持久层操作: 1. **Session**:Session是Hibernate用来和数据库进行交互的一个轻量级对象,它相当于JDBC中的Connection。Session对象是应用程序与数据库进行...
在Hibernate中,属性配置是核心组件之一,它定义了实体类中每个字段如何映射到数据库表的列上。属性配置不仅限于简单的数据类型映射,还支持复合类型、集合、枚举等多种数据结构的映射。以下是一些关键概念和配置...
总结来说,“springmvc+hibernate多表映射”涉及到的关键技术点包括:SpringMVC的架构和配置、Hibernate的实体映射和关系定义、以及如何在SpringMVC项目中集成和使用Hibernate进行多表操作。理解和掌握这些内容,...
组件映射是Hibernate中的一种特性,允许我们将一个类的实例作为另一个类的属性,这样的类称为组件类。这种映射模式可以提高数据结构的复杂性和灵活性,使模型更贴近业务需求。 二、注解方式的组件映射 1. `@...
本项目以“Spring整合Hibernate操作商品库存表”为主题,旨在展示如何利用这三个技术进行数据库的CRUD(创建、读取、更新、删除)操作,并通过JSP页面展示数据,为初学者提供一个实践平台。 Spring是一个开源的Java...
开发者可以使用JSF提供的UI组件,如按钮、文本框等,定义页面的视图,并通过绑定这些组件到JavaBean属性来实现数据的展示和交互。 接着,Hibernate作为ORM工具,使得开发者无需直接编写SQL语句即可与数据库进行交互...
8. 继承映射:Hibernate支持不同类型的继承映射策略,包括单表策略、每个具体类策略和类表策略。文档将详细介绍这些策略及其适用场景。 9. 操作持久化数据:包括如何使用Hibernate API来增加、删除、修改和查询...
5. Hibernate实体类:开发者定义的Java类,通过@Entity注解标记为数据库表的映射对象,属性通过@Column注解与表的字段对应。 6. Session和Transaction:在Hibernate中,Session是数据库会话的代表,负责对象的持久...
在IT行业中,ORM(Object-Relational Mapping)框架如Hibernate,为开发者提供了便利,将数据库中的表映射到Java对象,简化了数据访问层的操作。本话题聚焦于如何模拟Hibernate的功能,自动生成Java Bean文件,这在...
Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,而无需编写大量的SQL代码。参数设置是优化Hibernate性能的关键环节,以下是对文档中提到的一些重要Hibernate配置参数...
Struts、Hibernate和JDBC是Java Web开发中的三个重要组件,它们各自负责应用程序的不同层面。在构建复杂的Web应用时,通常会结合使用这些技术来实现高效的数据管理。 Struts是MVC(Model-View-Controller)框架的一...
通过Hibernate,开发者可以将Java对象映射到数据库表,从而实现对数据库的操作,而无需直接编写SQL语句。这使得Java程序在处理数据库时更具有面向对象的特性,同时也提高了开发效率。Hibernate作为一个轻量级的Java ...