下面通过一个实际的列子来展示Hibernate的基本用法。
实例:
package com.ydoing.domain;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.persistence.Basic;
import javax.persistence.CollectionTable;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.MapKeyClass;
import javax.persistence.MapKeyColumn;
import javax.persistence.OrderColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import org.hibernate.annotations.Formula;
@Entity
@Table(name = "person")
public class Person {
@Id
@Column(name = "person_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(name = "name", length = 50, nullable = false)
private String name;
@Column(name = "age")
private int age;
@Column
private String sex;
@Transient
private String alias;
@Lob
@Basic(fetch = FetchType.LAZY)
private byte[] image;
@Temporal(TemporalType.DATE)
private Date birthdate;
@Formula("(select concat(p.name, p.age, p.sex) from person p where p.person_id = person_id)")
private String profile;
@ElementCollection(targetClass = String.class)
@CollectionTable(name = "pet_inf",
joinColumns = @JoinColumn(name = "person_id", nullable = false))
@Column(name = "pet_name")
@OrderColumn(name = "list_order")
private List<String> pets = new ArrayList<>();
@ElementCollection(targetClass = String.class)
@CollectionTable(name = "school_inf", joinColumns = @JoinColumn(name = "person_id", nullable = false))
@Column(name = "school_name")
@OrderColumn(name = "array_order")
private String[] schools;
@ElementCollection(targetClass = String.class)
@CollectionTable(name = "car_inf", joinColumns = @JoinColumn(name = "person_id", nullable = false))
@Column(name = "car_name")
private Set<String> cars = new HashSet<>();
@ElementCollection(targetClass = Float.class)
@CollectionTable(name = "salary_inf", joinColumns = @JoinColumn(name = "person_id", nullable = false))
@MapKeyColumn(name = "salary_type")
@MapKeyClass(String.class)
@Column(name = "money")
private Map<String, Float> payroll = new HashMap<>();
private Address address;
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public Map<String, Float> getPayroll() {
return payroll;
}
public void setPayroll(Map<String, Float> payroll) {
this.payroll = payroll;
}
public String[] getSchools() {
return schools;
}
public void setSchools(String[] schools) {
this.schools = schools;
}
public String getSex() {
return sex;
}
public Set<String> getCars() {
return cars;
}
public void setCars(Set<String> cars) {
this.cars = cars;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getProfile() {
return profile;
}
public void setProfile(String profile) {
this.profile = profile;
}
public Person() {
}
public int getId() {
return id;
}
public void setId(int 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 String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
public byte[] getImage() {
return image;
}
public void setImage(byte[] image) {
this.image = image;
}
public Date getBirthdate() {
return birthdate;
}
public void setBirthdate(Date birthdate) {
this.birthdate = birthdate;
}
public List<String> getPets() {
return pets;
}
public void setPets(List<String> pets) {
this.pets = pets;
}
public void setId(Integer id) {
this.id = id;
}
}
组件类
package com.ydoing.domain;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import org.hibernate.annotations.Parent;
@Embeddable
public class Address {
@Column(name = "person_province")
private String province;
@Column(name = "person_city")
private String city;
public Address() {
}
@Parent
private Person person;
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public Address(String province, String city) {
super();
this.province = province;
this.city = city;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
}
测试:
package com.ydoing.test
import java.util.Arrays
import java.util.List
import org.hibernate.Session
import org.hibernate.SessionFactory
import org.hibernate.Transaction
import org.hibernate.boot.registry.StandardServiceRegistryBuilder
import org.hibernate.cfg.Configuration
import org.hibernate.service.ServiceRegistry
import com.ydoing.domain.Address
import com.ydoing.domain.Person
public class Main {
public static void main(String[] args) {
Configuration conf = new Configuration()
conf.configure()
// ServiceRegistry serviceRegistry = new
// ServiceRegistryBuilder().applySettings(conf.getProperties())
// .buildServiceRegistry()
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(conf.getProperties())
.build()
SessionFactory factory = conf.buildSessionFactory(serviceRegistry)
Session session = factory.openSession()
Person person = new Person()
person.setName("Jack")
person.setAge(22)
person.setSex("男")
// 不会持久化
person.setAlias("Arron")
// List属性
String[] array = { "cat", "dog", "snake" }
List<String> pets = Arrays.asList(array)
person.setPets(pets)
// 数组属性
String[] schools = { "清华", "北大" }
person.setSchools(schools)
// Set集合属性
person.getCars().add("奥迪")
person.getCars().add("大众")
// Map属性
person.getPayroll().put("基本工资", (float) 5000)
person.getPayroll().put("绩效", (float) 3000)
person.setAddress(new Address("浙江", "杭州"))
Transaction tx = session.getTransaction()
tx.begin()
session.save(person)
Person p = (Person) session.load(Person.class, 12)
System.out.println(p.getProfile())
tx.commit()
session.close()
}
}
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
hibernate3应用实例hibernate3应用实例hibernate3应用实例hibernate3应用实例
本实例旨在为初学者提供一个基础的Hibernate使用教程,帮助理解其基本概念和工作流程。 首先,我们需要了解Hibernate的核心组件。Hibernate框架主要由以下部分构成: 1. **Hibernate配置文件(hibernate.cfg.xml)...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自在...通过阅读和实践这个实例,开发者不仅可以理解三大框架的基本用法,还能掌握实际开发中的最佳实践,为构建高质量的Java Web应用打下坚实的基础。
struts2+hibernate简单应用实例struts2+hibernate简单应用实例struts2+hibernate简单应用实例
Hibernate应用实例开发 Hibernate功能介绍
"Java-Struts2-Spring和Hibernate架构应用实例" 本文主要讲述了如何使用Struts2、Spring和Hibernate框架来实现一个图书管理系统,涵盖了基本的增加、删除、修改、查询等功能。下面是对标题、描述、标签和部分内容的...
- 数据库设计与表创建是学习Hibernate与Struts实例的基础,需要掌握SQL语言和数据库基本操作。 - 在Java Web工程中配置数据源,了解不同数据库的配置方法和差异。 - Hibernate配置文件的编写,包括SessionFactory的...
在本实例程序中,我们将深入探讨Hibernate5的主要特性和用法。 1. **Hibernate简介** Hibernate5是Hibernate框架的最新版本,它提供了一种在Java应用中管理关系数据库的高效方法。通过ORM,Hibernate将Java对象与...
这表明我们将讨论的是关于Hibernate 3的一个实例集合,Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作转换为对对象的操作,从而简化了Java应用程序中的数据库编程。 描述中的重复...
在这个“Struts+Hibernate整合登录实例”中,我们将深入探讨如何将这两个框架集成到一起,实现一个完整的登录系统。 **Struts框架** Struts是一个基于MVC设计模式的Java Web应用框架,它提供了对HTTP请求处理、业务...
这个“hibernate_first”压缩包提供了一个适合初学者的简单实例,帮助理解Hibernate的基础用法。以下是关于Hibernate入门的一些关键知识点: 1. **对象关系映射(ORM)**:ORM是将数据库中的表映射为Java类的过程,...
【hibernate,hibernate实例源码】 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。通过提供一套API和元数据配置,Hibernate可以将Java对象自动持久化到关系数据库...
在提供的文件中,"马士兵hibernate学习笔记(原版)-你信不信_我反正是信了.doc"可能包含有关Hibernate的基础知识、配置、实体映射、查询等方面的内容,是学习和理解Hibernate的好资源。"Spring和Hibernate"可能涵盖了...
这个实例将涵盖Hibernate的基础知识,包括注解方式和XML配置方式。 1. **安装与配置** 在开始之前,你需要在项目中添加Hibernate的依赖库,通常通过Maven或Gradle来管理。确保包含相应的Hibernate、JDBC驱动(对于...
【标题】"Hibernate + Struts 实例"是一个典型的Java Web开发中的整合应用,它结合了两个重要的开源框架:Hibernate作为持久层框架,Struts作为控制层框架。这种整合旨在提供一个高效、灵活且易于维护的Web应用程序...
**Spring+Hibernate+MySql应用实例详解** 在Java Web开发领域,Spring、Hibernate和MySQL是三个非常关键的技术组件。Spring作为一个全面的框架,提供了一种轻量级的控制反转(IoC)和面向切面编程(AOP)的解决方案...
【JSF集成Spring Framework和Hibernate开发应用实例】的详述 JavaServer Faces (JSF) 是一种基于MVC(Model-View-Controller)模式的Java EE应用程序用户界面框架,适用于构建复杂的Web应用。JSF提供了丰富的组件库...
通过这些实例,开发者可以学习到如何在实际项目中应用Hibernate,理解其核心机制,并提高数据库操作的效率。熟悉这些映射方式对于开发复杂的Java应用至关重要,它们帮助我们将复杂的数据库结构转化为易于管理和操作...
**标题与描述解析** 标题"Hibernate数据库操作实例.zip"表明...这个压缩包中的实例可能会涵盖以上所有或部分知识点,通过运行和分析这些实例,开发者可以深入理解Hibernate的工作原理,并提升在实际项目中的应用能力。