Skip to content

SE - Dokkie database connectie

In deze handleiding staat beschreven hoe je verbinding maakt met je database vanuit je Dokkie project. Dit heeft betrekking op de learning story:

Learning story Ik wil leren hoe een database voor het Dokkie project kan worden opgezet en gebruikt.

Als software engineer gebruik je bij het Dokkie project een database om informatie over deelnemers aan evenementen waar ze kosten voor maken in op te slaan. De opgeslagen gegevens worden gebruikt om te kosten die zijn gemaakt te verdelen over de deelnemers.

De volgende stappen helpen je om een database te maken en te gebruiken vanuit Dokkie:

  • Aanmaken database
  • Configureren van je Dokkie project
  • Werken vanuit Typescript code met je database

Aanmaken database

In het Dokkie project staan een aantal bestanden die je nodig hebt:

  • database_design.png: Een afbeelding van de tabellen en relaties die door het onderstaande SQL script worden aangemaakt
  • dokkie_database.sql: Een SQL script dat kan worden gebruikt om je database aan te maken met tabellen en relaties.

Om een database te beheren maak je gebruik van een programma zoals ‘phpMyAdmin’ of ‘MySQL Workbench’ (MWB). Op je ‘HBO-ICT Cloud project’ pagina zie je onder het MySQL blok een knop staan met ‘Openen in browser’. Als je deze selecteert kom je op de phpMyAdmin pagina terecht waar je databases op de HBO-ICT Cloud kunt beheren. Als je het tabblad ‘SQL’ opent kun je de inhoud van het dokkie_database.sql bestand copy / pasten en daarna via de knop ‘Starten’ uitvoeren.

Met MWB kun je zowel databases beheren op je eigen computer / laptop als databases op een server zoals bij de HBO-ICT Cloud. MWB is een aparte applicatie die je moet installeren op je computer / laptop. Kijk bij ‘Andere bronnen’ verderop in deze pagina waar je MWB en de nodige uitleg kunt vinden.

Database design Dokkie

database_design

Configureren van je Dokkie project

Je gaat Typescript code schrijven om contact te maken met de database en gegevens te lezen of weg te schrijven. De eerste keer dat je dat wilt doen moet je eerst een verbinding met je database opzetten.

Hieronder zie je 2 oplossingen om de benodigde informatie voor het werken met de HBO-ICT Cloud vast te leggen.

Verbinding maken vanuit TypeScript

Je gebruikt de project informatie van de HBO-ICT Cloud om de api.configure(…) functie te definiëren:

try {
    api.configure({
        url: "https://api.hbo-ict.cloud",
        apiKey: "<zie HVA-ICT Cloud project informatie>",
        database: "<zie HVA-ICT Cloud project informatie>",
        environment: "live",
    });
    return true;
} catch(reason) {
    console.error(reason);
};
return false;

Deze code voer je dan eerst uit voordat je SQL code uitvoert met api.queryDatabase().

Verbinding maken vanuit environment variabelen

In plaats van het direct opnemen van je HVA-ICT Cloud project informatie in je Typescript code kun je die informatie ook in de volgende bestanden vastleggen:

src/.env
src/.env.production

Hier geef waardes op voor environment variabelen na de = tekens:

VITE_HBOICTCLOUD_APIKEY=
VITE_HBOICTCLOUD_DATABASE=

De informatie in de .env /.env.production bestanden wordt gebruikt door in je Typescript code de volgende (andere) environment variabelen te gebruiken:

__HBOICTCLOUD_APIKEY__
__HBOICTCLOUD_DATABASE__
De api.configure(…) functie moet er dan zo uitzien:
try {
    api.configure({
        url: "https://api.hbo-ict.cloud",
        apiKey: __HBOICTCLOUD_APIKEY__,
        database: __HBOICTCLOUD_DATABASE__,
        environment: "live",
    });
    return true;
} catch( reason) {
    console.error(reason);
};
return false;

Werken met je database vanuit Typescript code

Op je configuratie pagina voor de HBO-ICT Cloud staat in de navigatiebalk een link naar de documentatie van de API die je kunt gebruiken om je Typescript code te schrijven. Er is een variabele api waar je gebruikt van maakt om toegang tot de database te krijgen en om gegevens uit je database op te vragen of in op te slaan.

Voordat je gegevens kunt opvragen of opslaan moet je de api.configure(…) functie gebruiken om een verbinding met je database tot stand te brengen. Nadat dat is gelukt kun je de andere functies van het api object gebruiken zoals b.v. `api.queryDatabase(…)``:

const resultaat: string | any = await api.queryDatabase(
    "INSERT INTO user(username,password,email) VALUES(?,?,?)",
    usernaam, wachtwoord, email);

Bronnen