Upload
berniece-mckinney
View
212
Download
0
Embed Size (px)
Citation preview
Object-Oriented Software
How does it differ from procedural? How is it similar to procedural? Why has it become so popular? Does it replace or supplement procedural? What is the point? Why bother? Is it here to stay or gone tomorrow?
An Object-Oriented Program (OOP)
Is composed of a collection of individual units called objects which package data and functionality together, rather than of lists of instructions which act on external data.
Each object is capable of: – receiving calls from other objects to run methods, – executing its own methods, and – sending calls to run methods in other objects.
What is an Object in OOP?
An object is a software construct that bundles together data (state) and function (behavior) which, taken together, represent an abstraction of a thing, event, service, etc.
An object is an instance of a class. A class models a group of things, events, services, etc.; an object models a particular member of that group.
What is in a Class (or Object)?
A class contains attributes and methods. Attributes describe state; methods perform actions. Attributes may be Java primitives, or objects
(strings, dates, arrays, other objects, etc). Methods may be instance methods, which only work
when the class is instantiated as an object, or static methods, which may be used independently of class instantiation.
Objected-Oriented vs. Procedural
Both types of language use structured programming logic; the logical architecture of a Java method will resemble that of an ILE RPG procedure.
The main difference is macro-architecture:– With OO, logic and data reside together in objects– OO design focuses on object relationships and
interactions rather than code block relationships
Java Source and Object Files
Compilation Units (.java files)– With a main method– Without a main method
Java Bytecode (.class files)– Compilation-level class files– Nested class files
Glazers Interfaces Package
What is a Java package? com.glazers.interfaces package Five compilation units:
– GetOpenPO – import open POs– GetInterCo – import intercompany transfers– GetOpenCO – import open customer orders– Function – class of static methods– LogMaker – class to make log object
Examples of Java Files
Function.java
Function.class
GetOpenPO.java
GetOpenPO.class
ImportOpenPO.class
More Examples of Java Files
LogMaker.java
LogMaker.class
LogMaker$PrintEnding.class
LogMaker$PrintHeading.class
LogMaker$PrintLine.class
LogMaker$PrintMethods.class
Integration ETL Program Structure
Five Basic Steps– Open log file and database connections– Extract the result set from source system– Transform any data items– Load the data batch in target system – Close log file and database connections
What are the Objects?
Log Object Database Connection Objects SQL Statement Objects Result Set Objects BatchInsert Objects String and Date Objects
The Code Environment
package com.glazers.interfaces;
import java.io.*;import java.sql.*;import java.util.*;import com.ibm.as400.access.*;import com.javaranch.common.GDate;import com.javaranch.common.JDate;import com.glazers.interfaces.*;
GetOpenPO Class and main
public class GetOpenPO {
public static void main(String args[]) {
// Create an ImportOpenPO object
ImportOpenPO impObj = new ImportOpenPO();
Full main method
// Create an ImportOpenPO object
ImportOpenPO impObj = new ImportOpenPO();
// Call the mainLine and receive its return code
System.exit(impObj.mainLine(args[0],args[1],
args[2],args[3],args[4],args[5]));
Comments
// The main method for class GetOpenPO takes six parameters:// 1) Log File Directory Path (ex. Home/JavaApps/Manu)// 2) Oracle Database Name (SCPODEV, SCPOTEST, etc.)// 3) Oracle UserID// 4) Oracle Password// 5) AS/400 UserID// 6) AS/400 Password// After creating an ImportOpenPO object, these parameters are// passed to its mainLine method.
ImportOpenPO Class & mainLine
class ImportOpenPO {
public int mainLine
(String dirPath, String oraSID,
String oraUser, String oraPwd,
String as400User, String as400Pwd) {
ImportOpenPO Code Structure
try [outer try/catch block] [start the log] try [inner try/catch block] open database connections extract result set from source system perform any data transformations load data batch into target system close database connections catch [catch inner exceptions] catch [catch outer exceptions]
Outer try statements
try {
// Create LogMaker object and begin logging
LogMaker log = new LogMaker(dirPath,"OpenPO.log");
log.printHeading("Open PO Import Log");
// If run interactively, display running message
System.out.println ("Open PO Import is running");
Inner try block job steps
Open database connections Create Sql statement objects Extract the result set Loop throught the result set:
– Extract the data items from result set object– Perform any data transformation– Set the data into the batchInsert object
Check error table for any rejects– If any rejects, print rejects to log
Close result sets and database connections
Connect to the iSeries
// Register the AS400 JDBC Driver
DriverManager.registerDriver(new AS400JDBCDriver());
// Create a properties object and connect to the database
Properties as400Prop = Function.getAS400Prop(as400User,as400Pwd);
conn400 = DriverManager.getConnection ("jdbc:as400://GLAZERS",as400Prop);
Connect to Oracle
// Load the Oracle JDBC driver
Class.forName("oracle.jdbc.driver.OracleDriver");
// Get the Oracle connection string
String oraConnStr = Function.getOraConnStr(oraSID,oraUser,oraPwd);
// Connect to the database server
connOra = DriverManager.getConnection(oraConnStr);
connOra.setAutoCommit(false);
Extracting the Result Set
// Get the SQL statement to assign to the stmt400 sqlQuery string
String sqlQuery = getSQL(); // Create a Statement object (stmt400)stmt400 = conn400.createStatement(); // Execute the SQL Select and obtain the
ResultSet object (rs)rs = stmt400.executeQuery(sqlQuery);
The Batch Insert Prepared Statement
// Construct the Insert Prepared Statement before entering the loop
PreparedStatement sqlInsert = connOra.prepareStatement("INSERT INTO INTINS_SCHEDRCPTS " + "(item, loc, scheddate, qty, expdate, ponum, " +"startdate, dateship, masterloadid, loadid," +"integration_stamp, integration_jobid)" +"VALUES (?,?,?,?,?,?,?,?,?,?,?,?)");