下面通过一个实际的列子来展示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应用实例
Hibernate3.6应用实例详解
Struts2、Spring和Hibernate应用实例
struts2+hibernate简单应用实例struts2+hibernate简单应用实例struts2+hibernate简单应用实例
Hibernate应用实例开发 Hibernate功能介绍
这是一个关于Struts+hibernate的整合实例,登录
JSF集成Spring_Framework和Hibernate开发应用实例
java-Struts2-Spring和Hibernate架构应用实例.doc
本书 大量的实例代码更容易提高读者对 hibernate的理解,从而提高;从基础的入门到 各个实例,包含hibernate的所有用法;
struts hibernate spring 经典实例整合应用。非常经典,非常有用,企业项目使用中。
Hibernate Web应用的开发一般经过以下几个步骤: (1)创建数据库。 (2)将Hibernate所需的JAR包复制到WEB-INF/lib下。 (3)创建Hibernate的配置文件。 (4)利用Hibernate的第三方工具或Eclipse的有关插件从...
Struts2 Spring和Hibernate应用实例
JSF+Hibernate开发WEB应用比用SSH开发WEB,更简单,更易上手。本源码通过用户登录的实例,展示了采用JSF和HIBERNATE技术,搭建WEB应用系统的方法。数据库采用SQL2008,实例包含了创建user的SQL脚本。
现在就将笔者使用Myeclipse工具应用struts2 + spring2 + hibernate3 实现CRUD操作的步骤一一纪录下来,为初学者少走弯路略尽绵薄之力!在本文中,笔者将Struts2.0.6、Spring2.0.6和Hibernate3.1进行整合,希望通过...
birt应用hibernate完整实例(下了决不会后悔)09-01-01