{"id":13060,"date":"2017-12-18T10:40:28","date_gmt":"2017-12-18T09:40:28","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=13060"},"modified":"2017-12-18T10:40:28","modified_gmt":"2017-12-18T09:40:28","slug":"android-e-sqlite-comandi-precompilati-con-sqlitestatement","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/android-e-sqlite-comandi-precompilati-con-sqlitestatement\/","title":{"rendered":"Android e SQLite: comandi precompilati con SqliteStatement"},"content":{"rendered":"<p>Tramite la classe <em>SqliteDatabase<\/em> \u00e8 possibile produrre uno <strong>Statement precompilato e riutilizzabile<\/strong> grazie al metodo <em>compileStatement<\/em> che riceve in input un oggetto String contenente\u00a0le direttive SQL:<\/p>\n<pre class=\"lang:java decode:true\">\/\/ otteniamo un riferimento ad un oggetto SqliteDatabase\r\nSQLiteDatabase db=....\r\n\r\n\/\/ compiliamo il comando SQL da eseguire\r\nSQLiteStatement ss=db.compileStatement(\"INSERT INTO ....\");\r\n\r\n<\/pre>\n<p>Una volta ottenuto l&#8217;oggetto <strong>SQLiteStatement<\/strong>, potremo:<\/p>\n<ul>\n<li>eseguire il comando senza ottenere risultato con il metodo <strong>execute()<\/strong> ma ci\u00f2 \u00e8 possibile solo per direttive che non includono le classiche operazioni CRUD (SELECT, INSERT, DELETE, UPDATE). Il metodo \u00e8 pertanto destinato a modifiche strutturali come creazioni\/distruzioni\/modifiche di tabelle, indici, view, etc.;<\/li>\n<li>eseguire inserimenti con <strong>executeInsert()<\/strong> il quale restituir\u00e0 la chiave primaria identificante il nuovo record o modifiche\/cancellazioni con <strong>executeUpdateDelete()<\/strong> il cui risultato sar\u00e0 un int che segnaler\u00e0 il numero di righe coinvolte nell&#8217;operazione;<\/li>\n<li>svolgere query restituendo un unico valore <strong>simpleQueryForLong()<\/strong> e <strong>simpleQueryForString()<\/strong> che forniranno, rispettivamente, un valore long o una stringa.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>I vantaggi di\u00a0SQLiteStatement sono individuabili, in primis, nell&#8217;ottimizzazione delle risorse grazie al riutilizzo di un comando precompilato ma anche nella rapidit\u00e0 di lettura dei risultati visto che quasi tutti i metodi offrono un valore di ritorno diretto e senza necessit\u00e0 di elaborazioni.<\/p>\n<p>Avete mai utilizzato questa classe? Provatela e vedrete come sar\u00e0 facile snellire il vostro codice per la gestione dei dati!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tramite la classe SqliteDatabase \u00e8 possibile produrre uno Statement precompilato e riutilizzabile grazie al metodo compileStatement che&#8230;<\/p>\n","protected":false},"author":561,"featured_media":13347,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1682],"tags":[1278,1431,543,102],"class_list":["post-13060","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","tag-android","tag-mobile-developer","tag-sql","tag-sqlite"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13060","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=13060"}],"version-history":[{"count":3,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13060\/revisions"}],"predecessor-version":[{"id":13348,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13060\/revisions\/13348"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/13347"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=13060"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=13060"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=13060"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}