[Java][Spring]Accesso ai dati via web

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
stefano_carniel
Prode Principiante
Messaggi: 247
Iscrizione: mercoledì 21 marzo 2007, 0:03

[Java][Spring]Accesso ai dati via web

Messaggio da stefano_carniel »

Ciao a tutti, avrei l'idea di realizzare un servizio di accesso a un database via web. L'applicazione client dovrei svilupparla per android, ma questo in un secondo momento.
Per altre vie mi sono avvicinato alla tecnologia Spring ed ho visto come realizzare un web service rest utilizzando i protocollo di scambio json.
Ora avrei bisogno di estendere questo progetto mettendoci un database (mysql) solo che girando in rete mi sono confuso alla grande, nel senso che ho trovato molte "cose" e non so quali sono sinonimi e quali invece complementari, cioè devono essere usate insieme per il risultato. Ad esempio, mi piacerebbe utilizzare:

- le librerie spring, con spring boot
- l'accesso ai dati JPA (quello con le annotazioni @Entity,...)
- poi ho visto che per accedere al db si può usare IdbcTemplate o HibernateTemplate... (qui mi è proprio oscuro)
- per il build dell'applicazione ho visto gradle

Non riesco a trovare un tutorial da zero, il sito di spring ha dentro molte guide ma nessuna che va in profondità su database SQL e anche la documentazione del progetto spring boot è un po' scarna...

Qualche consiglio?
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [Java][Spring]Accesso ai dati via web

Messaggio da Zoff »

Spring usa Hibernate per l'accesso al DB, la documentazione sulla loro interazione la trovi quì: http://docs.spring.io/spring-framework/ ... l/orm.html

Non è un tutorial ma dovrebbe contenere quasi tutto quello che ti server.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
stefano_carniel
Prode Principiante
Messaggi: 247
Iscrizione: mercoledì 21 marzo 2007, 0:03

Re: [Java][Spring]Accesso ai dati via web

Messaggio da stefano_carniel »

Grazie! lascio aperto se qualcuno ha qualche tutorial, ho scaricato il pdf completo del framework 841 pagine :o lì c'è proprio tutto :D
Avatar utente
stefano_carniel
Prode Principiante
Messaggi: 247
Iscrizione: mercoledì 21 marzo 2007, 0:03

Re: [Java][Spring]Accesso ai dati via web

Messaggio da stefano_carniel »

mi sembra di capire che la struttura del progetto dovrebbe essere:

- Oggetti da rendere persistenti (es. Docente, Corso, Studente)
- Una interfaccia DAO per ciascun oggetto. Ad esempio per l'oggetto studente:
  • * save
    * update
    * delete
    * getCorsiFrequentati
- Una implementazione per ciascuna interfaccia in cui fisicamente si esegue l'operazione <-- QUI DOVREBBE INTERVENIRE HIBERNATE (es.

Codice: Seleziona tutto

extends HibernateDaoSupport
).

Finora può andare?
|gonzo|
Prode Principiante
Messaggi: 108
Iscrizione: domenica 22 febbraio 2009, 17:43
Contatti:

Re: [Java][Spring]Accesso ai dati via web

Messaggio da |gonzo| »

finora va bene.

per approfondire però io consiglierei qualche libro, le documentazioni ufficiali sono belle ma un libro ti insegna i pezzi uno alla volta con percorsi più logici.
io mi sono letto questo:
http://www.amazon.it/SPRING-HIBERNATE-S ... +hibernate

buono studio :ciao:
Avatar utente
stefano_carniel
Prode Principiante
Messaggi: 247
Iscrizione: mercoledì 21 marzo 2007, 0:03

Re: [Java][Spring]Accesso ai dati via web

Messaggio da stefano_carniel »

trovato grazie! :ciao:
Avatar utente
stefano_carniel
Prode Principiante
Messaggi: 247
Iscrizione: mercoledì 21 marzo 2007, 0:03

Re: [Java][Spring]Accesso ai dati via web

Messaggio da stefano_carniel »

Dunque, ho fatto un primo progetto di esempio con connessione al database. Il tutorial prevede la creazione di un file di configurazione XML in cui dichiarare i vari beans.
Io questo file l'ho messo nella root del progetto, ma quando cerco di eseguire l'applicazione, mi dice

Codice: Seleziona tutto

Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [mybeans.xml]; nested exception is java.io.FileNotFoundException: class path resource [mybeans.xml] cannot be opened because it does not exist
quindi dove dovrebbe essere messo?
|gonzo|
Prode Principiante
Messaggi: 108
Iscrizione: domenica 22 febbraio 2009, 17:43
Contatti:

Re: [Java][Spring]Accesso ai dati via web

Messaggio da |gonzo| »

nei tutorial di solito sempre src/main/resources/beans.xml

poi nel codice:
[code2=java]public static void main(String[] args) {

DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader xmlBeanReader = new XmlBeanDefinitionReader(beanFactory);
ClassPathResource xmlResource = new ClassPathResource("beans.xml");
xmlBeanReader.loadBeanDefinitions(xmlResource);
EmployeeServices empServices = (EmployeeServices) beanFactory.getBean("employeeServices");
...
}[/code2]

Immagine
Avatar utente
stefano_carniel
Prode Principiante
Messaggi: 247
Iscrizione: mercoledì 21 marzo 2007, 0:03

Re: [Java][Spring]Accesso ai dati via web

Messaggio da stefano_carniel »

grazie, però poi la cartella resource la devo includere tra le cartelle sorgenti del programma giusto?
|gonzo|
Prode Principiante
Messaggi: 108
Iscrizione: domenica 22 febbraio 2009, 17:43
Contatti:

Re: [Java][Spring]Accesso ai dati via web

Messaggio da |gonzo| »

stefano_carniel [url=http://forum.ubuntu-it.org/viewtopic.php?p=4669559#p4669559][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:grazie, però poi la cartella resource la devo includere tra le cartelle sorgenti del programma giusto?
dovresti averla già nel template, non serve creare nulla in teoria. :ciao:
Avatar utente
stefano_carniel
Prode Principiante
Messaggi: 247
Iscrizione: mercoledì 21 marzo 2007, 0:03

Re: [Java][Spring]Accesso ai dati via web

Messaggio da stefano_carniel »

uhm... a me non l'ha creata. Però io utilizzo il wizard di gradle (faccio new gradle project ecc...), vio lo conoscete?
Vorrei chiedere questo. Io ho struttura il progetto come nell'immagine, ma quando lancio il task

Codice: Seleziona tutto

gradle build
mi dà l'errore seguente:

Codice: Seleziona tutto

error: package com.scarniel.accman.utils does not exist
mentre compilando con eclipse funziona bene.
Secondo me è un problema del file build.gradle, ma forse anche avere lo stesso nome package sotto cartelle diverse non è buona prassi.
Allegati
struttura.PNG
Avatar utente
wolf82
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1038
Iscrizione: lunedì 2 novembre 2009, 9:17
Distribuzione: Debian 8 Jessie xfce 32 bit

Re: [Java][Spring]Accesso ai dati via web

Messaggio da wolf82 »

Se guardi meglio la documentazione vedrai che l'uso hibernate template é sconsigliato a partire dalla versione 3 di Spring.E' consigliato invece l'utilizzo di Session Factory
Per l'accesso al database puoi utilizzare Jdbc ,Hibernate oppure Jpa+(Eclipselink,Hibernate,...,)
Linux....open your mind...!!!
Avatar utente
stefano_carniel
Prode Principiante
Messaggi: 247
Iscrizione: mercoledì 21 marzo 2007, 0:03

Re: [Java][Spring]Accesso ai dati via web

Messaggio da stefano_carniel »

Ciao wolf grazie. Non capisco alcune cose: è sconsigliato l'uso di hibernate template, non di hibernate che è un'altra cosa, giusto?. Io pensavo di utilizzare jpa, ma poi per operare proprio sul DB mi serve comunque hibernate, ri-giusto?
Nessuna notizia su gradle?
Avatar utente
wolf82
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1038
Iscrizione: lunedì 2 novembre 2009, 9:17
Distribuzione: Debian 8 Jessie xfce 32 bit

Re: [Java][Spring]Accesso ai dati via web

Messaggio da wolf82 »

Anche io sono alle prime armi con Spring..é da qualche mese che sto iniziando a studiarlo..
E' sconsigliato solo l'uso del template di Hibernate..
Jpa sono delle Api e se decidi di utilizzarle puoi scegliere il gestore di persistenza cioé chi vuoi che ti renda persistenti le informazioni..Se scegli invece di utilizzare le librerie di hibernate il gestore nn puoi sceglierlo..Cmq l'accoppiata migliore é Jpa+ Hibernate
Se vuoi capirci qualcosa ti consiglio il libro su cui ho studiato in questi mesi:Spring in action 3a ediz. E' consigliato per chi parte da zero

Leggiti questo :
Hibernate Jpa - Clicca per aprire

No More Spring Templates
Linux....open your mind...!!!
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 12 ospiti