Java Data Objects

個数:
  • ポイントキャンペーン

Java Data Objects

  • 提携先の海外書籍取次会社に在庫がございます。通常3週間で発送いたします。
    重要ご説明事項
    1. 納期遅延や、ご入手不能となる場合が若干ございます。
    2. 複数冊ご注文の場合、分割発送となる場合がございます。
    3. 美品のご指定は承りかねます。
  • 【重要:入荷遅延について】
    ウクライナ情勢悪化・新型コロナウィルス感染拡大により、洋書・洋古書の入荷が不安定になっています。詳しくはこちらをご確認ください。
    海外からのお取り寄せの場合、弊社サイト内で表示している標準的な納期よりもお届けまでに日数がかかる見込みでございます。
    申し訳ございませんが、あらかじめご了承くださいますようお願い申し上げます。
  • ◆画像の表紙や帯等は実物とは異なる場合があります。
  • 製本 Paperback:紙装版/ペーパーバック版/ページ数 360 p.
  • 言語 ENG
  • 商品コード 9780596002763
  • DDC分類 005.133

Full Description

"Java Data Objects" aims to revolutionize the way Java developers interact with databases and other datastores. It allows you to store and retrieve objects in a way that's natural toJava programmers. Instead of working with JDBC or EJB's container-managed persistence, you work directly with your Java objects. You don't have to copy data to and from database tables or issue SELECTs to perform queries: your JDO implementation takes care of persistence behind-the-scenes, and you make queries based on the fields of your Java objects, using normal Java syntax. The result is software that is truly object-oriented: not code that is partially object-oriented, with a large database-shaped lump on the back end. JDO lets you save plain, ordinary Java objects, and does not force you to use different data models and types for dealing with storage. As a result, your code becomes easier to maintain, easier to re-use, and easier to test. And you're not tied to a specific database vendor: your JDO code is entirely database-independent. You don't even need to know whether the datastore is a relational database, an object database, or just a set of files.
The book offers a thorough introduction to JDO, starting with a simple application that demonstrates many of JDO's capabilities. It shows you how to make classes persistent, how JDO maps persistent classes to the database, how to configure JDO at runtime, how to perform transactions, and how to make queries. More advanced chapters cover optional features such as nontransactional access and optimistic transactions. The book concludes by discussing the use of JDO in web applications and J2EE environments.

Table of Contents

Foreword                                           xv
Preface xvii
An Initial Tour 1 (27)
Defining a Persistent Object Model 2 (6)
The Classes to Persist 3 (4)
Declaring Classes to Be Persistent 7 (1)
Project Build Environment 8 (3)
Jars Needed to Use the JDO Reference 9 (1)
Implementation
Project Directory Structure 10 (1)
Enhancing Classes for Persistence 10 (1)
Establish a Datastore Connection and 11 (3)
Transaction
Acquiring a PersistenceManager 11 (1)
Creating a FOStore Datastore 12 (2)
Operations on Instances 14 (13)
Making Instances Persistent 15 (3)
Accessing Instances 18 (4)
Modifying an Instance 22 (4)
Deleting Instances 26 (1)
Summary 27 (1)
An Overview of JDO Interfaces 28 (10)
The javax.jdo Package 28 (6)
JDO Exception Classes 31 (3)
The javax.jdo.spi Package 34 (1)
Optional Features 35 (3)
Identity Options 36 (1)
Optional Collections 36 (1)
Transaction-Related Optional Features 37 (1)
JDO Architectures 38 (14)
Architecture Within Application JVM 40 (6)
Single PersistenceManager 40 (1)
Multiple PersistenceManagers Accessing 41 (2)
the Same Datastore
Multiple PersistenceManagers Accessing 43 (1)
Different Datastores
Shared Implementation Cache 44 (2)
Datastore Access 46 (2)
Direct Access of Filesystem or Local 46 (1)
Datastore
Remote Access of a JDO Server 46 (1)
Remote Access of a SQL Datastore 46 (2)
System Architectures with a JDO 48 (4)
Application
JDO Rich Client with Local Datastore 48 (1)
JDO Applications in a Web Server 48 (1)
JDO Applications as Web Services 48 (1)
Rich Client Connecting to Application 49 (1)
Server with EJB Components
Web Server with EJB Server 50 (1)
EJB Session Beans Using Session Bean 50 (1)
Facades
JDO Providing Container-Managed 51 (1)
Persistence
Defining Persistent Classes 52 (18)
Kinds of Classes and Instances 52 (2)
Kinds of Classes 53 (1)
Kinds of Instances 53 (1)
Java Classes and Metadata 54 (9)
JDO Metadata 55 (3)
Inheritance 58 (2)
The Media Mania Object Model 60 (3)
Fields 63 (7)
Supported Types 64 (2)
Persistence of Fields 66 (2)
Complete Metadata for the Media Mania 68 (2)
Model
Datastore Mappings 70 (24)
Mapping Approaches 71 (1)
Relational Modeling Constructs 72 (2)
SQL 99 73 (1)
Modeling Constructs in Java and 74 (1)
Relational Models
Mapping Classes to Tables 75 (1)
Mapping a Single-Valued Field to a Column 76 (2)
Name-Mapping 76 (1)
Type-Mapping 77 (1)
Indexes 78 (1)
Identity 78 (2)
Inheritance 80 (2)
References 82 (1)
Collections and Relationships 83 (11)
Using a Foreign Key 83 (6)
Using a Join Table 89 (1)
One-to-One Relationships 90 (2)
Representing Lists and Maps 92 (2)
Class Enhancement 94 (10)
Enhancement Approaches 95 (2)
Reference Enhancer 96 (1)
Vendor-Specific Enhancement 96 (1)
Binary Compatibility 97 (1)
Enhancement Effects on Your Code 98 (1)
Changes Made by the Enhancer 98 (6)
Metadata 99 (1)
Instance-Level Data 100 (1)
Field Mediation 101 (3)
Establishing a JDO Runtime Environment 104 (24)
Configuring a PersistenceManagerFactory 105 (10)
Connection Properties 108 (2)
Optional Feature Properties 110 (1)
Flags 111 (1)
Flags Settings in Multiple Interfaces 111 (1)
Determining the Optional Features and 112 (3)
Default Flag Settings
Vendor-Specific Properties 115 (1)
Nonconfigurable Properties 115 (1)
Acquiring a PersistenceManager 115 (2)
User Object 116 (1)
Closing a PersistenceManager 116 (1)
Closing a PersistenceManagerFactory 117 (1)
Transactions 117 (9)
Properties of Transactions 118 (1)
Transactions and Locking in the 118 (3)
Datastore
Types of Transactions in JDO 121 (1)
Acquiring a Transaction 121 (1)
Setting the Transaction Type 122 (1)
Transaction Demarcation 122 (3)
Restoring Values on Rollback 125 (1)
Determining Whether a Transaction Is 126 (1)
Active
Multiple PersistenceManagers 126 (1)
Multithreading 126 (2)
Instance Management 128 (17)
Persistence of Instances 129 (7)
Explicit Persistence 129 (2)
Persistence-by-Reachability 131 (5)
Extent Access 136 (3)
Accessing an Extent 137 (1)
Extent Iteration 137 (2)
Ignoring the Cache 139 (1)
Accessing and Updating Instances 139 (3)
Explicit Marking of Modified Instances 141 (1)
Deleting Instances 142 (3)
Delete Propagation 143 (2)
The JDO Query Language 145 (29)
Query Components 146 (3)
Creating and Initializing a Query 149 (3)
Changes in the Cache 152 (1)
Query Namespaces 153 (2)
Type Names 153 (1)
Field, Parameter, and Variable Names 154 (1)
Keywords 154 (1)
Literals 155 (1)
Query Execution 155 (5)
Parameter Declarations 155 (1)
Executing a Query 156 (3)
Compiling a Query 159 (1)
The Query Filter 160 (11)
General Characteristics of Expressions 161 (1)
Query Operators 161 (5)
References 166 (2)
Collections 168 (3)
Ordering Query Results 171 (2)
Closing a Query 173 (1)
Identity 174 (32)
Overview 175 (3)
JDO Identity Types 175 (1)
Metadata 176 (1)
Identity Class 177 (1)
Datastore Identity 178 (1)
Application Identity 179 (16)
Primary-Key Fields 179 (1)
Persistent Class equals() and 180 (1)
hashCode() Methods
The Application-Identity Class 180 (1)
A Single-Field Primary Key 181 (3)
A Compound Primary Key 184 (3)
A Compound Primary Key That Contains a 187 (3)
Foreign Key
Application Identity in an Inheritance 190 (5)
Hierarchy
Nondurable Identity 195 (1)
Identity Methods 196 (7)
Get the Identity Class 197 (1)
Get the Identity of an Instance 198 (2)
Getting an Instance via Its Identity 200 (2)
Changing the Application Identity of an 202 (1)
Instance
Get the Current Application Identity of 202 (1)
an Instance
The String Representation of Identity 203 (1)
Advanced Topics 203 (3)
Choosing an Identity Type 204 (1)
Using Identity Versus a Query 204 (1)
Identity Across PersistenceManagers 204 (2)
Lifecycle States and Transitions 206 (9)
Lifecycle States 206 (5)
Transient 207 (1)
Persistent-New 207 (1)
Hollow 208 (2)
Persistent-Clean 210 (1)
Persistent-Dirty 210 (1)
Persistent-Deleted 210 (1)
Persistent-New-Deleted 210 (1)
State Interrogation 211 (1)
State Transitions 212 (3)
State Transitions During a Datastore 212 (1)
Transaction
State Transitions When a Transaction 213 (1)
Completes
States Between Transactions 214 (1)
Field Management 215 (13)
Transactional Fields 215 (1)
null Values 215 (1)
Retrieval of Fields 216 (3)
Default Fetch Group 216 (1)
Retrieving All Fields 217 (2)
The Management of Fields 219 (1)
Serialization 219 (1)
Managing Fields During Lifecycle Events 220 (1)
First- and Second-Class Objects 221 (7)
Specifying a Second-Class Object 224 (1)
Embedding Collection Elements 225 (1)
Persistent Classes as Second-Class 226 (1)
Objects
Sharing of Instances 226 (2)
Cache Management 228 (7)
Explicit Management of Instances in the 228 (2)
Cache
Refreshing Instances 229 (1)
Evicting Instances 229 (1)
Cloning 230 (1)
Transient-Transactional Instances 231 (2)
Transient-Transactional Lifecycle States 231 (1)
State Interrogation 232 (1)
State Transitions 232 (1)
Making a Persistent Instance Transient 233 (2)
Nontransactional Access 235 (16)
Nontransactional Features 235 (3)
Reading Outside a Transaction 238 (1)
Persistent-Nontransactional State 239 (2)
Retaining Values at Transaction Commit 241 (1)
Restoring Values at Transaction Rollback 242 (3)
Before Image 243 (1)
Restoring Persistent Instances 244 (1)
Restoring Persistent-New Instances 244 (1)
Modifying Persistent Instances Outside a 245 (6)
Transaction
Hot Cache Example 246 (5)
Optimistic Transactions 251 (8)
Verification at Commit 252 (4)
Recovery from a Failed Transaction 253 (1)
Setting Optimistic Transaction Behavior 254 (1)
Optimistic Example 254 (2)
Optimistic Transaction State Transitions 256 (1)
Deleting Instances 257 (1)
Making Instances Transactional 257 (1)
Modifying Instances 257 (1)
Commit 258 (1)
Rollback 258 (1)
The Web-Server Environment 259 (13)
Web Servers 259 (8)
Accessing the PersistenceManagerFactory 261 (2)
Servicing Requests 263 (1)
PersistenceManager per Request 264 (1)
PersistenceManager per Application 264 (1)
PersistenceManager per Transactional 265 (1)
Request
PersistenceManager per Session 265 (1)
Transactions 265 (1)
JavaServer Pages 266 (1)
Struts with JDO 267 (5)
J2EE Application Servers 272 (21)
Enterprise JavaBeans Architecture 273 (1)
Stateless Session Beans 274 (7)
Configuring the 275 (3)
PersistenceManagerFactory
Stateless Session Beans with 278 (2)
Container-Managed Transactions
Stateful Session Beans with 280 (1)
Container-Managed Transactions
Bean-Managed Transactions 281 (2)
javax.transaction.UserTransaction 282 (1)
javax.jdo.Transaction 282 (1)
Stateless Session Beans with 283 (1)
Bean-Managed Transactions
Stateful Session Beans with 283 (1)
Bean-Managed Transactions
Message-Driven Beans 283 (1)
Persistent Entities and JDO 284 (9)
Local Persistent Storage 284 (2)
Remote Persistent Storage 286 (7)
Lifecycle States and Transitions 293 (3)
JDO Metadata DTD 296 (2)
JDO Interfaces and Exception Classes 298 (10)
JDO Query Language BNF 308 (5)
Source Code for Examples 313 (32)
Index 345