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

Preview:

Citation preview

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

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

Object-Oriented Application Development Using VB .NET

4

Making Objects Persistent

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

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

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

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

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

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

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

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

Object-Oriented Application Development Using VB .NET

13

Data Access Methods

• CustomerDA class (continued)– Additional methods

• Initialize• Terminate• GetAll

– Exception handler classes• NotFoundException• DuplicateException

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Object-Oriented Application Development Using VB .NET

28

VB .NET Database Access Classes

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

Object-Oriented Application Development Using VB .NET

30

VB .NET and DBMS Example

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

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

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

Recommended