Upload
ashley-campbell
View
218
Download
1
Tags:
Embed Size (px)
Citation preview
Introduction to Java Development with IDS
Jean Georges PerrinIIUG
I04
Tuesday, October 3rd 2006 • 09:00 – 10:00.
Platform: IDS, Java
2
Agenda
• Who am I?
• Architecture
• Requirements
• Your very first cup of Java
• JDBC
• Your first application using the Command Prompt
• Your first application using Eclipse
• Your first application using a framework
3
Agenda
• Who am I?
• Architecture
• Requirements
• Your very first cup of Java
• JDBC
• Your first application using the Command Prompt
• Your first application using Eclipse
• Your first application using a framework
5
Who am I (outside of a Unix box)?
• Jean Georges Perrin
• Development tools (xGL, Java EE, PHP)
• Works with Informix products since ’97
• IIUG board member since ’02
• Lives in Strasbourg, France
6
A little more…
• Application developer, started with Visual Basic, in the early 90s
• In the web since 1994
• Move to 4GL in 1997
• Goals:• Webizing all things I touched (business apps,
catalogs and i-4GL…)• Find the ease of use of Visual Basic
8
Agenda
• Who am I?
• Architecture
• Requirements
• Your very first cup of Java
• JDBC
• Your first application using the Command Prompt
• Your first application using Eclipse
• Your first application using a framework
10
Agenda
• Who am I?
• Architecture
• Requirements
• Your very first cup of Java
• JDBC
• Your first application using the Command Prompt
• Your first application using Eclipse
• Your first application using a framework
11
Requirements
• #1 - IDS (from v7.x, but also works on OnLine and SE)• Where: www.iiug.org, www.informix.com
• #2 - Java (Java SDK v5.x)• Where: www.javasoft.com
• #3 - JDBC driver (IBM Informix JDBC 3.0)• Where: www.informix.com
• #4 - Option: Eclipse (v3.2.0)• Where: www.eclipse.org
12
Agenda
• Who am I?
• Architecture
• Requirements
• Your very first cup of Java
• JDBC
• Your first application using the Command Prompt
• Your first application using Eclipse
• Your first application using a framework
13
Your very first cup of Java
• Hello, world… in Java
• Use of “javac”
• Use of “java”
• Code snippet:package org.iiug.test;
public class HelloWorld {
public static void main(String[] args) { System.out.println("Hello, world..."); }}
Source code is self organizing in packages
Modules are organized in classes
main {…} is MAIN … END MAIN
“Hello, world…” is always the same, in any language…
fglpc
fglgo
14
Java Pros & Cons
• Object Oriented (OO) development
• Event driven programming model
• User Interface (UI) & Business Logic (BL) tightly linked
• Open architecture, open standards
• General purpose development language
• Industry standard
• Looks like “hype” to developers
15
4GL Pros & Cons
• Procedural development
• “Controlled” events
• UI and BL somehow separated (.per & .4gl)
• Proprietary solution
• Business apps development language
• Not a standard in industry
• Hard to attract new developers
16
Agenda
• Who am I?
• Architecture
• Requirements
• Your very first cup of Java
• JDBC
• Your first application using the Command Prompt
• Your first application using Eclipse
• Your first application using a framework
17
JDBC
• Types of driver (annoying theory)
• Standard way of talking to a database (forget about SQL/J)
• Use a URL, for IBM Informix:jdbc:informix-sqli://popeye:1526/stores_demo:informixserver=ol_popeye;user=informix;password=informix
18
Agenda
• Who am I?• Architecture• Requirements• Your very first cup of Java• JDBC• Your first application using the Command
Prompt• Your first application using Eclipse• Your first application using a framework
19
Your first application using the Command Prompt• Understand the role of the “CLASSPATH”
• Full source code (copy / paste):import java.sql.*;
public class MyFirstJDBCConnection {
public static void main(String[] args) { // Define my local variables Connection myConnection; Statement myStatement; ResultSet myResultSet; // Loading driver try { System.out.println(">> Loading the driver"); Class.forName("com.informix.jdbc.IfxDriver"); } // end try catch (ClassNotFoundException e) { System.out.println("ERROR: Failed to load IBM Informix JDBC driver."); return; } // end catch
20
Your first application (2) try { // Connection to database System.out.println(">> Connecting to the database"); myConnection = DriverManager.getConnection ("jdbc:informix-sqli://popeye:1526/stores_demo: informixserver=ol_popeye;user=informix;password=informix", "", ""); // Statement creation System.out.println(">> Creating the statement"); myStatement = myConnection.createStatement(); // Resultset creation & execution System.out.println(">> Executing the query"); myResultSet = myStatement.executeQuery ("SELECT fname, lname, customer_num FROM customer ORDER BY lname"); // Outputting the result System.out.println(">> Step 4 - Dumping data"); while (myResultSet.next()) { System.out.println ( myResultSet.getString("fname") + myResultSet.getString("lname") + " (" + myResultSet.getString("customer_num") + ")"); }
21
Your first application (3) // Cleaning System.out.println(">> Cleaning"); myResultSet.close(); myStatement.close(); myConnection.close(); } // end try catch (SQLException e) { System.out.println("ERROR: SQL exception: " + e.getMessage()); e.printStackTrace(); return; } // end catch } // end main} // end class
22
Declaring objects to use
• Code snippet:
• The “Connection” is the real connection to the database, it is (re)created each time.• Except when using “connection pooling”.
• The “Statement” is the real orders or queries to the database.
• The “ResultSet” contains a link to the data.
// Define my local variables Connection myConnection; Statement myStatement; ResultSet myResultSet;
Connection = DATABASE
Statement = STATEMENT
ResultSet = ARRAY OF RECORD / CURSOR
23
Loading the driver
• Code snippet:
• Drivers are uniquely named, for IBM Informix:
// Loading driver try { System.out.println(">> Loading the driver"); Class.forName("com.informix.jdbc.IfxDriver"); } // end try catch (ClassNotFoundException e) { System.out.println("ERROR: Failed to load IBM Informix JDBC driver."); return; } // end catch
com.informix.jdbc.IfxDriver
24
Agenda
• Who am I?
• Architecture
• Requirements
• Your very first cup of Java
• JDBC
• Your first application using the Command Prompt
• Your first application using Eclipse
• Your first application using a framework
25
Your first application using Eclipse
• Create a project
• Add the library
• Create the class
• Run it
26
Agenda
• Who am I?
• Architecture
• Requirements
• Your very first cup of Java
• JDBC
• Your first application using the Command Prompt
• Your first application using Eclipse
• Your first application using a framework
27
Your first application using a framework• Goals of a framework• Ease of use• Small learning curve
• Database connectivity
• Business logic
29
BlueGazelle Source CodeDatabase myDatabase = null;Record myRecord = null;Record myRow = null;int count = 0;int i = 0;
try { myDatabase = Databases.connect("stores_demo"); myRecord = myDatabase.createRecordFromSelect("SELECT fname, lname, customer_num FROM customer ORDER BY lname"); count = myRecord.getCount(); for (i = 0; i < count; i++) { myRow = myRecord.getRecordAt(i); System.out.println(myRow.getString("fname") + myRow.getString("lname") + " (" + myRow.getString("customer_num") + ")"); } } catch (Exception e) { System.out.println("ERROR: Exception raised: " + e.getMessage()); e.printStackTrace();} // end catch
30
Conclusion
• Java offers a standard way of accessing data.
• Java is working in a distributed environment.
• Frameworks simplify the developers’ life.
31
And now…
• Go to my other presentation: “Introduction to PHP development with IDS”
• (Give me good marks so I can be selected as best speaker of the conference and beat Darryl, Lester and Art - previous speakers).
32
And now (seriously)…
• Download Eclipse (I guess you all have IDS already)
• Get a book (O’Reilly has quite a few great books)
• Join the development-tools forum on IIUG web site
• Get started with a few examples
33
Jean Georges PerrinIIUG
I04Introduction to Java Development with IDS