Introduction... xv SECTION 1: DEVELOPING DESKTOP APPLICATIONS USING JAVA Chapter 1: Getting Started with Java... 1

Similar documents
CONTENTS. Chapter 1 Getting Started with Java SE 6 1. Chapter 2 Exploring Variables, Data Types, Operators and Arrays 13

Table of Contents. Chapter 1 Getting Started with Java SE 7 1. Chapter 2 Exploring Class Members in Java 15. iii. Introduction of Java SE 7...

Chapter 1 Introducing EJB 1. What is Java EE Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

Table of Contents. Introduction... xxi

Java Programming Course Overview. Duration: 35 hours. Price: $900

COURSE DETAILS: CORE AND ADVANCE JAVA Core Java

This course is intended for Java programmers who wish to write programs using many of the advanced Java features.

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java.

"Charting the Course... Java Programming Language. Course Summary

Contents Introduction 1

Syllabus & Curriculum for Certificate Course in Java. CALL: , for Queries

Java SE7 Fundamentals

Core Java. Basics of Java. String Handling. OOPS Concepts. Exception Handling

JAVA MICROSERVICES. Java Language Environment. Java Set Up. Java Fundamentals. Packages. Operations

JAVA & J2EE UNIT -1 INTRODUCTION

SYLLABUS JAVA COURSE DETAILS. DURATION: 60 Hours. With Live Hands-on Sessions J P I N F O T E C H

JAVA. Duration: 2 Months

1 OBJECT-ORIENTED PROGRAMMING 1

Page 1

JAVA. A. Zakiuddin Ahmed. M.Sc.,M.Phil M.S.(Edn), PGDCSM, Professor in Computer Science, P. Rizwan Ahmed. MCA., M.Sc.,M.A., M.Phil.

Complete Java Contents

SELF-STUDY. Glossary

John Cowell. Essential Java Fast. How to write object oriented software for the Internet. with 64 figures. Jp Springer

Oracle 10g: Build J2EE Applications

Core Java SYLLABUS COVERAGE SYLLABUS IN DETAILS

Peers Techno log ies Pv t. L td. Core Java & Core Java &Adv Adv Java Java

Watch Core Java and Advanced Java Demo Video Here:

Call: Core&Advanced Java Springframeworks Course Content:35-40hours Course Outline

Murach s Beginning Java with Eclipse

Contents. iii Copyright 1998 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 1998, Revision B

ive JAVA EE C u r r i c u l u m

Core JAVA Training Syllabus FEE: RS. 8000/-

Fast Track to Java EE

Courses For Event Java Advanced Summer Training 2018

Advanced Java Programming

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started

1Z Java SE 5 and 6, Certified Associate Exam Summary Syllabus Questions

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

ощ 'ршорвшэш! цвн-эориэу ощ 'sajbpossv # PIPG DUJ 'ssjmoossv ^ PIPG pipa w н OX ЛЮН VAV

Essential Series. Springer-Verlag London Ltd.

Introduction. Assessment Test. Part I The Programmer s Exam 1

UNIT -I PART-A Q.No Question Competence BTL

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

Java Training JAVA. Introduction of Java

A- Core Java Audience Prerequisites Approach Objectives 1. Introduction

Fast Track to EJB 3.0 and the JPA Using JBoss

Course Content for Java J2EE

Java Programming. Price $ (inc GST)

SCHEME OF COURSE WORK

/ / JAVA TRAINING

Enterprise JavaBeans 3.1

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

LTBP INDUSTRIAL TRAINING INSTITUTE

Course Description. Learn To: : Intro to JAVA SE7 and Programming using JAVA SE7. Course Outline ::

Deccansoft Software Services. J2EE Syllabus

Java J Course Outline

Introduction... xxxi. Chapter 1: Java EE 6: An Overview... 1

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

CS506 Web Design & Development Final Term Solved MCQs with Reference

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

This page intentionally left blank

J2EE Technologies. Industrial Training

JAVA SYLLABUS FOR 6 MONTHS

Mobile MOUSe JAVA2 FOR PROGRAMMERS ONLINE COURSE OUTLINE

Object Oriented Programming with Java. Unit-1

CHAPTER 1: A GENERAL INTRODUCTION TO PROGRAMMING 1

ABOUT CORE JAVA COURSE SCOPE:

Fast Track to Java EE 5 with Servlets, JSP & JDBC

Java Training For Six Weeks

foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration

JAVA. 1. Introduction to JAVA

SNS COLLEGE OF ENGINEERING, Coimbatore

FINALTERM EXAMINATION Spring 2009 CS506- Web Design and Development Solved by Tahseen Anwar

Introduction to JSP and Servlets Training 5-days

Pro JPA 2. Mastering the Java Persistence API. Apress* Mike Keith and Merrick Schnicariol

JAVA Training Overview (For Demo Classes Call Us )

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

Java.. servlets and. murach's TRAINING & REFERENCE 2ND EDITION. Joel Murach Andrea Steelman. IlB MIKE MURACH & ASSOCIATES, INC.

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p.

object/relational persistence What is persistence? 5

OracleAS 10g R3: Java Programming

"Charting the Course... Mastering EJB 3.0 Applications. Course Summary

Introduction to J2EE...xxvii. Chapter 1: Introducing J2EE... 1 Need for Enterprise Programming... 3 The J2EE Advantage... 5

LTBP INDUSTRIAL TRAINING INSTITUTE

ADVANCED JAVA COURSE CURRICULUM

Web Application Development Using JEE, Enterprise JavaBeans and JPA

VALLIAMMAI ENGINEERING COLLEGE

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

Java Fundamentals p. 1 The Origins of Java p. 2 How Java Relates to C and C++ p. 3 How Java Relates to C# p. 4 Java's Contribution to the Internet p.

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

ddfffddd CS506 FINAL TERMS SOLVED BY MCQS GHAZAL FROM IEMS CAMPUS SMD CS506 Mcqs file solved by ghazal

Java SE 7 Programming

COURSE SYLLABUS. Complete JAVA. Industrial Training (3 MONTHS) PH : , Vazhoor Road Changanacherry-01.

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies

Oracle 10g: Java Programming

Supporting Materials

PSD1B Advance Java Programming Unit : I-V. PSD1B- Advance Java Programming

Transcription:

Introduction... xv SECTION 1: DEVELOPING DESKTOP APPLICATIONS USING JAVA Chapter 1: Getting Started with Java... 1 Introducing Object Oriented Programming... 2 Explaining OOP concepts... 2 Objects...3 Classes...3 Encapsulation...3 Data Abstraction...3 Inheritance...4 Polymorphism...4 Exploring the Evolution of Java... 5 Emergence of C++...5 Introduction of Java...5 Describing the Features of Java... 8 Portable...9 Robust...9 Multithreading...9 Platform Independent...9 Distributed...9 Enhanced Collection Framework...10 Dynamic Compilation...10 Database...10 Web Services...10 Security...10 Introducing the Java Environment... 10 Explaining JDK...11 Explaining Java Platform Component...11 Defining JVM...11 Defining Java API...12 Exploring Types of Java Programs...12 Exploring Keywords in Java... 13 Exploring Identifiers in Java... 15 Developing a Simple Java Program... 15 Compiling and Running the Program... 16 Summary... 17 Quick Revise... 17 Chapter 2: Working with Java Fundamental Programming Concepts... 19 Exploring Data Types... 20 The Integer Data Type...20

vi The Floating-point Data Type...21 The Character Data Type...21 The Boolean Data Type...22 Working with Variables... 22 Declaring Variables...22 Initializing Variables...22 Working with Literals... 23 Integer Literals...23 Floating-Point Literals...25 Boolean Literals...27 Character Literals...28 String Literals...28 Understanding Type Casting and Type Conversion... 28 Automatic Type Casting...29 Explicit Type Casting...29 Working with Constants and Separators... 30 Working with Operators... 31 Arithmetic Operators...31 Relational Operators...36 Boolean Logical Operators...37 Increment and Decrement Operators...39 Implementing Arrays in Java... 44 Working with One-Dimensional Arrays...45 Declaring One-Dimensional Arrays... 45 Working with Two-Dimensional Arrays...48 Summary... 50 Quick Revise... 51 Chapter 3: Working with Access Modifiers, Packages, Classes, and Constructors... 53 Introducing Access Modifiers in Java... 54 Working with Packages... 55 The Built-in Packages...55 The User-defined Packages...69 Working with Classes... 71 Declaring a Class...72 Working with Methods in a Class...75 Identifying Variable Scope... 86 Working with Nested Classes in Java...87 Working with Constructors... 88 Exploring Default Constructors...89 Exploring Parameterized Constructors...90 Passing Parameters to Constructors...91 Using the this Keyword...91 Summary... 92 Quick Revise... 93 Chapter 4: Working with Flow Control Statements... 95 Implementing the Conditional Statements... 96 Using the if Statement...96 Using the if-else Statement...97 Using the switch Statement...97 Implementing the Iteration Statements... 99 Using the while Loop...99 Using the do-while Loop... 100 Using the for Loop... 101 Using the for-each Loop... 102

Working with Nested Loop... 103 Implementing the Jump Statements... 104 Using the break statement... 104 Using the continue Statement... 106 Using the return Statement... 107 Summary... 107 Quick Revise... 108 Chapter 5: Implementing Inheritance, Interface, and Polymorphism in Java... 111 Working with Inheritance... 112 Exploring Forms of Inheritance... 113 Exploring the Class Hierarchy in Java... 117 Working with Access Modifiers in Inheritance... 118 Referencing Subclass Objects... 123 Using the super Keyword... 124 Implementing Method Overriding... 125 Invocation of Constructors in Inheritance... 126 Using the final Keyword... 127 Working with Abstract Class... 129 Working with Interfaces in Java... 130 Declaring Interfaces... 130 Implementing Interfaces... 130 Difference between Abstract Class and Interfaces... 134 Working with Polymorphism... 135 The Static Polymorphism... 135 The Dynamic Polymorphism... 137 Summary... 138 Quick Revise... 138 Chapter 6: Exception Handling and I/O Operations... 141 Handling Exceptions in Java... 142 Exploring Exceptions... 143 Describing Exception Hierarchy... 145 Working with Exception Handling Mechanisms... 147 Handling I/O Operations... 156 Exploring the java.io Package... 156 Working with Streams... 170 Writing Console Output... 171 Reading and Writing Files... 172 Summary... 174 Quick Revise... 174 Chapter 7: Implementing Threads in Java... 177 Defining Threads... 178 Describing the Main Thread... 179 Extending the Thread Class... 179 Implementing the Runnable Interface... 180 Instantiating a Thread... 180 Starting Threads... 181 Starting and Running Multiple Threads... 182 Thread States... 183 Exploring the Thread States... 183 Thread Priorities... 184 Thread Scheduler... 186 Running and Yielding... 186 Sleeping and Waking Up Threads... 186 vii

viii The join() Method... 188 Blocking for I/O... 190 hread Termination... 190 Deadlock... 190 Implementing the Thread Synchronization Mechanism... 191 Synchronized Methods... 192 Synchronized Blocks... 194 Implementing Thread Interaction... 195 Summary... 197 Quick Revise... 198 Chapter 8: Working with the java.lang and java.util Packages... 201 Working with the java.lang Package... 202 Describing Wrapper Classes in Java... 203 Working with Strings in Java... 207 Working with the java.util Package... 228 Describing Vectors in Java... 228 Working with the Enumeration and Iterator Interfaces... 231 Describing the Collection Framework... 239 Summary... 261 Quick Revise... 262 Chapter 9: Working with Windows-based Application... 267 Working with java.awt Package... 268 Exploring the Component Class... 268 Exploring the Container Class... 269 Exploring the Panel Class... 270 Exploring the Window Class... 270 Exploring the Frame Class... 270 Creating a Desktop Application using AWT... 270 Creating a Frame Window... 270 Hiding and Showing a Window... 272 Setting the Window s Title... 272 Closing a Frame Window... 274 Using the Button Class... 275 Using the Label and TextField Classes... 277 Using the CheckBox and RadioButton Classes... 279 Using the Choice Class... 281 Using the Scrollbar Class... 283 Using the TextArea Class... 284 Working with Panel Container... 286 Creating a Desktop Application using Swing... 287 Implementing the JFrame Class... 288 Using the JButton Class... 289 Using JLabel and JTextField Classes... 291 Using the JTextArea Class... 293 Using the JTable Class... 294 Using the JTabbedPane Class... 296 Implementing the Layout Managers... 298 The FlowLayout Manager... 299 The BorderLayout Manager... 300 The GridLayout Manager... 302 The CardLayout Manager... 303 The GridBagLayout Manager... 306 Summary... 309 Quick Revise... 309

Chapter 10: Working with Applets... 311 Overview of Applets... 312 Life Cycle of an Applet... 312 Comparing Applets and Applications... 313 Creating Applets... 313 Using the HTML <Applet> Tag... 316 Initializing and Terminating an Applet... 317 Using the paint () Method... 318 Using the update() Method... 318 Invoking the repaint() Method... 319 Implementing Multithreading with Applets... 320 Passing Parameters to Applets... 321 Working with the Graphics Class... 322 Drawing Lines... 324 Drawing Rectangles... 325 Drawing Ovals... 326 Drawing Arcs... 327 Drawing Polygon... 327 Working with the Color Class... 328 Working with the Font Class... 331 Determining the Available Fonts... 334 Creating and Selecting Fonts... 336 Using the FontMetrics Class... 337 Summary... 339 Quick Revise... 339 Chapter 11: Implementing Event Handling... 347 Overview of Events... 348 Components of Event... 348 Event Classes... 348 Listeners for Events... 351 The ActionListener Interface... 352 The ComponentListener Interface... 352 The KeyListener Interface... 353 The MouseListener Interface... 353 Exploring the Methods of Event Listeners... 354 Using the ActionListener Interface... 354 Using the KeyListener Interface... 355 Using the MouseListener Interface... 356 Using Adapter Classes... 358 Summary... 359 Quick Revise... 359 Chapter 12: Working with JavaBeans... 361 Introducing JavaBeans... 362 Advantages of JavaBeans... 363 Introspection... 363 Customizers... 364 Exploring the JavaBeans API... 364 Designing Programs Using JavaBeans... 366 Creating a Java Bean... 367 Creating a Bean Manifest File... 368 Creating a Bean JAR File... 368 Using the New Bean... 368 Adding Controls to a Bean... 369 ix

Exploring the Properties of a Bean... 370 Describing Design Patterns for Properties... 375 Simple Properties... 375 Indexed Properties... 376 Using the BeanInfo Interface... 376 Creating Bound Properties... 377 Giving a Bean an Icon... 378 Creating a BeanInfo Class... 379 Bound and Constrained Properties... 380 Persistence... 382 Using Beans with JSP Pages... 382 Summary... 383 Quick Revise... 383 Chapter 13: Java Database Programming... 385 Introduction to JDBC... 386 Components of JDBC... 386 JDBC Specification... 387 JDBC Architecture... 387 JDBC Drivers... 388 Describing the Type-1 Driver... 388 Describing the Type-2 Driver (Java to native API)... 389 Describing the Type-3 Driver (Java to Network Protocol/All Java Driver)... 391 Describing the Type-4 Driver (Java to Database protocol)... 392 Features of JDBC... 393 New Features in JDBC 4.0... 394 JDBC APIs... 396 The java.sql Package... 396 The javax.sql Package... 398 Major Classes and Interfaces... 400 Understanding the DriverManager Class... 400 Understanding the Driver Interface... 401 Understanding the Connection Interface... 402 Understanding the Statement Interface... 404 JDBC Processes with java.sql Package... 407 Exploring Basic JDBC Steps... 407 Creating a Simple JDBC Application... 410 Working with the PreparedStatement Interface... 414 Working with the CallableStatement Interface... 419 Working with ResultSets... 427 Working with Batch Updates... 437 Describing SQL 99 Data Types... 441 JDBC Processes with the javax.sql Package... 456 Using DataSource to Make a Connection... 457 Describing Connection Pooling... 457 Using RowSet Objects... 461 Working with Transactions... 474 ACID Properties... 475 Types of Transactions... 475 Transaction Management... 476 Summary... 479 Quick Revise... 479 x

SECTION 2: DEVELOPING WEB APPLICATIONS USING JAVA Chapter 14: Getting Started with Web Applications in Java... 481 Introduction to Web Applications... 482 Exploring Java Based Web Technologies... 482 Describing JDBC... 483 Exploring the JDBC Architecture... 483 Describing Servlets... 484 Describing Java Server Pages (JSP)... 485 Introducing Web Architecture Models... 487 Describing the Model-1 Architecture... 487 Describing the Model-2 Architecture... 488 Introducing the MVC Architecture... 489 Describing the Model Component... 490 Describing the View Component... 490 Describing the Controller Component... 490 Summary... 491 Quick Revise... 491 Chapter 15: Working with Servlet Programming... 493 Introducing Servlet 2.5... 494 Exploring the Features of Java Servlets... 495 Servlet A Request and Response Model... 496 Servlet and Environment State... 496 Security Features... 498 HTML-Aware Servlets... 498 HTTP-Specific Servlets... 499 Performance Feature... 500 3-Tier Applications... 501 Web Publishing System... 501 Exploring the Servlet API... 502 The javax.servlet Package... 502 The javax.servlet.http Package... 505 Introducing the Servlet Life-Cycle... 506 The init() Method... 507 The service() Method... 507 The destroy() Method... 508 Configuring Servlet in web.xml... 508 Working with ServletConfig and ServletContext Interfaces... 510 Creating a Simple Servlet... 510 Creating Directory Structure... 511 Configuring the Servlet... 512 Packaging, Deploying and Running the Web Application... 512 Working with HttpServletRequest and HttpServletResponse... 513 HttpServletRequest... 513 HttpServletResponse... 522 Describing Request Delegation and Request Scope... 527 Understanding Servlet Collaboration... 530 Collaboration through the System Properties List... 530 Collaboration through a Shared Object... 531 Collaboration through Inheritance... 537 Understanding Session Tracking... 539 Cookies... 540 Hidden Form Fields... 544 URL Rewriting... 544 Session using Secure Socket Layer (SSL)... 547 xi

xii Describing Session Tracking with Java Servlet API... 547 History of Session Tracking... 547 Session Creation and Tracking... 548 Working with Login Application using Session Tracking... 555 Creating Directory Structure of a Login Application... 556 Building the Front-End... 556 Creating and Managing Session... 557 Configuring the Login Application... 559 Running the Login Application... 559 Summary... 561 Quick Revise... 561 Chapter 16: Working with JSP... 563 Understanding JSP... 564 Advantages of JSP over Servlets... 565 Introducing the Tag-Based Approach... 566 Describing the JSP Architecture... 566 Describing the JSP Life Cycle... 567 The Page Translation Stage... 567 The Compilation Stage... 569 The Loading & Initialization Stage... 569 The Request Handling Stage... 570 The Destroying Stage... 570 Creating Simple JSP Pages... 570 Working with JSP Basic Tags and Implicit Objects... 573 Exploring Scripting Elements... 573 Exploring Implicit Objects... 577 Exploring Directive Elements... 582 Using JavaBeans and Action Tags in JSP... 587 Understanding JavaBean... 587 Action Tags... 588 Using a Bean in a JSP... 600 Using the JSP Standard Tag Library (JSTL)... 605 Describing JSTL Core Tags... 605 Describing the JSTL SQL Tags... 615 JSTL Formatting Tags... 620 JSTL XML Tags... 631 Implementing JSTL Tags... 634 Summary... 637 Quick Revise... 637 SECTION 3: DEVELOPING ENTERPRISE APPLICATIONS USING JAVA Chapter 17: Understanding EJB 3.0... 639 EJB 3.0 Fundamentals... 640 Need of EJB 3.0... 640 EJB 3.0 Architecture and Concepts... 641 Features of EJB 3.0... 644 Classifying EJBs... 647 Understanding Session Bean... 647 Conversational State... 648 State Management of a Bean... 648 Stateless Session Beans... 648 Life-cycle of Stateless Session Beans... 649 Stateful Session Beans... 649 Life-cycle Of Stateful Session Beans... 650

Stateless versus Stateful Session Beans... 651 Implementing Session Beans... 651 Business Interface... 651 Bean Class... 652 Developing a Stateless Session Bean... 652 Running the Application... 657 Developing a Stateful Session Bean... 658 Understanding Message-Driven Bean... 661 Characteristics of Message-Driven Bean... 662 Structure of Message-Driven Bean... 662 Life-cycle of Message-Driven Bean... 662 Implementing the Message-Driven Bean... 664 Implementation of MessageDrivenBean and MessageListener... 664 Implementation of Business Logic inside the onmessage()... 665 A Sample MDB Application... 665 Packaging, Deploying, and Running the Application... 669 Managing Transactions in Java EE Application... 674 Transaction Properties... 675 Transaction Model... 676 Distributed Transactions... 678 Implementing Transaction Management in EJB 3.0... 680 Bean-Managed Transactions... 680 Container-Managed Transactions... 682 Different Types of Timers... 684 Strengths and Limitations of EJB Timer Services... 684 Timer Service API... 684 The TimerService Interface... 685 The Timer Interface... 686 The TimedObject Interface... 687 The TimerHandle Interface... 687 Implementing EJB 3.0 Timer Service... 688 Creating the Timer Objects... 688 Canceling a Timer Object... 690 Expiration of Timer Object... 690 Understanding EJB 3.0 Interceptors... 690 Specifying Interceptors... 690 Life-cycle of Interceptors... 691 Interceptor class... 692 Applying Interceptors through XML... 692 Disabling Interceptors... 693 Using Annotations for Interceptors... 693 Programming by using the Business Methods... 694 Programming by using the Life-cycle Call Back Methods... 694 Specifying Default Interceptor Methods... 695 Life-cycle Call Back Methods in an Interceptor Class... 696 The @PreDestroy Annotation... 696 The @PostConstruct Annotation... 696 The @PostActivate Annotation... 697 The @PrePassivate Annotation... 697 Life-cycle Call-back Interceptor Methods in a MDB... 697 Life-cycle Callback Interceptor Methods in a session bean... 699 Summary... 701 Quick Revise... 701 xiii

Chapter 18: Implementing Entities and Java Persistence API... 703 Understanding Object-Relational Mapping (ORM)... 704 Understanding the Java Persistence API... 704 Exploring Entities... 705 Specifying the @Entity Annotation... 710 Specifying the @Table Annotation... 711 Specifying the @Columns Annotation... 711 Specifying the @Enumerated Annotation... 712 Specifying the @Lob Annotation... 712 Specifying the @Temporal Annotation... 712 Implementing Entity and Session Beans... 713 Using an Entity Bean... 713 Implementing the Entity Class... 714 Describing the Life Cycle of an Entity... 714 Defining Entity Listeners and Callbacks... 715 Packaging a Persistence Unit... 716 Obtaining an EntityManager API... 717 Interacting with EntityManager... 718 Introducing Entity Relationship Types... 719 Describing the One-to-One Type... 720 Describing the One-to-Many Type... 724 Describing the Many-to-One Type... 728 Describing the... 732 Many-to-Many Type... 732 Mapping Collection-Based Relationships... 736 Entity Inheritance... 737 Single Table per Class Hierarchy Strategy... 739 Separate Table per Subclass Strategy... 742 Single Table per Concrete Entity Class Strategy... 743 Understanding Java Persistence Query Language... 743 JPQL Functions... 744 JPQL Statements... 746 The SELECT Clause... 747 The FROM Clause... 748 The WHERE Clause... 748 The ORDER BY Clause... 748 Conditional Expressions... 749 The Query API... 751 Creating a Sample Application... 756 Implementing the Directory Structure... 756 Creating a Web Module... 758 Configuring the Connection Pool and JDBC Resource... 765 Summary... 768 Quick Revise... 768 Appendix A: RMI-IIOP... 771 Glossary... 807 Index... 811 What s on the CD-ROM... 826 xiv