380 likes | 495 Vues
Join Jean-Georges Perrin in this engaging session on Java development using IDS. This 1-hour talk covers the fundamental concepts, starting from the architecture of Java applications to hands-on examples, including your very first Java program and database interaction through JDBC. You'll learn how to set up your environment using the command prompt and Eclipse, and explore the pros and cons of Java and 4GL programming. Perfect for beginners or those looking to transition into Java development.
E N D
Introduction to Java Development with IDS Jean Georges Perrin IIUG GreenIvory.com JGP.net Tuesday, October 3rd 2006 • 09:00 – 10:00. Platform: IDS, Java
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
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
Who am I? • My Unix box usually answers…
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
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
And you… • Who knows 4GL? • Who knows Java? • Who thinks Java is difficult? • Who knows .net?
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
Architecture Application JDBC Driver Data
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
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.1) • Where: www.eclipse.org
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
Your very first cup of Java fglpc • Hello, world… in Java • Use of “javac” • Use of “java” • Code snippet: fglgo Source code is self organizing in packages Modules are organized in classes main {…} is MAIN … END MAIN package org.iiug.test; public class HelloWorld { public staticvoid main(String[] args) { System.out.println("Hello, world..."); } } “Hello, world…” is always the same, in any language…
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
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
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
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
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
Your first application using the Command Prompt • Understand the role of the “CLASSPATH” • Full source code (copy / paste): import java.sql.*; publicclass MyFirstJDBCConnection { publicstaticvoid 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
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") + ")"); }
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
Declaring objects to use // Define my local variables Connection myConnection; Statement myStatement; ResultSet myResultSet; • 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. Connection = DATABASE Statement = STATEMENT ResultSet = ARRAY OF RECORD / CURSOR
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
Connecting to the database • Code snippet: // 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 & Execution • Code snippet: // 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");
Looping around • Code snippet: // 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") + ")"); }
Cleaning • Code snippet: • Not only cleaning • Exception Handling! // 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
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
Your first application using Eclipse • Create a project • Add the library • Create the class • Run it
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
Your first application using a framework • Goals of a framework • Ease of use • Small learning curve • Database connectivity • Business logic
BlueGazelle • Open Source framework • Soon to be downloadable from http://www.greenivory.com
BlueGazelle Source Code • Code snippet: Database 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 FROMcustomer 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
Conclusion • Java offers a standard way of accessing data. • Java is working in a distributed environment. • Frameworks simplify the developers’ life.
Eclipse Java SE 5 Zend Framework? Java J2EE PHP 5 Java EE 5 4GL PHP OO in PHP 4 Complexity & Features Difficult Level of complexity / feature of languages over time Easy 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006
And now… • Come to see me in San Jose (May 2007) • Full Java Educational Seminar (you need to stand me for 3 hours) • “Introduction to EJB3 dev. with IDS and Viper” • I think I have a session or two on XML • (Give me good marks so I can be selected as best speaker of the conference and beat Darryl, Lester and Art - previous speakers and enter Hall of Fame).
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 • Come back to me
Introduction to Java Development with IDS Thanks for your patience Come back to me… jgp@iiug.org jgp@jgp.net