Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access...

33
Object-Oriented Application Development Using VB .NET 1 Chapter 13 Introduction to Data Access Classes and Persistence
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    0

Transcript of Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access...

Page 1: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

1

Chapter 13

Introduction to Data Access Classes and

Persistence

Page 2: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

2

Making Objects Persistent

• Object persistence– The capacity to store and retrieve information from

files

• Two approaches to achieving persistence– Attribute storage

– Object storage

Page 3: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

3

Making Objects Persistent

• Attribute storage– Involves

• Retrieving attribute values from the instance• Writing attribute values to a file

– Disadvantage• It is necessary to re-create the object

Page 4: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

4

Making Objects Persistent

Page 5: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

5

Making Objects Persistent

• Options for storing and retrieving objects:– Attribute storage and retrieval using the

StreamWriter and StreamReader

– Object serialization

– Attribute storage and retrieval using databases

Page 6: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

6

Making Objects Persistent

• Object serialization– An easy way to store and retrieve objects– Serialization process

• Transforms an object into a stream that can be saved to a sequential file

– Deserialization• Transforms the stream from the file back to the

object state before the object was stored

– Advantage• The object can be retrieved intact• It is not necessary to re-create the object

Page 7: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

7

Making Objects Persistent

• Databases– One or more files organized to help make queries

– Can be used to make objects persistent

– Organize data into tables that can be related to each other• Each table column represents an attribute• Each row represents a record

– Structured Query Language (SQL)• A standard set of keywords and statements used to

access relational databases

Page 8: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

8

Designing a Data Access Class

• Purpose of a DA class– To provide methods that store and retrieve data– Make instances of a PD class persistent

• Reasons for placing data storage and retrieval tasks in a DA class– Data input and output code are isolated from other

classes• Can dramatically reduce maintenance

– Separate classes for each tier make deployment easier in a client-server environment • GUI, PD, and DA functions may reside on multiple

machines at various sites

Page 9: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

9

Designing a Data Access Class

• DA methods can be invoked only by the PD class– Services provided by the DA class appear to be

provided by the PD class

– Hides the DA class from all other classes

Page 10: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

10

Data Access Methods

• A separate DA class is written for each PD class• Example:

– CustomerDA• Provides data storage and retrieval services for

customers• Methods can only be invoked by the PD class

Page 11: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

11

Data Access Methods

• Four basic tasks provided by CustomerDA and Customer:– Retrieve a customer

– Store a customer

– Change a customer’s data

– Remove a customer

Page 12: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

12

Data Access Methods

• CustomerDA class– Find method

• Functionality implemented: retrieve a customer

– AddNew method• Functionality implemented: store a customer

– Update method• Functionality implemented: update a customer’s data

– Delete method• Functionality implemented: remove a customer

Page 13: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

13

Data Access Methods

• CustomerDA class (continued)– Additional methods

• Initialize• Terminate• GetAll

– Exception handler classes• NotFoundException• DuplicateException

Page 14: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

14

Communicating with a Data Access Class

• Customer class– Invokes methods in CustomerDA 

– Methods• Find• AddNew• Find• Delete• Initialize• Terminate• GetAll

Page 15: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

15

Finding a Customer

• The PD Find method– Invokes the DA Find method

Public Shared Function Find(ByVal PhoneNo As String) As Customer

Return CustomerDA.Find(PhoneNo)

End Function

Page 16: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

16

Adding a Customer

• The PD AddNew method– Invokes the AddNew method in the DA class to

store a new customer instance

Public Sub AddNew()

CustomerDA.AddNew(Me)

End Sub

Page 17: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

17

Changing a Customer

• The PD Update method– Invokes the Update method in the DA class

Public Sub Update()

CustomerDA.Update(Me)

End Sub

Page 18: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

18

Deleting a Customer

• The PD Delete method– Invokes the Delete method in the DA class

Public Sub Delete()

CustomerDA.Delete(Me)

End Sub

Page 19: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

19

Additional Problem Domain Methods

• Additional PD methods– Initialize

Public Shared Sub Initialize()CustomerDA.Initialize()

End Sub

– Terminate

Public Shared Sub Terminate() CustomerDA.Terminate()End Sub

Page 20: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

20

Additional Problem Domain Methods

• Additional PD methods (continued)– GetAll

Public Shared Function GetAll() As ArrayList

Return CustomerDA.GetAll

End Function

Page 21: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

21

Implementing Persistence with Object Serialization

• Persistence using object serialization– Uses object storage

– Complete object instances are written to and read from a file

– Instances are retrieved intact• There is no need to re-create instances

– Uses the FileStream class

Page 22: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

22

Implementing Persistence with Object Serialization

• To change from sequential access file processing to object serialization– Add the attribute <Serializable()> to the Customer

definition header

– Change the following methods in CustomerDA• Initialize• Terminate

Page 23: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

23

Using Relational Databases with VB .NET

• Relational databases– Referred to as database management systems (DBMSs)– Provide tools for organizing data into tables

• In a DBMS– Each column represents a field– Each row represents a record– Primary key: a field used to uniquely identify a record

Page 24: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

24

Structured Query Language

• Structured Query Language (SQL)– A standardized language used to manage and

query relational databases

– Used by DA methods• Find method uses the SQL SELECT statement to

– Retrieve a specific customer’s record from the database

• AddNew method uses the SQL INSERT INTO statement to– Add a new customer’s record to the database

Page 25: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

25

Structured Query Language

• Uses of SQL by DA methods (continued)– Update method uses the SQL UPDATE statement

to• Change the contents of one or more fields in a

customer’s record

– Delete method executes the SQL DELETE statement• SQL DELETE statement specifies the key value of

the customer to be deleted

Page 26: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

26

Accessing a DBMS with VB .NET

• VB .NET options for accessing data– ADO (Active-X Data Objects)

• Maintains a constant connection to the server• Data is kept and processed in a recordset

– ADO .NET• Only connects to the server when

– Data is needed from the data store

– Updates back to the data store are required

• Relies on the concept of datasets as the basis for processing data

Page 27: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

27

VB .NET Database Access Classes

• VB .NET managed providers for accessing data:– The OleDb data provider

• Designed for accessing Microsoft Access databases and other non-SQLServer data sources

• Namespace: OleDb

– The SQLServer data provider• Designed for accessing Microsoft SQLServer

databases• Namespace: SQLClient

• Object database connectivity (ODBC)– Can be used to access most other databases

Page 28: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

28

VB .NET Database Access Classes

Page 29: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

29

VB .NET and DBMS Example

• Example– Project involves working with data from a relational

database• Selecting, adding, updating, and deleting rows from

a table

– The GUI includes• A data grid• Four buttons

– Add Record– Update Record– Delete Record– Find

Page 30: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

30

VB .NET and DBMS Example

Page 31: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

31

Implementing Object Persistence with a Database

• To implement object persistence with a relational database– Initialize method establishes a connection to the

database

– Find, AddNew, Update, Delete, and GetAll methods access the database directly

– Terminate method closes the database connection

Page 32: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

32

Summary

• Object persistence: storing instance data for future retrieval

• Persistence can be achieved by storing either attribute values or entire instances

• A data access (DA) class provides methods that store and retrieve data

• Methods of a DA class are invoked only by the methods of the corresponding PD class

• Methods of a DA class: Find, AddNew, Update, Delete, GetAll, Initialize, and Terminate

Page 33: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.

Object-Oriented Application Development Using VB .NET

33

Summary

• VB .NET’s stream approach to I/O views data input and output as a flow of bytes

• Persistence can be achieved using sequential files, object serialization, or relational databases

• A relational database is used to organize data into tables

• In a relational database, each column represents a field and each row represents a record

• SQL is a popular, standard language used to access relational databases