1 / 38

Introduction to Java Development with IDS

Introduction to Java Development with IDS. Jean Georges Perrin IIUG GreenIvory.com JGP.net. Tuesday, October 3 rd 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

lily
Download Presentation

Introduction to Java Development with IDS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  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

  4. Who am I? • My Unix box usually answers…

  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

  7. And you… • Who knows 4GL? • Who knows Java? • Who thinks Java is difficult? • Who knows .net?

  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

  9. Architecture Application JDBC Driver Data

  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.1) • 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 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…

  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.*; 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

  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 // 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

  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. 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", "", "");

  25. 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");

  26. 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") + ")"); }

  27. 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

  28. 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

  29. Your first application using Eclipse • Create a project • Add the library • Create the class • Run it

  30. 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

  31. Your first application using a framework • Goals of a framework • Ease of use • Small learning curve • Database connectivity • Business logic

  32. BlueGazelle • Open Source framework • Soon to be downloadable from http://www.greenivory.com

  33. 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

  34. Conclusion • Java offers a standard way of accessing data. • Java is working in a distributed environment. • Frameworks simplify the developers’ life.

  35. 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

  36. 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).

  37. 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

  38. Introduction to Java Development with IDS Thanks for your patience Come back to me… jgp@iiug.org jgp@jgp.net

More Related