Deel 9: Relationele Databases: Oef. & 1e client- server app 1 Internetapplicaties Deel 9: Relationele Databases: Oefeningen en 1e client- serverapplicatie.

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)
Internetapplicaties - II Gegevensinvoer 1 Internetapplicaties Deel 2: Gegevensinvoer: HTML-forms, JavaScript en JSP.
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Access en MySql Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
Deze presentatie mag noch geheel, noch gedeeltelijk worden gebruikt of gekopieerd zonder de schriftelijke toestemming van Seniornet Vlaanderen VZW Mijn.
MySQL-acties Klassikaal: Wijnen.sql. 1.Toon alle wijnen die er zijn. Toon de naam, kleur en prijs. SELECT `naam`,`kleur`,`prijs` FROM `wijnen`
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Het selecteren van data uit meerdere gekoppelde tabellen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Internetapplicaties - VIII Relationele Databases 1 Internetapplicaties Deel 8: Relationele Databases.
W ORD P RESS TECHNISCHE ACHTERGROND Kris Cardinaels 26 maart 2013.
LauwersCollege Buitenpost Informatica
Hoofdstuk 6: Controle structuren
Computervaardigheden en Programmatie Universiteit AntwerpenDatabank - Basis 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
De koektrommel of de grabbelton
Download en installeer de gereedschappen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Vorige week: Referentiele integriteit
SQL (structured Query Language) DDL (Data Definition Language) DML (Data Manipulation Language) Ontwerp databaseBevraag database.
Frank Stalpers en Ad Baars
Werken aan Intergenerationele Samenwerking en Expertise.
Workshop PHP Een productencatalogus Met database.
Java DataBase Connectivity
6.1 Inleiding HOOFDSTUK 6 METHODEN
Hoofdstuk 16 en 19 PHP en MYSQL
Presenteert:.
Deel XIII Eerste echte e-commerce applicatie (iteraties + impl ) 1 Internetapplicaties Deel 13: Eerste echte e-commerce applicatie: Enkele iteraties met.
OO Analyse in de praktijk OO Analyse in de praktijk V Enkele Design Patterns.
OO Analyse in de praktijk OO Analyse in de praktijk IV OO basisregels.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
Deel XX Hosting 1 Internetapplicaties Deel XX Hosting.
Deel X: JSP + Java + database 1 Internetapplicaties Deel 10: JSP + Java + database: Client Server via http.
Ontwikkeld door CWB3. Opbouw Presentatie 1.Wat is GeoSport? 2.Ontwerp 1.Gebruikte ontwerpmethodieken 2.Ervaring 3.Implementatie 1.Gebruikte technologieën.
Les 12: DTD.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
PHP & MYSQL LES 01 PHP BASICS. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
PHP & MYSQL LES 04 CMS: BEST PRACTICE. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
SQL ( SERVER ) Les #02: T-SQL. A GENDA Herhaling les 4 Views SELECT…INTO Beheren van tabellen: CREATE ALTER DROP Opdracht voor de volgende les.
LauwersCollege Buitenpost Informatica
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
Datamodellering en –verwerking 8C020 college 9. Terugblik college week 8 Terugkoppeling opdracht deel A Toepassingen van Petri-netten in biologie Oefeningen.
© imec 2000 © imec 2001 MAX+PLUS II Installatieprocedure.
Front-end development
Hoofdstuk 11 Databasemanagementsystem. hoofdstuk 112 STROKENDIAGRAMMEN llnrvoornaamtussenvachternaamstraathuisnummerpostcodeplaatstelefoongeslachtgebdatumklas.
2 August SQL Les August Agenda Herhaling Herhaling Cursors Cursors MS SQL Server and MS Excel MS SQL Server and MS Excel Oefeningen.
Les 0 Structured Query Language SQL. Programma Les 0 – Introductieopdracht Les 1 Les 2 Les 3 Schriftelijke toets.
BIMAIV03 Les A1 BIMAIV03 Les A1 Databases. De gegevens in een database vormen de grondstof voor informatie De informatie wordt opgevraagd in de taal met.
Week 3 BIMAIV03 Les B3 BIMAIV03 Les B3. Opdracht 1 Van een artikel mogen maximaal 300 stuks verkocht worden. Verschillende klanten bestellen een aantal.
Week 6 BIMAIV03 les B1. DML en DDL ata D anipulation M anguage L ata D efinition D anguage L.
Java & het Web Programma: Databases (jdbc, JNDI, ORM, JPA)
ANALYSE 3 INFANL01-3 WEEK 6 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Subqueries met correlaties ▸ Subqueries zonder correlaties ▸ Views ▸
Wat is SQL (1)? SQL (Structured Query Language):  is een zeer krachtige taal met een beperkt vocabulaire (aantal ‘woorden’)  is declaratief (‘WAT’ niet.
Software Development fundamentals
SQL Cursus deel
LauwersCollege Buitenpost Informatica
COINS Navigator 2.
Software Development fundamentals
Software Development fundamentals
COINS Navigator 2.
SQL Les February 2019.
SQL Les 3 23 February 2019.
SQL Les 7 24 February 2019.
SQL Les 1 5 April 2019.
SQL Les 6 14 April 2019.
SQL Les 9 12 May 2019.
SQL Les 4 12 May 2019.
SQL Les May 2019.
Software Development fundamentals
Databases SQL.
Transcript van de presentatie:

Deel 9: Relationele Databases: Oef. & 1e client- server app 1 Internetapplicaties Deel 9: Relationele Databases: Oefeningen en 1e client- serverapplicatie

Deel 9: Relationele Databases: Oef. & 1e client- server app 2 Doelstelling  Vertrouwd raken met SQL  1e kennismaking met client-serverapplicaties: Java en SQL.

Deel 9: Relationele Databases: Oef. & 1e client- server app 3 Boeken/tutorials:  Google: online SQL tutorial  Beginning JSP Web Development, Wrox  Vooral hfdst. 15

Deel 9: Relationele Databases: Oef. & 1e client- server app 4 Like  Syntax: …where [veldnaam] like ‘%xyz’  Dit betekent dat die records gekozen worden waarvan de veldnaam eindigt met xyz. In de plaats van, de % mag om het even wat staan. Voorbeelden:  Select * from persoon where voornaam like ‘J%’  Select * from persoon where naam like ‘%van%’

Deel 9: Relationele Databases: Oef. & 1e client- server app 5 Opgaven Oplossingen: zie bijgevoegd blad  1. Creëer een nieuwe database les9  2. Creëer een tabel werknemer met de velden vnaam, naam, titel, gebdat, salaris met gepaste types. Gebruik decimal(12,2) als type voor het salaris.  3. Vul de volgende gegevens in maar laat u niet vangen. (bron Jonie Weber, Secretary, 2 mei 1968, Potsy Weber, Programmer, 8 maart 1970, Dirk Smith, Programmer II, 24 feb 1972,

Deel 9: Relationele Databases: Oef. & 1e client- server app 6 Opgaven (select) Selecteer uit de tabel Werknemer:  4. alle velden voor alle records  5. voornaam en naam van iedereen, geboren na 1/1/1970  6. alle velden van iedereen wiens naam ‘ebe’ bevat.

Deel 9: Relationele Databases: Oef. & 1e client- server app 7 Opgaven (update/delete)  7. Jonie Weber is net getrouwd met Bob Williams. Pas haar naam aan: Weber- Williams.  8. Iedereen die minder dan verdient, krijgt 3500 opslag. (deze syntax hebben we niet helemaal gezien: doe een gok!)  9. Jonie Weber-Williams heeft het huis zojuist verlaten. Verwijder haar uit de tabel.

Deel 9: Relationele Databases: Oef. & 1e client- server app 8 Aggregate functions MIN kleinste waarde MAX grootste waarde SUMsom AVGgemiddelde COUNT(*) Aantal records

Deel 9: Relationele Databases: Oef. & 1e client- server app 9 Aggregate functions  Voorbeeld : mysql> select avg(salaris) as gemsal from werknemer; | gemsal | | |  Ander voorbeeld: mmysql> select count(*) from werknemer; | count(*) | | 2 |

Deel 9: Relationele Databases: Oef. & 1e client- server app 10 Opgaven (aggregate functions)  10. Vraag de totale salarismassa van iedereen op.  11. Vraag het grootste salaris en noem dit maxsal.

Deel 9: Relationele Databases: Oef. & 1e client- server app 11 Structuurwijzigingen Noot: In gewone programmacode hoef je als programmeur dit meestal niet zo te doen. Meestal gaat dit via een GUI. De syntax is bovendien behoorlijk verwarrend (alter/modify/change).  Toevoegen van een veld: mysql>alter table werknemer ADD (persnr char(8));  Wijzigen veldnaam (type herhalen): mysql>alter table werknemer ->CHANGE persnr personeelsnr char(8); ->CHANGE persnr personeelsnr char(8);  Wijzig velddefinitie (vb type) : mysql>alter table werknemer MODIFY personeelsnr char(10);  Verwijderen veldnaam : mysql>alter table werknemer DROP personeelsnr;

Deel 9: Relationele Databases: Oef. & 1e client- server app 12 Installatie JDBC driver   JDBC driver production version : Connector/J Production (zip-file)  Bewaar de zipfile ergens: mysql-connector-java stable.zip  We hebben alleen de jar-file nodig die in de zipfile zit: mysql-connector-java stable-bin.jar  Bewaar deze in de de common\lib subfolder van uw Tomcat directory (u kunt dit bestand slepen) C:\jakarta-tomcat \common\lib  De CLASSPATH systeemvariabele moet aangepast worden. Control panel/Systeem/Advanced/System Variables. Achteraan toevoegen !!!: ;C:\jakarta-tomcat \common\lib\mysql-connector-java stable-bin.jar

Deel 9: Relationele Databases: Oef. & 1e client- server app 13 Eerste client server applicatie  We maken eerst een nieuwe tabel aan in onze database les9, nl de tabel book. C:\mysql\bin>mysql mysql> use les9 mysql> create table book (title_id integer, category_id integer, title char(25), price decimal(12,2) ); price decimal(12,2) ); mysql> exit  We zullen deze tabel opvullen vanuit een java- programmaatje. (Zie volgende slide)

Deel 9: Relationele Databases: Oef. & 1e client- server app 14 Eerste client server applicatie: PopulateTable.java  Download het bestand PopulateTable.java van de website, bewaar het in C:\testcs, compileer en laat lopen. C:\testcs>javac PopulateTable.java C:\testcs>java PopulateTable JDBC driver loaded Database connection established Books added.

Deel 9: Relationele Databases: Oef. & 1e client- server app 15 Eerste client server applicatie: PopulateTable.java : controle  U kunt controleren dat er effectief iets werd toegevoegd. In c:\mysql\bin, tikt u mysql en vervolgens: mysql> use les9 mysql> select * from book; | title_id | category_id | title | price | | 19 | 1 | Professional Java Data 2 | | | 21 | 1 | Professional Java Securit | | | 22 | 1 | Beginning SQL Programming | | rows in set (0.00 sec)

Deel 9: Relationele Databases: Oef. & 1e client- server app 16 PopulateTable.java: Opmerkingen  Dit pakket bevat klassen ivm sql, zoals Connection: import java.sql.*;  Het creëren van 1 instantie (object van de klasse org.gjt.mm.mysql.Driver zorgt dat de driver geladen wordt: Class.forName("org.gjt.mm.mysql.Driver").newIns tance();  DriverManager is kennelijk een klasse met een statische methode getConnection() die een nieuwe connectie terug geeft: con = DriverManager.getConnection( "jdbc:mysql://localhost/les9 ?user=root&password="); "jdbc:mysql://localhost/les9 ?user=root&password=");

Deel 9: Relationele Databases: Oef. & 1e client- server app 17 PopulateTable.java : Opmerkingen  Connectie-objecten kunnen kennelijk statement-objecten maken en teruggeven. Een statement-object heeft een executeUpdate()-methode die een SQL-string als parameter verwacht: Statement stmt = con.createStatement(); String upd = "insert into book (title_id,category_id,title,price) " + "insert into book (title_id,category_id,title,price) " + "values (19,1,'Professional Java Data 2',59.99)," + "values (19,1,'Professional Java Data 2',59.99)," + " (21,1,'Professional Java Security 2',49.99)," + " (21,1,'Professional Java Security 2',49.99)," + " (22,1,'Beginning SQL Programming 2',49.99);"; " (22,1,'Beginning SQL Programming 2',49.99);";stmt.executeUpdate(upd); (In de code zie je dat verschillende records, gescheiden door comma’s, worden toegevoegd.)  Het geheel zit in verschillende try/catch blocks om ons te informeren over wat er misgegaan is als iets niet werkt.

Deel 9: Relationele Databases: Oef. & 1e client- server app 18 Recordsets: ShowTable.java  Download het bestand ShowTable.java van de website, bewaar het in C:\testcs, compileer en laat lopen. C:\testcs>javac ShowTable.java C:\testcs>java ShowTable JDBC driver loaded Database connection established 22 Beginning SQL Programming … 21 Professional Java Securit Klaar met tonen.

Deel 9: Relationele Databases: Oef. & 1e client- server app 19 Opmerkingen  Om via SQL een resultaat terug te krijgen moet je op het statement de executeQuery()-methode uitvoeren. Het resultaat is een ‘result set’, die de records bevat en die je kunt doorlopen: ResultSet rs = stmt.executeQuery( "SELECT title_id, title,price " + "SELECT title_id, title,price " + "FROM book ORDER BY title"); "FROM book ORDER BY title");  Recordsets hebben een methode next() die tegelijk de ‘recordpointer’ verschuift én een boolean teruggeeft die aangeeft of er daar wel een record staat. Er zijn verschillende get-methodes, naargelang hetveldtype. De type-mappings zijn helaas verschillend voor elke combinatie van SQL-dialect en programmeertaal. while (rs.next()) System.out.println(rs.getInt("title_id") + " " + System.out.println(rs.getInt("title_id") + " " + rs.getString("title") + " " + rs.getFloat("price")); rs.getString("title") + " " + rs.getFloat("price")); Als de database-server stored procedures ondersteunt, werken deze ook gewoon met de databasetypen die dan als typen voor variabelen kunnen gebruikt worden. N.B. Bij sommige gespecializeerde tools, zijn de databasetypen en de programmeertaaltypen gelijk (dBASE, FoxPro, Visual Objects)