×

ARDUINO

Control d’accés amb contrasenya. Orgue de llums. Comparativa de editors Arduino. Projecte bon Nadal. Sensor de gas i de fums. Control de la qualitat del aire interior (CO2) amb semàfor LED.

NodeMCU

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 llum de casa des de 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. ESP8266-BME280 Firebase. La bàscula. ESP8266 NodeMCU amb cèl·lula de càrrega..

ESP32

ESP32-CAM, exemple de prova. Esp32-Cam captura fotos per ser vistes en la WEB. Pujar fotos a un servidor FTP amb ESP32-CAM. Foto amb ESP32-CAM i Telegram. Alarma amb avis a Telegram, utilitzant la placa ESP32-CAM.

PROGRAMACIÓ

Matemàtiques. App Inventor tutorial. MicroPython en ESP8266. Visual Estudio Code per Arduino

Intel·ligència artificial

Classificador d’imatges.

SERVIDORS

Instal·lar i configurar Apache en Ubuntu. Accés a un servidor Linux remotament. Client i Servidor FTP.

MÀQUINES VIRTUALS

Màquina virtual UBUNTU. WindowsXP en Virtualbox.

ELECTRÒNICA

Simulador Multisim. Simulador Proteus.

BASE DE DADES

MySQL. Instal·lació. MySQL. Aplicacions.

JAVA

Netbeans Maven MySQL. Java+Netbeans+Maven+EclipseLink+MySQL Aplicació d’escriptori JavaFX App JavaFX amb SceneBuilder App Java-Swing
favicon
logo

Tresavis

Benvinguts al blog de tresavis de noves tecnologies i més.

Correu : tresavis3@gmail.com

facebook   Instagram   youtube   x   tiktok

☰ Pràctiques   ☰ Articles

Java+Netbeans+Maven+EclipseLink+Mysql

Vídeo tutoria


Programari

El programari que fem servir per desenvolupar l’aplicació és:

Windows 11

JDK 20

Apache Netbeans 18

Maven

EclipseLink

MySQL 8


ORM

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

jnmem1

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.


Passos a seguir

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


Nou projecte: Maven+Java aplicació

En Netbeans: File/New Project/Java with Maven/Java Application

jnmem2

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.

jnmem3

Afegir dependencia MySQL Connector

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.

jnmem4

En Services: connectar amb MySQL Server

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

jnmem5

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

jnmem6

Next/Next/Finish

En Services despleguem Database i queda com segueix:

jnmem7

Treballarem amb la base de dades compres i amb la taula proveïdor que té tres columnes:

Id, nom, telèfon

jnmem8

Unitat de persistència

A l’esquerra a sobre del nom del projecte, clic amb el botó dret:

new/other/Persistene/Persistence Unit

jnmem9

Posem el nom a la unitat i escollim el nostre Package

jnmem11

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

jnmem12

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

jnmem13

Nou Pakage: Models

Botó dret sobre el nom del projecte/New/Java Package

Posem el nom: id-group.orm2.models

jnmem14

En Models: nou Entity class from DB

Sobre models, botó dret/ New/ other/ Persistence/ Entity Classes from Database

jnmem15

Next/ Add All/ i les taules passen de l’esquerra a ser seleccionades a la dreta

jnmem16

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.

jnmem17

Nou Pakage: Controladors

Botó dret sobre el nom del projecte/New/Java Package

Posem el nom: com.tresavis.orm2.controladors

jnmem18

En Controladors: nou JPA Controller Class from Entity Class

A sobre del Package controladors, botó dret New/Other/Persistence/ JPA Controller Class from Entity Class

jnmem19

Next/Add All

jnmem20

Next. Cal escollir el Package controladors

jnmem21

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.

jnmem22

L’estructura del projecte queda de la següent manera:

jnmem23

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.


Programar la classe principal

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:

jnmem24

Executem:

jnmem25

Comprovem en el servidor MySQL amb la línia de comandes:

jnmem26

Bibliografia

tresavis.cat


Contingut.


Nosaltres

caletaAntigua caletaAntigua2 caletaAntigua3 caletaAntigua4 caleta caraibernat caraibernat2 lolaLlevant oreneta2 riera santaCristina sorramar

Tags

Noves tecnologies WEB Arduino Domótica MycroPython NodeMCU IoT Java ESP8266 Lora C++ Programació Server-Client