Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Chapter 13 Introduction to Data Access Classes and Persistence Object-Oriented Application Development Using VB .NET 1 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 Object-Oriented Application Development Using VB .NET 2 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 Object-Oriented Application Development Using VB .NET 3 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 Object-Oriented Application Development Using VB .NET 4 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 Object-Oriented Application Development Using VB .NET 5 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 Object-Oriented Application Development Using VB .NET 6 Sequential File Processing Object-Oriented Application Development Using VB .NET 7 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 Object-Oriented Application Development Using VB .NET 8 General Format for StreamWriter and StreamReader Object-Oriented Application Development Using VB .NET 9 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 Object-Oriented Application Development Using VB .NET 10 Adding Toolbars and Dialog Controls Object-Oriented Application Development Using VB .NET 11 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 Object-Oriented Application Development Using VB .NET 12 Adding Toolbars and Dialog Controls Object-Oriented Application Development Using VB .NET 13 Adding Toolbars and Dialog Controls Object-Oriented Application Development Using VB .NET 14 Adding Toolbars and Dialog Controls • Toolbar control – ImageList property • Used to link to the ImageList that holds the images Object-Oriented Application Development Using VB .NET 15 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 Object-Oriented Application Development Using VB .NET 16 Adding Toolbars and Dialog Controls Object-Oriented Application Development Using VB .NET 17 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 Object-Oriented Application Development Using VB .NET 18 The Save File Dialog Box • SaveFile dialog box opens a file for saving Object-Oriented Application Development Using VB .NET 19 OpenFile Dialog Box • OpenFile dialog box opens a file for reading Object-Oriented Application Development Using VB .NET 20 Adding the Color Dialog Box • Color dialog box is used to change the color in applications Object-Oriented Application Development Using VB .NET 21 The FontDialog Box • FontDialog control – Used to change fonts and font colors in applications – Sets the Font property for controls Object-Oriented Application Development Using VB .NET 22 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 23 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 24 Making Objects Persistent Object-Oriented Application Development Using VB .NET 25 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 26 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 27 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 28 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 29 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 30 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 31 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 32 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 33 Data Access Methods • CustomerDA class (continued) – Additional methods • Initialize • Terminate • GetAll – Exception handler classes • NotFoundException • DuplicateException Object-Oriented Application Development Using VB .NET 34 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 35 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 36 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 37 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 38 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 39 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 40 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 41 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 Object-Oriented Application Development Using VB .NET 42 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 Object-Oriented Application Development Using VB .NET 43 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 Object-Oriented Application Development Using VB .NET 44 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 Object-Oriented Application Development Using VB .NET 45 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 Object-Oriented Application Development Using VB .NET 46 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 Object-Oriented Application Development Using VB .NET 47 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 Object-Oriented Application Development Using VB .NET 48 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 Object-Oriented Application Development Using VB .NET 49 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 50 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 51 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 52 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 53 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 54 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 55 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 56 VB .NET Database Access Classes Object-Oriented Application Development Using VB .NET 57 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 58 VB .NET and DBMS Example Object-Oriented Application Development Using VB .NET 59 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 60 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 61 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 Object-Oriented Application Development Using VB .NET 62