`
隐形的翅膀
  • 浏览: 497001 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java对象持久化学习二

阅读更多
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对象持久化详解.zip

    通过阅读《精通Hibernate:Java对象持久化详解》,开发者可以深入了解Hibernate的工作原理,学习如何有效地使用它来实现对象持久化,从而提高开发效率,降低维护成本。这本书对于Java Web开发者,尤其是初次接触...

    精通Hibernate:Java对象持久化技术详解.pdf

    《精通Hibernate:Java对象持久化技术详解》这本书深入剖析了Hibernate这一流行的Java对象关系映射(ORM)框架,旨在帮助开发者全面理解并熟练掌握Hibernate的使用。Hibernate是Java开发中的重要工具,它简化了...

    精通 Hibernate:Java 对象持久化技术详解 第2版

    精通 Hibernate:Java 对象持久化技术详解 第2版 学习Hibernate必备得一本书

    精通Hibernate:Java对象持久化技术详解(第2版)源码1

    《精通Hibernate:Java对象持久化技术详解(第2版)》是一本深入解析Java对象持久化框架Hibernate的专业书籍。源码文件涵盖了多个章节,包括chapter1到chapter10,这表明该书通过实例代码详细讲解了Hibernate的核心...

    (高清版)精通 Hibernate_Java 对象持久化技术详解(第2版).pdf

    ### 知识点二:Java对象持久化的概念与实现 - **概念**:对象持久化是指将程序中的对象状态保存到外部存储介质的过程,以便在系统重启后仍然可以恢复这些对象的状态。 - **实现方式**:在Java中,常见的对象持久化...

    精通Hibernate:Java对象持久化技术详解

    通过学习《精通Hibernate:Java对象持久化技术详解》,开发者能够掌握如何利用Hibernate优化数据库操作,提升开发效率,减少错误,并实现高效、可靠的Java应用程序。在实际项目中,理解并熟练运用Hibernate的各种...

    Java 精通Hibernate对象持久化技术权威指南

    《Java精通Hibernate对象持久化技术权威指南》是一本深度探讨Java开发中如何高效地使用Hibernate进行对象持久化的专业书籍。本书旨在帮助Java开发者熟练掌握Hibernate框架,实现数据库操作的简化和自动化,提升软件...

    精通Hibernate:java对象持久化技术

    【精通Hibernate:Java对象持久化技术】主要涵盖了Java应用程序的分层体系结构、软件模型以及对象持久化的概念,特别是如何使用Hibernate这一ORM框架进行持久化操作。以下是详细的知识点解析: 1. **应用程序分层...

    精通HibernateJava对象持久化技术

    在阅读《精通Hibernate:Java对象持久化技术详解》的同时,可以结合“爱书吧-2万本图书免费下载.url”这个资源链接,寻找更多相关的学习资料和实战案例,以加深理解和提高技能。总的来说,这是一份非常全面且实用的...

    精通Hibernate:Java持久化对象技术详解[第二版]

    《精通Hibernate:Java持久化对象技术详解[第二版]》是一部深入探讨Hibernate框架的专业书籍,旨在帮助Java开发者熟练掌握和运用这一强大的ORM(Object-Relational Mapping)工具。Hibernate是Java开发领域中广泛...

    基于Hibernate的Java对象持久化技术分析--农户征信管理平台的设计

    【标题】基于Hibernate的Java对象持久化技术在农户征信管理平台设计中的应用 【内容详解】 在现代软件开发中,数据库管理和数据持久化是至关重要的环节。Hibernate作为一款优秀的Java对象关系映射(ORM)框架,极...

    精通 Hibernate:Java 对象持久化技术详解(第2版

    《精通 Hibernate:Java 对象持久化技术详解(第2版)》是一本深入解析Java对象持久化技术的权威著作,特别适合JavaWeb开发者学习。Hibernate作为Java领域中最流行的ORM(对象关系映射)框架,它简化了数据库操作,...

    自己写的一个持久化层

    标题中的“自己写的一个持久化层”指的是作者创建了一个用于数据存储和检索的软件组件,类似于知名的ORM(对象关系映射)框架Hibernate。持久化层是应用程序中的一个关键部分,它负责将业务对象的数据保存到数据库中...

    hibernate:java持久化对象详解02

    例如,使用`save()`或`saveOrUpdate()`方法可以将对象持久化到数据库,`get()`和`load()`用于根据ID获取对象,`update()`和`merge()`用于更新对象,`delete()`则用于删除对象。 事务管理是数据库操作中的关键部分。...

    java持久化工具类:JavaBean与XML

    JavaBean在持久化中的作用主要是作为数据载体,通过ORM(对象关系映射)框架如Hibernate,将Java对象转换成数据库中的记录。 ### XML XML(Extensible Markup Language)是一种结构化的数据表示语言,常用于配置...

    Java持久化框架对比选择

    Java持久化框架是连接对象导向编程(OOP)系统与关系型数据库管理系统的桥梁,用于处理数据持久化问题。在Java领域,有多种框架可供选择,包括Entity Enterprise Java Beans(EJB)、Java Persistence API(JPA)、...

    hibernate:java持久化对象详解01

    本教程“hibernate:java持久化对象详解01”聚焦于理解Hibernate如何将Java对象持久化到数据库中。 首先,让我们了解一下什么是持久化对象。在Java中,持久化对象是指那些状态可以被保存到持久存储介质(如数据库)...

    Hibernate 对象持久化

    它通过将Java类映射到数据库表,实现了对象持久化,使得开发者可以像操作普通Java对象一样处理数据库中的数据,从而降低了对SQL的依赖。 **一、Hibernate概述** Hibernate是由Jboss公司开发的一个开放源代码的对象...

    Hibernate操作持久化对象

    Hibernate是一个基于JDBC的ORM框架,它通过XML或注解定义对象-关系映射,将Java对象转换为数据库记录,反之亦然。它封装了JDBC,提供了更高级别的API,使得数据库操作更加简单和高效。Hibernate支持多种数据库,包括...

Global site tag (gtag.js) - Google Analytics