Syntra-West
Syntra-West Doorniksesteenweg 220 8500 Kortrijk Tel. 056/26.02.00• Fax 056/22.81.07
i
Inhoudsopgave SYNTRA-WEST............................................................................................................................................................ 0 INITIATIECURSUS JAVA & DATABASE-DEVELOPNMENT ........................................................................... 0 JBUILDER 2005 ............................................................................................................................................................ 0 1.
INLEIDING.......................................................................................................................................................... 2 1.1 1.1.1 1.1.2 1.1.3 1.2 1.3 1.3.1 1.3.2 1.3.3 1.4
2.
JAVA EN JBUILDER .......................................................................................................................................... 2 Java ........................................................................................................................................................... 2 Java Platformen ........................................................................................................................................ 2 JBuilder ..................................................................................................................................................... 3 DOS-PROGRAMMA VERSUS GUI PROGRAMMA .................................................................................................. 3 APPLICATIE OF APPLET ..................................................................................................................................... 4 Applicatie (toepassing).............................................................................................................................. 4 Applet ........................................................................................................................................................ 4 JSP, Servlets, WebServices,....................................................................................................................... 4 WAAROM ZOU U JAVA-TOEPASSINGEN EN -APPLETS ONTWIKKELEN ? .............................................................. 4
INSTALLATIE VAN DE PAKKETTEN VOOR DEZE CURSUS................................................................. 5 2.1 JAVA JRE & J2SE............................................................................................................................................. 5 2.2 JBUILDER TRIAL VERSION ................................................................................................................................ 6 2.2.1 Installatie van ‘Default Project Properties’ in JBuilder voor deze cursus. .............................................. 6 2.3 TOMCAT (WEB & APPLICATION SERVER) ......................................................................................................... 9 2.4 INSTALLATIE..................................................................................................................................................... 9 2.5 ENVIRONMENT VARIABLES (OMGEVINGSVARIABELEN) & PORT-NUMBER ...................................................... 10 2.6 TESTEN ........................................................................................................................................................... 10 2.7 MYSQL AND JAVA DEVELOPER’S GUIDE ....................................................................................................... 11 2.7.1 Installatie van de voorbeelden................................................................................................................. 11 2.8 MYSQL (OPEN SOURCE DATABASE)............................................................................................................... 11 2.8.1 Installatie van MySQL onder Windows ................................................................................................... 11 2.8.2 Starten en gebruik van MySQL-console .................................................................................................. 12 2.9 INSTALLATIE VAN NIEUWE JDBC-DRIVERS ONDER JAVA. .............................................................................. 12 2.10 INSTALLATIE VAN NIEUWE JDBC-DRIVERS ONDER JBUILDER ........................................................................ 13 2.10.1 We beginnen via Tools/Enterprise Setup................................................................................................. 14 2.10.2 JDBC-driver toevoegen aan je project of aan de default project properties. ......................................... 17 2.10.3 JDBC-driver testen in JBuilder ............................................................................................................... 18 2.11 DATABASE PILOT............................................................................................................................................ 18
3.
MYSQL ............................................................................................................................................................... 20 3.1 3.2
4.
OPEN SOURCE RELATIONELE DATABASE ......................................................................................................... 20 BELANGRIJKE BASIS-COMMANDO’S ................................................................................................................ 20 KENNISMAKING MET PROGRAMMEREN IN JBUILDER.................................................................... 21
4.1 BASISTERMEN EN CONCEPTEN IN JAVA ........................................................................................................... 21 4.1.1 Frame ...................................................................................................................................................... 21 4.1.2 Werkbalk of Toolbar................................................................................................................................ 23 4.1.3 Frame aanpassen .................................................................................................................................... 23 4.1.4 Componenten plaatsen ............................................................................................................................ 23 4.1.5 Eigenschappen aanpassen....................................................................................................................... 24 4.1.6 Property-Event-Pane of Inspektor........................................................................................................... 25 4.1.7 Properties ................................................................................................................................................ 26 4.1.8 Events ...................................................................................................................................................... 27
4.1.9 4.1.10 4.1.11 4.1.12 5.
Bewaren van het project.......................................................................................................................... 27 Een stand alone versie maken dmv een uitvoerbare Jar-bestand............................................................ 28 Project bestanden en automatisch gegeneerde bestanden ...................................................................... 31 Help mogelijkheden van JBuilder ........................................................................................................... 33
ONZE EERSTE DATABASE APPLICATIE ................................................................................................. 36 5.1 5.2 5.3 5.4 5.5 5.6
6.
OPHALEN VAN RECORDS ................................................................................................................................. 36 ERROR AFHANDELING EN INFO-MELDINGEN IN EEN APART VENSTER PLAATSEN ............................................. 43 TOEVOEGEN VAN RECORDS............................................................................................................................. 44 VERWIJDEREN VAN RECORDS ......................................................................................................................... 45 WIJZIGEN VAN RECORDS................................................................................................................................. 46 HET SLUITEN VAN EEN DATABASE CONNECTIE................................................................................................ 46 BIJKOMENDE DATABASE TECHNIEKEN................................................................................................ 48
6.1 PREPAREDSTATEMENTS.................................................................................................................................. 48 6.2 NAVIGEREN BINNEN EEN RESULTSET .............................................................................................................. 50 6.2.1 Navigeren naar de eerste record in een resultset.................................................................................... 52 6.2.2 Navigeren naar een vorig record in een resultset ................................................................................... 52 6.2.3 Navigeren naar een volgende record in een resultset ............................................................................. 53 6.2.4 Navigeren naar de laatste record in een resultset................................................................................... 53 6.2.5 Navigeren naar een bepaalde record in een resultset ............................................................................. 53 7.
CASE-STUDY DATABASE-VOORBEELD VAN SUN ................................................................................ 54 7.1 HOE HET VOORBEELD PROGRAMMA IN EEN JBUILDER PROJECT INLEZEN ? ..................................................... 55 7.2 JAVA-CODE NADER BEKEKEN ........................................................................................................................ 55 7.2.1 UML JDBCAdapter.java ......................................................................................................................... 55 7.2.2 Code JDBCAdapter.java ......................................................................................................................... 56 7.2.3 UML TableExample.java......................................................................................................................... 58 7.2.4 Code TableExample.java......................................................................................................................... 59 7.2.5 UML TableMap.java ............................................................................................................................... 61 7.2.6 Code TableMap.java ............................................................................................................................... 62 7.2.7 UML TableSorter.java............................................................................................................................. 64 7.2.8 Code TableSorter.java............................................................................................................................. 65
8.
WERKEN MET ‘LARGE OBJECT DATATYPES’ (BLOB’S, CLOB’S)................................................... 67 8.1 8.2 8.3 8.4 8.5
9.
VERSCHILLENDE SQL3 TYPE’S ...................................................................................................................... 67 LARGE OBJECT DATATYPES EN MYSQL ........................................................................................................ 67 CREATIE VAN DEMO-TABEL BLOBS IN DE DATABASE JAVAPRO ..................................................................... 67 INVOEGEN VAN EEN BLOB............................................................................................................................. 69 UITLEZEN VAN EEN BLOB ............................................................................................................................. 69 DATASETS, TEXT-BESTANDEN EN DATA-AWARE COMPONENTEN.............................................. 71
9.1 TEXT-BESTANDEN KOPPELEN AAN EEN DATASET ............................................................................................ 71 9.2 SCHEMA - BESTANDEN OM VELDEN WEER TE GEVEN ....................................................................................... 76 9.2.1 Het kan ook zonder een schema-file !...................................................................................................... 76 9.2.2 Master/detail verbindingen leggen.......................................................................................................... 77 10.
INPUT EN OUTPUT ...................................................................................................................................... 79
10.1 FILE INPUT EN OUTPUT .................................................................................................................................... 79 10.1.1 Tekstrepresentatie en character codering (character encoding) ............................................................ 79 10.2 DE FILE CLASS ................................................................................................................................................ 79 10.3 DE RANDOMACCESSFILE CLASS ..................................................................................................................... 80 10.3.1 Streams, readers en writers..................................................................................................................... 81 11.
DATABASE MOGELIJKHEDEN VAN JBUILDER ................................................................................. 86
11.1 JDBC VERSUS ODBC..................................................................................................................................... 86 11.1.1 JDBC Driver Types ................................................................................................................................. 86 11.2 OPZETTEN VAN JDBC - ODBC CONNECTIE MET DE EMPLOYEE.GDB DATABASE ............................................ 88
11.3 12. 12.1 12.2 12.3
DATABASE TOEPASSING MET GRID, STATUSBAR EN NAVIGATOR. ................................................................... 89 DATABASE BENADERING VIA DATA MODULE IN JBUILDER....................................................... 93 WAAROM EEN DATA-MODULE GEBRUIKEN ..................................................................................................... 93 CASE-STUDY ................................................................................................................................................... 93 OPLOSSING ..................................................................................................................................................... 93
13.
APPENDIX A.................................................................................................................................................. 98
14.
APPENDIX B .................................................................................................................................................. 99
15.
APPENDIX C................................................................................................................................................ 102
16.
APPENDIX D................................................................................................................................................ 104
17.
CASE STUDY : HOE TEST IK MIJN JDBC-DRIVER IN EEN SERVLET ?...................................... 104
18.
CASE STUDY : HOE ZET IK EEN JNDI-DATASOURCE OP ? .......................................................... 107
B A S I S C U R S U S
J A V A
M E T
J B U I L D E R
G I N O
S C H E P P E R S
1. Inleiding 1.1 Java en JBuilder 1.1.1 Java
Hoewel Java nieuw en interessant is, is het in wezen gewoon een programmeertaal waarmee u programma’s kunt schrijven die op het Internet kunnen worden uitgevoerd. In dit opzicht lijkt Java meer op populaire de programmeertalen, zoals C, C++, Visual Basic en Pascal, dan op een opmaaktaal voor Web-pagina’s, zoals HTML of een eenvoudige scripttaal, zoals JavaScript. Java is een objectgeoriënteerde programmeertaal die is ontwikkeld door Sun Microsystems, een bedrijf dat bekend staat als ontwikkelaar van geavanceerde UNIX-werkstations. De taal Java is gebaseerd op C++; Java is klein, eenvoudig en overdraagbaar naar verschillende platforms en besturingssystemen, zowel op het niveau van de broncode als op het binaire niveau. Dit betekent dat Java-programma’s (applets en toepassingen) op elke computer kunnen worden uitgevoerd waarop een virtuele machine voor Java is geïnstalleerd. Java-compatibel wil zeggen dat de betreffende browser Java-programma’s, zogenaamde applets, kan downloaden en uitvoeren op de computer waarop de browser draait. Applets worden op ongeveer dezelfde manier op Web-pagina’s weergegeven als afbeeldingen. In tegenstelling tot afbeeldingen zijn applets echter dynamisch en interactief. Hoewel Java vermoedelijk het meest wordt gebruikt voor het maken van applets, is het belangrijk om te weten dat u veel meer met Java kunt doen dan applets maken en gebruiken. Java is ontwikkeld als een complete, universele programmeertaal waarmee u dezelfde typen taken kunt uitvoeren en hetzelfde type problemen kunt oplossen als in andere programmeertalen, zoals C of C++. Daarbij is het eveneens mogelijk om nieuwe internettechnologieën zoals servlets, JSP, webservices,... mee op te nemen. 1.1.2 Java Platformen
De java-technologie werd door Sun gebundeld in drie platformen : Java 2 Platform, Standard Edition (J2SE) Java 2 Platform, Enterprise Edition (J2EE) Java 2 Platform, Micro Edition (J2ME)
Java 2 Platform, Standard Edition (J2SE) De standaard editie is bedoeld om client-side enterprise applicaties te maken. (Applicaties of applets). Rond deze versie draait het vernonamelijk in deze cursus, en wordt ook meegeleverd op de CD. Java 2 Platform, Enterprise Edition (J2EE) Deze technologie is bedoeld om je ontwikkelingen op een gestandaardizeerde, gemodulariseerde en via herbruikbaarheid van componenten te baseren. Deze technologie wordt gebaseerd op (EJB’s) Enterprise JavaBeans. Het zijn herbruikbare componenten, die beheerd worden, door een applicatie-server. Het laat een ontwikkelaar toe zich te richten op de gewenste ‘business-rules’, eerder dan zich te hoeven bekommeren om de infrastructuur of details hiervan. Java 2 Platform, Micro Edition (J2ME) Deze technologie is bedoeld om ontwikkelingen mogelijk te maken op toestellen met een beperkt geheugen zoals GSM, pager’s, setup-boxen, smart cards,…
2
B A S I S C U R S U S
J A V A
M E T
J B U I L D E R
G I N O
S C H E P P E R S
1.1.3 JBuilder
Java is enkel een programmeertaal. JBuilder van Borland bouwt echter een volledige omgeving rond deze programmeertaal, zodat de ontwikkelingstijd nodig voor het schrijven van een programma sterk wordt gereduceerd. We kunnen dan ook terecht spreken van een Rapid Application Development - tool. JBuilder ondersteunt Java API 1.4.1 en alle vorige versie tot 1.0. De momenteel laatste API versie beschikbaar gesteld door Sun. Voor een meer uitgebreide feature-matrix verwijzen we naar de Borland-site : www.Borland.com/jbuilder Samengevat biedt JBuilder de volgende belangrijkste functionaliteiten : Integrated Development Environment Java 1.x als onderliggende taal Creëren van JavaBeans Debug-faciliteiten Database-benadering en SQL ondersteuning Geïntegreerde helpsystemen
1.2 Dos-programma versus GUI programma Met Java (JBuilder) worden programma’s of Applets voor GUI ontwikkeld (Windows,Macintosh, OSF-motif). Een belangrijk verschil tussen DOS en GUI is dat GUI een grafische gebruikersinterface is (GUI = Graphical User Interface), met als belangrijke eigenschap dat de beschikbare opties gelijktijdig aan de gebruiker worden aangeboden in de vorm van objecten op het scherm. Een object (component) kan gezien worden als een gereedschap (knop, tekstvak,menu) dat klaar ligt voor gebruik. DOS-programma’s worden sequentiëel geschreven, d.w.z. de ene gebeurtenis volgt op de andere. In een DOSprogramma wordt een reeks opdrachten uitgevoerd in een volgorde ontworpen door de programmeur. GUI werkt anders. Een toepassing voor GUI toont op het scherm alle beschikbare opties die de gebruiker kan selecteren. Dit vereist een nieuwe manier van programmeren nl. gebeurtenis-gestuurd (event-driven) en objectgeoriënteerd (object-oriented) programmeren. Gebeurtenis-gestuurd programmeren betekent dat de programmeur niet langer volledig verantwoordelijk is voor de wijze waarop een programma wordt doorlopen, maar dat ook de gebruiker invloed heeft op de programmaafloop. De gebruiker kiest een optie en daarop moet het programma correct reageren. Wanneer de opties
3
B A S I S C U R S U S
J A V A
M E T
J B U I L D E R
G I N O
S C H E P P E R S
bestaan uit drie knoppen, bepaalt uiteraard de gebruiker de volgorde van aanwenden van de knoppen en niet het programma. Elke gebeurtenis krijgt zijn stukje code (event), die ontworpen is om de betreffende gebeurtenis af te handelen. Objectgeoriënteerd programmeren splitst een programma op in discrete objecten (= forms, menu’s, componenten), waarbij elk object zijn eigen code en gegevens heeft. Hierdoor wordt elk object enigszins onafhankelijk van andere objecten. Vensters, knoppen, tekstvakken, enz... worden als objecten behandeld. Al die objecten kunnen daaraan verbonden gegevens (properties - attributen) en code (events) hebben. 1.3 Applicatie of applet 1.3.1 Applicatie (toepassing)
Toepassingen: zijn programma’s zoals u die kent van uw grafische interface. Gewoonlijk halen deze programma’s gegevens binnen die de gebruiker invoert en passen er een bepaalde bewerking op toe. Het resulaat verschijnt vervolgens in het scherm, of wordt afgedrukt of op schijf opgeslagen. 1.3.2 Applet
Applets : zijn speciale toepassingen die zijn bedoeld om op inzichtelijke wijze uitgevoerd te worden in een webbrowser. Applets worden geladen omdat de HTML-code daarom vraagt. Het bijbehorende bestand .class wordt vervolgens overgezet naar de client-computer en uitgevoerd door de browser, gewoonlijk in een duidelijk afgebakend rechthoekig kader. 1.3.3 JSP, Servlets, WebServices,...
Deze technologieën maken eveneens deel uit van de huidige Java-hype, maar komen niet expliciet in deze cursus aan bod. 1.4 Waarom zou u Java-toepassingen en -applets ontwikkelen ? Voor de ontwikkelaar biedt Java allerlei voordelen. Aangezien de taal onafhankelijk is van het platform, werkt een toepassing die is geschreven in Java op een groot aantal computers en onder een groot aantal besturingssystemen. De enige voorwaarde is dat de Java-interpreter (ook wel virtuele computer genoemd) op de doelcomputer aanwezig is. De verspreider van webinformatie slaakte al een zucht van verlichting na de komst van de CGI-interface (Common Gateway Interface). Dankzij deze interface is het mogelijk gegevens in te voeren op een clientcomputer en deze te verzenden naar de server, zodat de gegevens een bepaalde bewerking kunnen ondergaan, waarna ze terug worden gezonden. Java gaat veel verder : Java-applets worden uitgevoerd op elk client-systeem. Hierdoor krijgen de web-pagina’s een grotere mate van interactiviteit, neemt de reactiesnelheid van de pagina toe en neemt de belasting van het net af. De kans is groot dat Java in de nabije toekomst de interactieve standaard voor het web wordt. In de eerste plaats krijgt de eindgebruiker te maken met webpagina’s die dichter bij hem staan en gebruikersvriendelijker zijn. Daarnaast worden de vaak zo bekritiseerde reactiesnelheden enorm verbeterd omdat de meeste bewerkingen lokaal, op de computer van de gebruiker, worden afgehandeld. De ontwikkelingen zullen echter veel verder gaan: de gebruiker zal geen platform meer hoeven te kiezen op basis van zijn besturingssyteem en de software die hij wil gebruiken. Als de toekomst zo veelbelovend is als Sun voorziet, zal de keuze van een platform veel minder belangrijk zijn dan in het verleden, omdat de toepassingen op alle platforms op vergelijkbare wijze kunnen worden uitgevoerd.
4