1. 一对多的对象关系 customer and order
一个customer有多个订单
public class Customer {
private Set orders=new HashSet();
public Customer() {}
public Set getOrders() {
return this.orders;
}
public void setOrders(Set orders) {
this.orders = orders;
}
}
2. 一对一的对象关系
一个订单只能属于一个客户
public class Order {
private Customer customer;
public Order() {}
public Customer getCustomer() {
return this.customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
}
3. 当持久化对象时,应该考虑与它关联的对象.
添加一个新的客户对象
public void saveCustomer(Customer customer) throws Exception {
Connection con=null;
PreparedStatement stmt=null;
try {
con=getConnection();
con.setAutoCommit(false);
if(customer.getName()==null)
throw new BusinessException("");
long customerId=getNextId(con,"CUSTOMERS");
//首先向数据库添加customer对象
stmt=con.prepareStatement("insert into CUSTOMERS(ID,NAME,AGE) values(?,?,?)");
stmt.setLong(1,customerId);
stmt.setString(2,customer.getName());
stmt.setInt(3,customer.getAge());
stmt.execute();
//得到customer对象的所有订单,向数据库中添加
Iterator iterator =customer.getOrders().iterator();
while (iterator.hasNext() ) {
Order order=(Order)iterator.next();
if(order.getOrderNumber()==null)
throw new BusinessException("");
long orderId=getNextId(con,"ORDERS");
stmt=con.prepareStatement("insert into ORDERS(ID,ORDER_NUMBER,PRICE,CUSTOMER_ID)values(?,?,?,?)");
stmt.setLong(1,orderId);
stmt.setString(2,order.getOrderNumber());
stmt.setDouble(3,order.getPrice());
stmt.setLong(4,customerId);
stmt.execute();
}
con.commit();
}catch(Exception e){
e.printStackTrace();
try{
con.rollback();
}catch(SQLException sqlex){
sqlex.printStackTrace(System.out);
}
throw e;
}finally{
try{
stmt.close();
con.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
4. 删除customer对象时也应该考虑到这种关系
public void deleteCustomer(Customer customer) throws Exception {
Connection con=null;
PreparedStatement stmt=null;
try {
con=getConnection();
con.setAutoCommit(false);
//先删除订单
stmt=con.prepareStatement("delete from ORDERS where "
+"CUSTOMER_ID=?" );
stmt.setLong(1,customer.getId().longValue());
stmt.executeUpdate();
//然后删除客户对象
stmt=con.prepareStatement("delete from CUSTOMERS where "
+"ID=?" );
stmt.setLong(1,customer.getId().longValue());
stmt.executeUpdate();
con.commit();
}catch(Exception e){
try{
con.rollback();
}catch(SQLException sqlex){
sqlex.printStackTrace(System.out);
}
throw e;
}finally{
try{
stmt.close();
con.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
分享到:
相关推荐
通过阅读《精通Hibernate:Java对象持久化详解》,开发者可以深入了解Hibernate的工作原理,学习如何有效地使用它来实现对象持久化,从而提高开发效率,降低维护成本。这本书对于Java Web开发者,尤其是初次接触...
《精通Hibernate:Java对象持久化技术详解》这本书深入剖析了Hibernate这一流行的Java对象关系映射(ORM)框架,旨在帮助开发者全面理解并熟练掌握Hibernate的使用。Hibernate是Java开发中的重要工具,它简化了...
精通 Hibernate:Java 对象持久化技术详解 第2版 学习Hibernate必备得一本书
《精通Hibernate:Java对象持久化技术详解(第2版)》是一本深入解析Java对象持久化框架Hibernate的专业书籍。源码文件涵盖了多个章节,包括chapter1到chapter10,这表明该书通过实例代码详细讲解了Hibernate的核心...
### 知识点二:Java对象持久化的概念与实现 - **概念**:对象持久化是指将程序中的对象状态保存到外部存储介质的过程,以便在系统重启后仍然可以恢复这些对象的状态。 - **实现方式**:在Java中,常见的对象持久化...
通过学习《精通Hibernate:Java对象持久化技术详解》,开发者能够掌握如何利用Hibernate优化数据库操作,提升开发效率,减少错误,并实现高效、可靠的Java应用程序。在实际项目中,理解并熟练运用Hibernate的各种...
《Java精通Hibernate对象持久化技术权威指南》是一本深度探讨Java开发中如何高效地使用Hibernate进行对象持久化的专业书籍。本书旨在帮助Java开发者熟练掌握Hibernate框架,实现数据库操作的简化和自动化,提升软件...
【精通Hibernate:Java对象持久化技术】主要涵盖了Java应用程序的分层体系结构、软件模型以及对象持久化的概念,特别是如何使用Hibernate这一ORM框架进行持久化操作。以下是详细的知识点解析: 1. **应用程序分层...
在阅读《精通Hibernate:Java对象持久化技术详解》的同时,可以结合“爱书吧-2万本图书免费下载.url”这个资源链接,寻找更多相关的学习资料和实战案例,以加深理解和提高技能。总的来说,这是一份非常全面且实用的...
《精通Hibernate:Java持久化对象技术详解[第二版]》是一部深入探讨Hibernate框架的专业书籍,旨在帮助Java开发者熟练掌握和运用这一强大的ORM(Object-Relational Mapping)工具。Hibernate是Java开发领域中广泛...
【标题】基于Hibernate的Java对象持久化技术在农户征信管理平台设计中的应用 【内容详解】 在现代软件开发中,数据库管理和数据持久化是至关重要的环节。Hibernate作为一款优秀的Java对象关系映射(ORM)框架,极...
《精通 Hibernate:Java 对象持久化技术详解(第2版)》是一本深入解析Java对象持久化技术的权威著作,特别适合JavaWeb开发者学习。Hibernate作为Java领域中最流行的ORM(对象关系映射)框架,它简化了数据库操作,...
标题中的“自己写的一个持久化层”指的是作者创建了一个用于数据存储和检索的软件组件,类似于知名的ORM(对象关系映射)框架Hibernate。持久化层是应用程序中的一个关键部分,它负责将业务对象的数据保存到数据库中...
例如,使用`save()`或`saveOrUpdate()`方法可以将对象持久化到数据库,`get()`和`load()`用于根据ID获取对象,`update()`和`merge()`用于更新对象,`delete()`则用于删除对象。 事务管理是数据库操作中的关键部分。...
JavaBean在持久化中的作用主要是作为数据载体,通过ORM(对象关系映射)框架如Hibernate,将Java对象转换成数据库中的记录。 ### XML XML(Extensible Markup Language)是一种结构化的数据表示语言,常用于配置...
Java持久化框架是连接对象导向编程(OOP)系统与关系型数据库管理系统的桥梁,用于处理数据持久化问题。在Java领域,有多种框架可供选择,包括Entity Enterprise Java Beans(EJB)、Java Persistence API(JPA)、...
本教程“hibernate:java持久化对象详解01”聚焦于理解Hibernate如何将Java对象持久化到数据库中。 首先,让我们了解一下什么是持久化对象。在Java中,持久化对象是指那些状态可以被保存到持久存储介质(如数据库)...
它通过将Java类映射到数据库表,实现了对象持久化,使得开发者可以像操作普通Java对象一样处理数据库中的数据,从而降低了对SQL的依赖。 **一、Hibernate概述** Hibernate是由Jboss公司开发的一个开放源代码的对象...
Hibernate是一个基于JDBC的ORM框架,它通过XML或注解定义对象-关系映射,将Java对象转换为数据库记录,反之亦然。它封装了JDBC,提供了更高级别的API,使得数据库操作更加简单和高效。Hibernate支持多种数据库,包括...