{"id":11773,"date":"2016-05-12T14:48:24","date_gmt":"2016-05-12T12:48:24","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=11773"},"modified":"2016-06-07T14:51:27","modified_gmt":"2016-06-07T12:51:27","slug":"speedment-un-alternativa-ai-tradizionali-orm-per-sviluppatori-java","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/speedment-un-alternativa-ai-tradizionali-orm-per-sviluppatori-java\/","title":{"rendered":"Speedment: un&#8217;alternativa ai tradizionali ORM per sviluppatori Java"},"content":{"rendered":"<p>Gli <strong>sviluppatori\u00a0Java<\/strong> in ambito\u00a0professionale sanno che quando i progetti crescono,\u00a0per l&#8217;interazione con i database, pu\u00f2 essere utile impiegare un <strong>ORM<\/strong> (Object Relational Mapping): un framework che associa le classi Java con la struttura\u00a0relazionale del database in maniera tale che i comandi impartiti su di esse vengano\u00a0tradotti in operazioni sui dati.<br \/>\nAlcuni, come <a href=\"http:\/\/hibernate.org\/\" target=\"_blank\">Hibernate,\u00a0<\/a>sono progetti largamente impiegati ma il loro uso richiede uno studio\u00a0preliminare non indifferente e l&#8217;apprendimento di nuove API. Un nuovo progetto che risponde al nome di\u00a0<a href=\"https:\/\/github.com\/speedment\/speedment\" target=\"_blank\">Speedment<\/a>\u00a0permette di avere a disposizione un ORM da usare in maniera naturale, senza dover studiare nuove API.<\/p>\n<p>Una volta installato e integrato nel progetto &#8211; si tratta di una soluzione open source, basata su Java8 &#8211; potremo <strong>creare oggetti Java automaticamente <\/strong><em><strong>persistenti<\/strong>.<\/em><\/p>\n<p>L&#8217;installazione \u00e8 molto veloce tramite <a href=\"https:\/\/maven.apache.org\/\" target=\"_blank\">Maven<\/a>\u00a0e viene spiegata passo passo nella <a href=\"http:\/\/speedment.org\/download\/\" target=\"_blank\">guida del progetto<\/a>:\u00a0persino l&#8217;impostazione dei parametri di connessione al database sar\u00e0 eseguita via interfaccia visuale.<\/p>\n<p>Il sito del progetto offre diversi\u00a0tutorial e\u00a0conoscendo la filosofia degli ORM non sar\u00e0 difficile iniziare ad usarlo. Ecco, ad esempio, l&#8217;inserimento di un oggetto nel database:<\/p>\n<pre class=\"lang:java decode:true \">users.newInstance()\r\n    .setName(name)\r\n    .setAge(age)\r\n    .persist();<\/pre>\n<p>L&#8217;oggetto <em>users<\/em> \u00e8 quello che nel gergo di <em>Speedment<\/em> viene chiamato un Manager, una classe che serve \u00a0a gestire le interazioni con gli elementi del database. Con il metodo <em>newInstance<\/em> si crea un nuovo oggetto\u00a0al quale\u00a0si attribuiscono direttamente i valori delle propriet\u00e0 ed il comando di salvataggio, <em>persist<\/em>.<\/p>\n<p>Interessante, no ?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gli sviluppatori\u00a0Java in ambito\u00a0professionale sanno che quando i progetti crescono,\u00a0per l&#8217;interazione con i database, pu\u00f2 essere utile&#8230;<\/p>\n","protected":false},"author":561,"featured_media":11988,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[30,534],"tags":[1530,1526,1608,1188,1607,1683],"class_list":["post-11773","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-materiale-open-source","category-news","tag-database","tag-java","tag-java8","tag-librerie-opensource","tag-orm","tag-sviluppatori-java"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=11773"}],"version-history":[{"count":8,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11773\/revisions"}],"predecessor-version":[{"id":12081,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11773\/revisions\/12081"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/11988"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=11773"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=11773"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=11773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}