object-oriented application development using vb.net 1 chapter 13 introduction to data access...

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

Upload: kathlyn-palmer

Post on 20-Jan-2018

228 views

Category:

Documents


0 download

DESCRIPTION

Object-Oriented Application Development Using VB.NET 3 Examining VB.NET Input and Output Stream –A collections of bytes that transfer data to and from files Stream classes with sequential file capabilities –StreamWriter Located in the System.IO namespace Derived from the TextWriter class –StreamReader Located in the System.IO namespace Derived from the TextReader class

TRANSCRIPT

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

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…

Object-Oriented Application Development Using VB .NET

2

Objectives

In this chapter, you will:• Examine VB .NET input and output (I/O)• Make objects persistent• Design a data access class• Communicate with a data access class• Use a relational database with VB .NET

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

Object-Oriented Application Development Using VB .NET

3

Examining VB .NET Input and Output

• Stream– A collections of bytes that transfer data to and

from files• Stream classes with sequential file capabilities

– StreamWriter• Located in the System.IO namespace• Derived from the TextWriter class

– StreamReader• Located in the System.IO namespace• Derived from the TextReader class

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

Object-Oriented Application Development Using VB .NET

4

Examining VB .NET Input and Output

• In a file-based system– A file

• Represents the collection of all the data• A file consists of records

– A record• Represents a single entity

– A field• An attribute that will be included for each record in

the file• A record consists of fields

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

Object-Oriented Application Development Using VB .NET

5

Sequential File Processing

• Sequential file processing example– Text boxes

• Allow users to enter values for each record to be saved to a sequential file

• Names of the text boxes– txtStRegNo– txtLength– txtManufacturer– txtYear– txtCustPhoneNo

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

Object-Oriented Application Development Using VB .NET

6

Sequential File Processing

• Sequential file processing example (continued)– Buttons

• Save To File button– Clicked to save the text box values to a sequential file

• List Records button– Clicked to extract the data from the file and display the

results in a multiline text box with a vertical scroll bar• Exit button

– Closes the program

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

Object-Oriented Application Development Using VB .NET

7

Sequential File Processing

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

Object-Oriented Application Development Using VB .NET

8

General Format for StreamWriter and StreamReader

• The boat attribute file example– Uses the following methods of the StreamWriter class

• Write• WriteLine• Close

– Uses the following methods of the StreamReader class• Read• ReadLine• ReadToEnd• Peek• Close

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

Object-Oriented Application Development Using VB .NET

9

General Format for StreamWriter and StreamReader

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

Object-Oriented Application Development Using VB .NET

10

Adding Toolbars and Dialog Controls

• Dialog boxes and toolbars– Used to build professional user interfaces

• To incorporate a toolbar with graphic buttons on a form– Place the graphic images into the ImageList control– Add the toolbar control to the form– Link the toolbar’s ImageList property to the

ImageList

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

Object-Oriented Application Development Using VB .NET

11

Adding Toolbars and Dialog Controls

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

Object-Oriented Application Development Using VB .NET

12

Adding Toolbars and Dialog Controls

• ImageList control– Images property

• A collection of images• Used to open the Image Collection Editor

– Image Collection Editor is used to» Add an image to the collection» Change the order in which the images are displayed» Delete images from the collection

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

Object-Oriented Application Development Using VB .NET

13

Adding Toolbars and Dialog Controls

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

Object-Oriented Application Development Using VB .NET

14

Adding Toolbars and Dialog Controls

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

Object-Oriented Application Development Using VB .NET

15

Adding Toolbars and Dialog Controls• Toolbar control

– ImageList property• Used to link to the ImageList that holds the images

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

Object-Oriented Application Development Using VB .NET

16

Adding Toolbars and Dialog Controls

• Toolbar control– Buttons property

• Used to open the ToolBarButton Collection Editor– ToolBarButton Collection Editor can be used to

» Add buttons to the toolbar

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

Object-Oriented Application Development Using VB .NET

17

Adding Toolbars and Dialog Controls

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

Object-Oriented Application Development Using VB .NET

18

Adding Dialogs to the Application

• Dialog boxes– Provide richness and standardization for common

user interface operations– For example

• Functions which should have a common look and feel, regardless of the application– Opening and saving files– Changing colors– Changing fonts

– To add a dialog box to an application• Double-click the dialog control in the Toolbox

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

Object-Oriented Application Development Using VB .NET

19

The Save File Dialog Box

• SaveFile dialog box opens a file for saving

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

Object-Oriented Application Development Using VB .NET

20

OpenFile Dialog Box

• OpenFile dialog box opens a file for reading

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

Object-Oriented Application Development Using VB .NET

21

Adding the Color Dialog Box

• Color dialog box is used to change the color in applications

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

Object-Oriented Application Development Using VB .NET

22

The FontDialog Box

• FontDialog control– Used to change fonts and font colors in

applications– Sets the Font property for controls

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

Object-Oriented Application Development Using VB .NET

23

Making Objects Persistent

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

files• Two approaches to achieving persistence

– Attribute storage– Object storage

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

Object-Oriented Application Development Using VB .NET

24

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 25: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

25

Making Objects Persistent

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

Object-Oriented Application Development Using VB .NET

26

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 27: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

27

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 28: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

28

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 29: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

29

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 30: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

30

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 31: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

31

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 32: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

32

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 33: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

33

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 34: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

34

Data Access Methods

• CustomerDA class (continued)– Additional methods

• Initialize• Terminate• GetAll

– Exception handler classes• NotFoundException• DuplicateException

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

Object-Oriented Application Development Using VB .NET

35

Communicating with a Data Access Class

• Customer class– Invokes methods in CustomerDA – Methods

• Find• AddNew• Find• Delete• Initialize• Terminate• GetAll

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

Object-Oriented Application Development Using VB .NET

36

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 37: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

37

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 38: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

38

Changing a Customer

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

Public Sub Update()CustomerDA.Update(Me)

End Sub

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

Object-Oriented Application Development Using VB .NET

39

Deleting a Customer

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

Public Sub Delete()CustomerDA.Delete(Me)

End Sub

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

Object-Oriented Application Development Using VB .NET

40

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 41: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

41

Additional Problem Domain Methods

• Additional PD methods (continued)– GetAll

Public Shared Function GetAll() As ArrayListReturn CustomerDA.GetAll

End Function

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

Object-Oriented Application Development Using VB .NET

42

Implementing Persistence with a Sequential File

• Attribute storage– Used for sequential access files

• The Initialize method– Reads customer’s attribute values from the

sequential file– Creates customer instances– Stores references for these instances in an

ArrayList

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

Object-Oriented Application Development Using VB .NET

43

Implementing Persistence with a Sequential File

• Terminate method– Creates a file that

• Contains attribute values for all the customer instances referenced by the ArrayList customers

• Find method– Seeks a customer instance with a phone number

that matches the value received by the method• If the customer is found

– Its reference is returned• If the customer is not found

– A NotFoundException is thrown

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

Object-Oriented Application Development Using VB .NET

44

Implementing Persistence with a Sequential File

• AddNew method– Adds the new reference to the ArrayList after

checking for a duplicate phone number• A duplicate phone number is assumed to be a

duplicate customer

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

Object-Oriented Application Development Using VB .NET

45

Implementing Persistence with a Sequential File

• Update method– Contains no code– Updates are made to the customer instance by

invoking accessor methods• setName• setAddress• setPhoneNo

– Later• Terminate method

– Writes the attribute values for all the instances to a sequential file

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

Object-Oriented Application Development Using VB .NET

46

Implementing Persistence with a Sequential File

• Delete method– Removes a customer from the system by

• Removing the customer from the ArrayList customers

– Later• Terminate method

– Saves all the customers in the ArrayList customers to the sequential file

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

Object-Oriented Application Development Using VB .NET

47

Implementing Persistence with a Sequential File

• GetAll method– Returns a reference to the customers ArrayList

• DuplicateException and NotFoundException classes– Inform the invoking client of a problem

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

Object-Oriented Application Development Using VB .NET

48

Testing CustomerDA for Sequential File Implementation

• The tester application will:– Create two customer instances– Invoke the Initialize method– Invoke the AddNew method to add the two new

customers to storage– Retrieve a reference to the first customer by

invoking the Find method

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

Object-Oriented Application Development Using VB .NET

49

Testing CustomerDA for Sequential File Implementation

• The tester application will (continued):– Invoke the GetAll method to retrieve references to

both customers– Invoke the Delete method for the second customer

and verify the deletion– Change the first customer’s address and verify the

change using the Update method– Invoke the Terminate method

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

Object-Oriented Application Development Using VB .NET

50

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 51: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

51

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 52: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

52

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 53: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

53

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 54: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

54

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 55: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

55

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 56: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

56

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 57: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

57

VB .NET Database Access Classes

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

Object-Oriented Application Development Using VB .NET

58

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 59: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

59

VB .NET and DBMS Example

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

Object-Oriented Application Development Using VB .NET

60

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 61: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

61

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 62: Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes…

Object-Oriented Application Development Using VB .NET

62

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