En aquesta practica fem una aplicació en Java per obtenir dades de la base de dades MySQL. Utilitzem Maven per la construcció del projecte i la llibreria EclipseLink per la persistència.
El programari que fem servir per desenvolupar l’aplicació és:
Windows 11
JDK 20
Apache Netbeans 18
Maven
EclipseLink
MySQL 8
ORM (Object Relational Mapped) és el sistema de persistència que fa servir Java. Consisteix en relacionar els registres de la base de dades amb objectes Java.
ORM : Java objecte ↔ Registre MySQL
Tipus d’ORM: EclipseLink, Hibernate, Apache OpenJPA, MyBatis...
L’API que utilitza EclipseLink és JPA.
Classes Java de EclipseLink:
Entity de la classe javax.persistence, guarda els registres de la BD en forma d’objectes Java. Les relacions es formen amb les anotacions.
EntityManagerFactory: basada en la unitat de persistència (persistence.xml).
EntityManager: que té com argument la EntityManagerFactory. Aquesta classe implementa totes les operacions CRUD, Crear, llegir, actualitzar i eliminar objectes de la base de dades.
Per desenvolupar l’aplicació hem de seguir els següents passos:
Nou projecte: Maven+Java aplicació
Afegir dependencia MySQL Connector
En Services: connectar amb MySQL Server
Unitat de persistència
Nou Pakage: Models
En Models: nou Entity class from DB
En Models: nou Entity class from DB
En Controladors: nou JPA Controller Class from Entity Class
Programar la classe principal
En Netbeans: File/New Project/Java with Maven/Java Application
Posem el nom del projecte, escollim un group Id i clic en finish. Es crea el nou projecte.
A l’esquerra en Projects podem observar l’estructura del projecte. A la dreta l’arxiu de Maven: pom.xml. El pom guarda la configuració i les dependències del projecte.
A l’esquerra en dependències, boto dret add Dependency i en el query escrivim:
Mysql connector
Seleccionem el jar i clic en Add.
En el pom automàticament s’ha afegit la dependència.
A l’esquerra en Services/Databases/New Connection
Afegir el driver de MySQL. Clic en Add i anar l’adressa seguent:
C:\Users\El vostre usuari\.m2\repository\mysql\mysql-connector-java\8.0.30\mysql-connector-java-8.0.30.jar
Clic en Next
Posar la base de dades en la treballarem, nosaltres fem servir la BD “compres”
Posar l’usuari i contrasenya per entrar en el servidor MySQL
Provar la connexió, si hem tingut èxit, clic en Next
Next/Next/Finish
En Services despleguem Database i queda com segueix:
Treballarem amb la base de dades compres i amb la taula proveïdor que té tres columnes:
Id, nom, telèfon
A l’esquerra a sobre del nom del projecte, clic amb el botó dret:
new/other/Persistene/Persistence Unit
Posem el nom a la unitat i escollim el nostre Package
La llibreria de persistència és EclpseLink i escollim la connexió a la base de dades. L’estratègia crear. Amb l’estratègia Drop and Create cada vegada que fem un insert esborrem les dades ateriors. Finish
En src/main/resources es crea l’arxiu de persistència : persistence.xml
Aquest arxiu guarda la url, el usuari, el driver i la contrasenya de la nostre base de dades compres.
En las dependències s’hi han afegit les de EclipseLink
Botó dret sobre el nom del projecte/New/Java Package
Posem el nom: id-group.orm2.models
Sobre models, botó dret/ New/ other/ Persistence/ Entity Classes from Database
Next/ Add All/ i les taules passen de l’esquerra a ser seleccionades a la dreta
Next/ Next/ Finish
Es crea automàticament tres nou arxius:
Despesa.java
DespesaPK.java
Proveidor.java
Anomenats Entitys o POJOS: són les classes relacionades amb les taules de la base de dades. Treballarem amb els objectes de aquestes classes per mantenir la BD. Automaticamet es creen aquestes classes amb els constructors, els getes i els setes i el mètode toString.
Botó dret sobre el nom del projecte/New/Java Package
Posem el nom: com.tresavis.orm2.controladors
A sobre del Package controladors, botó dret New/Other/Persistence/ JPA Controller Class from Entity Class
Next/Add All
Next. Cal escollir el Package controladors
Finish. Automàticament es creen els controladors del models
ProveidorJpaController.java té els següents mètodes:
Create, destroy, edit, findProveidor... Els mètodes necessaris per mantenir la taula proveïdor.
L’estructura del projecte queda de la següent manera:
L’arquitectura del projecte és MVC, model, vista, controlador. En aquesta practica la vista és la consola, però normalment la vista és gràfica i és important tenir organitzat el codi.
Fins ara tot el codi ha estat generat automàticament. EclipseLink proporciona els mètodes necessaris per poder treballar.
Treballem en la classe principal: orm2.java
Primer: posem tres variables globals:
El nom de la unitat de persistència
EntityManagerFactory que té com argument el nom de la unitat de persistència
controladorProveidor que té com argument la EntityManagerFactory
De la següent forma:
private static final String UNITAT_PERSISTENCIA = "unitatPersistencia";
private static final EntityManagerFactory FACTORIA = Persistence.createEntityManagerFactory(UNITAT_PERSISTENCIA);
private static ProveidorJpaController controladorProveidor = new ProveidorJpaController(FACTORIA);
Segon: crearem el mètode inserirProveidor(String nom,String telèfon);
private static void inserirProveidor(String nom, String telefon) {
Proveidor p =new Proveidor();
p.setNom(nom);
p.setTelefon(telefon);
controladorProveidor.create(p);
}
Tercer: mètode mostrarProveidors();
private static void mostrarProveidors() {
List proveidors= new ArrayList();
proveidors=controladorProveidor.findProveidorEntities();
for(Proveidor p:proveidors){
System.out.println("Id: "+p.getId()+", nom: "+p.getNom()+", telefon: "+p.getTelefon());
}
}
Quart: : apliquem els mètodes anteriors al mètode main, que és per on comença l’aplicació
Afegim els imports necessaris
Queda de la següent manera:
Executem:
Comprovem en el servidor MySQL amb la línia de comandes:
El mar.
Havaneres.
Lloret antic.
Lloret avui.
De cala Morisca a Sa Carabera.
De Sa Carabera a Treumal.
Lloret en kayak.
Vígilancia remota.
Caixa-tpv.
Cambrer-app.
Client webApp.
Relats del banc del si no fos
Històries d'ahir
Vídeos antics de Lloret
El caiac
Contes de l'avi.
Control d’accés amb contrasenya.
Orgue de llums.
Comparativa de editors Arduino.
Projecte bon Nadal.
Control de la qualitat del aire interior (CO2) amb semàfor LED.
NodeMCU-ThingSpeak
ThingSpeak.
NodeMCU com AccessPoint.
Control de la llum de casa per web.
Control de un led per el mòbil.
Sistema de fitxers en ESP8266.
Altura del nivell d'aigua.
Avis d’alarma a Telegram.
Control de la intensitat de llum de un LED per Internet.
Magatzematge de temperatura i humitat en Thinger.
Publicar temperatura i humitat en Google Sheets.
ESP8266 i Firebase.
La bàscula. ESP8266 NodeMCU amb cèl·lula de càrrega.
ESP32-CAM
ESP32-CAM captura fotos per ser vistes en la WEB.
Pujar fotos a un servidor FTP amb ESP32-CAM.
MicroPython en ESP8266.
Visual Estudio Code per Arduino.
Classificador d’imatges.
Instal·lar i configurar Apache en Ubuntu.
Accés a un servidor Linux remotament.
Client i Servidor FTP.
Màquina virtual UBUNTU.
WindowsXP en Virtualbox.
Multisim, simulador de circuits electrònics.
Proteus, simulador de circuits electrònics.
MySQL. Instal·lació.
MySQL. Aplicacions.
Netbeans Maven MySQL.
Java+Netbeans+Maven+EclipseLink+Mysql
Aplicació d’escriptori JavaFX
App JavaFX amb SceneBuilder
App Java-Swing
Noves tecnologies WEB Arduino Domótica MycroPython NodeMCU IoT Java ESP8266 Lora C++ Programació Server-Client