Categoria:

Tutorial: una to-do list in MySQL, Hibernate, Spring, Maven e JPA

24/12/2017 14:49 Pubblicato da

hibernate spring
In questo articolo parleremo di come creare una To-do list CRUD usando MySQL, Hibernate, Spring, Maven e JPA. Una to-do list è una lista di cose da fare. Il codice sorgente dell’applicazione è disponibile su github (la versione su github ha più funzionalità).

  Github

Per prima cosa dobbiamo creare un nuovo progetto. Per farlo dobbiamo inanzitutto passare alla prospettiva Spring. Successivamente fare File, New, Spring Legacy Project. Definire il nome del progetto e successivamente selezionare dalla lista dei template Spring MVC Project. Premere su Next, definire il top-level package come com.cyberx.todo.controller ed infine premere su Finish.
struttura del progetto

Adesso dovremo definire le librerie che la nostra applicazione dovrà utilizzare. Tra queste librerie troviamo quelle di Spring, hibernate e mysql. Per questo andiamo a definire il file pom di maven.

Una volta fatto passiamo al file di configurazione di Spring, ossia il servlet-context.xml, nel quale andremo a definire la configurazione per la connessione al DB, le proprietà per hibernate e la SessionFactory.

Adesso andiamo a creare la tabella all’interno della nostra base di dati. Da come si può notare la struttura della tabella è molto semplice. Abbiamo un ID e un campo varchar di 200 caratteri. L’ID è settato su auto_increment e non deve essere null.

Successivamente andiamo a definire il model del Todo nel package com.cyberx.todo.model. Il model può essere generato automaticamente con eclipse basta cliccare con il tasto destro del mouse sul proggetto, cliccare su Properties, selezionare Project Facets, selezionare JPA (e configurarlo). Dopo avere applicato le modifiche, cliccando con il tasto destro del mouse sul progetto, nel menù comparirà la voce JPA Tools dalla quale potremmo selezionare Generate Entities from Tables.

Il passo successivo consiste nel creare il DAO. Il DAO richiede l’implementazione di un’interfaccia e di una classe che la estende. Le andremo ad implementare nel package com.cyberx.todo.dao. Nel DAO andremmo ad implementare i metodi di creazione, aggiornamento, eliminazione, ricerca, caricamento di un singolo item e caricamento di tutta la lista dei to-do.

Successivamente andiamo ad implementare il modulo del service nel rispettivo package com.cyberx.todo.service. Anche qui dovremmo implementare un’interfaccia e una classe che implementa l’interfaccia. Il service rispecchia il DAO, ovvero presenta gli stessi nomi dei metodi.

Il service effettua la conversione da BO a VO, ossia da Business Object a View Object e viceversa. Per questo abbiamo bisogno di implementare un converter che effettua la conversaione. Il converter lo andremo a definire nel package com.cyberx.todo.converter.

Adesso andiamo a definire il VO ovvero il View Object nel package com.cyberx.todo.vo.

Infine andiamo a modificare la jsp home.jsp e sostituiamo il suo contenuto con il seguente:

Adesso, eseguendo il progetto su un servlet container dovremmo vedere la home.jsp.

30/01/2018 16:06