![Page 1: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062714/56649d4b5503460f94a28c1e/html5/thumbnails/33.jpg)
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