WEB开发网
开发学院软件开发Java 面向 Java 开发人员的 db4o 指南: db4o 中的数据库... 阅读

面向 Java 开发人员的 db4o 指南: db4o 中的数据库重构

 2010-04-01 00:00:00 来源:WEB开发网   
核心提示: 从理论上讲,理论与实践之间没有不同,面向 Java 开发人员的 db4o 指南: db4o 中的数据库重构(2),但也只是从理论上才能这么讲,重构关系数据库和对象/关系映射文件应该 是简单的,目前,它由一种类型组成,但在实际中,只有当重构仅仅与 Java 代码有关时

从理论上讲,理论与实践之间没有不同。但也只是从理论上才能这么讲。重构关系数据库和对象/关系映射文件应该 是简单的。但在实际中,只有当重构仅仅与 Java 代码有关时,RDBMS 重构才比较简单。在这种情况下,只需更改映射就可以完成重构。但是,如果更改发生在数据的关系存储本身上,那么就突然进入一个全新的、复杂的领域,这个专题复杂到足够写一本书。(我的一个同事曾经描述到 “500 页数据库表、触发器和视图” 这样的一本书。)可以说,由于现实中的 RDBMS 常常包含需要保留的数据,仅仅删除模式然后通过 DDL 语句重新构建模式不是 正确的选择。

现在我们知道,当定义其中的对象的 Java 代码发生改变时 RDBMS 会发生什么样的变化。(或者,至少我们知道 RDBMS 管理器会怎样,这是一个很头痛的问题。)现在我们来看看当代码发生改变时 db4o 数据库的反应。

设置数据库

如果您已经阅读了本系列中的前两篇文章,那么应该熟悉我的非常简单的数据库。目前,它由一种类型组成,即 Person 类型,该类型的定义包含在清单 1 中:

清单 1. Person

        package com.tedneward.model; 
 
public class Person 
{ 
  public Person() 
  { } 
  public Person(String firstName, String lastName, int age) 
  { 
    this.firstName = firstName; 
    this.lastName = lastName; 
    this.age = age; 
  } 
   
  public String getFirstName() { return firstName; } 
  public void setFirstName(String value) { firstName = value; } 
   
  public String getLastName() { return lastName; } 
  public void setLastName(String value) { lastName = value; } 
   
  public int getAge() { return age; } 
  public void setAge(int value) { age = value; } 
 
  public String toString() 
  { 
    return 
      "[Person: " + 
      "firstName = " + firstName + " " + 
      "lastName = " + lastName + " " + 
      "age = " + age + 
      "]"; 
  } 
   
  public boolean equals(Object rhs) 
  { 
    if (rhs == this) 
      return true; 
     
    if (!(rhs instanceof Person)) 
      return false; 
     
    Person other = (Person)rhs; 
    return (this.firstName.equals(other.firstName) && 
        this.lastName.equals(other.lastName) && 
        this.age == other.age); 
  } 
   
  private String firstName; 
  private String lastName; 
  private int age; 
} 

上一页  1 2 3 4 5 6 7  下一页

Tags:面向 Java 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接