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 aangemaaktdokkie_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
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:
Hier geef waardes op voor environment variabelen na de = tekens:
De informatie in de .env /.env.production bestanden wordt gebruikt door in je Typescript code de volgende (andere) environment variabelen te gebruiken:
Deapi.configure(…)
functie moet er dan zo uitzien:
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¶
- HBO-ICT Cloud kennissessies (MSteams met Youtube links)
- HBO-ICT Cloud kennissessies (Youtube)
- MySQL Workbench uitleg en download link
- Video MySQL Workbench tutorial (Youtube)