venerdì 21 ottobre 2011

Appunti di Jabba #2

Verso i session bean. Gli EntityManager.

Stabilito che quindi avremo a che fare con gli entity bean, e che queste sono entry di tabelle relazionali, facciamo un passo oltre e capiamo il modo per arrivare a farci un po' di manipolazione.
La via primaria e' quella di usare dei session bean, che traducono in qualche modo i task che dobbiamo realizzare per il nostro sistema informatico: prenotare un noleggio, effettuare il pagamento, ecc ecc.
Il session bean deve contenere un EntityManager (e' buon uso che lo contenga, diciamo) che si occupi della persistenza (nel DB) dei dati che inseriamo, cancelliamo e modifichiamo.
Gli EntityManager si occupano dei caratteri transazionali delle nostre attivita', che tradotto in soldoni per i piu', significa garantire che accedendo in molti agli stessi dati non ci si pesti i piedi gli uni con gli altri sovrascrivendo modifiche altrui o usufruendo di dati non piu' attuali.
Vediamo, tanto per, la creazione di un nuovo elemento Automobile e la sua ricerca nel DB.

package com.cAR4u.agenzia;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import com.cAR4u.domain.Automobile;

@Stateless

public class AgenziaBean implements AgenziaRemote{
@PersistenceContext
(unitName="cAR$u")

private EntityManager manager;

public void createAutomobile(Automobile auto) {

manager.persist(auto);

}

public Automobile findAutomobile(int pKey) {

return manager.find(Automobile.class, pKey);

}

}

Da usare previa definizione dell'interfaccia opportuna


package com.cAR4u.agenzia;

import javax.ejb.Remote;
import com.cAR4u.domain.Automobile;

@Remote

public interface AgenziaRemote {

public void createAutomobile(Automobile auto);

public Automobile findAutomobile(int id);

}

Sfortunatamente, salendo verso il livello applicativo vero e proprio stiamo tralasciando il mapping della persistenza, mi appunto un'altra volta che dobbiamo farci una tappa presto.

venerdì 14 ottobre 2011

Appunti di jabba #1

Le mie conoscenze non hanno sufficiente spessore per pubblicare manualistica sul tema enterprise javabeans e tecnologia j2ee. Al contrario, ho iniziato da poco a studiare la materia.
Vorrei solo utilizzare questo spazio per scrivermi degli appunti, a partire dai mattoncini con cui sto prendendo confidenza. Se possono essere utili a qualcuno, ben venga. Altrimenti passate oltre, non si offende nessuno. ;)

Gli entity bean.
Nella complessa stratificazione di programmazione che si puo' fare per ottenere applicazioni distribuite per clienti del web (a cui mi piacerebbe arrivare proprio partendo dal basso) comincio con appuntarmi di questi oggetti.
L'individuazione delle entita' di un sistema informativo in generale e' un passaggio fondamentale per introdurre in questo sistema un sistema informatico.
Esempi banali a frotte. Se voglio informatizzare un sistema di turni di lavoro, le persone che ci lavorano, le postazioni sono esempi di entita'. Per un sistema di prenotazione delle crociere, le cabine, le navi sono altri esempi. Per le banche? I conti correnti, i correntisti, le agenzie.
Modellare entita' e relazioni tra le entita' costituisce parte fondamentale della modellazione concettuale del sistema di informazioni.
Tradurre questa modellazione in tabelle, vuol dire scegliere una modellazione logica relazionale.
Ecco cosi' diventare le entita' righe delle tabelle, record.
Chiaramente sto semplificando ed andando a braccio. Ma di tutto cio' esistono ampie trattazioni.
Eccoci quindi con la tabella conti_correnti o con la tabella prodotti di un magazzino.
Somewhere somehow queste informazioni vanno inserite, cancellate o modificate (quindi bisogna prima preparargli lo spazio).

Immaginiamo di dover gestire un servizio di noleggio di auto usate: l'entita' AUTO nel parco macchine e' senz'altro un must.

package com.cAR4u.domain

import javax.persistence.*;

@Entity

@Table(name="AUTO")

public class Automobile implements java.io.Serializable{

private int id;

private String marca;
private String modello;

private int passeggeri;

private int anno_imm;

@Id

@Column(name="ID")
public int getId( ) { return id; }
public void setId(int pk) { id = pk; }

@Column(name="MARCA")
public String getMarca( ) { return marca; }
public void setMarca(String str) {marca = str; }

@Column(name="MODELLO")
public String getModello( ) { return modello; }
public void setModello(String str) {modello = str; }

@Column(name="PASSEGGERI")
public int getPasseggeri( ) { return passeggeri; }
public void setPasseggeri(int psg) { passeggeri = psg; }

@Column(name="ANNO_IMMATRICOLAZIONE")
public int getAnnoImmatricolazione( ) { return anno_imm; }
public void getAnnoImmatricolazione(int am) { anno_imm = am; }



}


Le proprieta' della classe, per cui sono definiti getter e setter sono le colonne della nostra tabella, ecco quindi che un oggetto e' una tupla, un record nella nostra tabella delle AUTO.
Il file .class sara' contenuto in com/cAR4u/domain.

Un file persistence.xml conterra' le informazioni per accedere al Db, e alla tabella le cui righe sono mappate da questi bean. Ma questo lasciamolo per un'altra volta.

giovedì 15 settembre 2011

Medievali d'altri tempi

No ai matrimoni gay? E no alle adozioni gay?
Ok io penso che siano due c@zzate colossali per cui non posso provare il rispetto del diritto di opinione, perche' se l'opinione e' quella della maggioranza che schiaccia nella ghettizzazione la minoranza che chiede solo uguaglianza per le proprie scelte e per la propria natura, allora non c'e' rispetto che tenga.

Vogliamo scindere? Scindiamo.
Il matrimonio gay richiesto mi sembra sia quello civile, e' corretto? Nessuno chiede a nessuna chiesa di cambiare i suoi dogmi.
Restino pure nella loro ottusita' storicamente assassina e stragista. Tanto e'.
Ma che in una societa' presunta civile le unioni degli omosessuali non possano godere degli stessi diritti e doveri delle coppie eterosessuali e' mostruoso. Come a dire, siccome voi siete una stortura rispetto alla nostra grassa maggioranza, o vi adeguate, e guarite dalla vostra mente
malata, oppure siete fuori. Quanta violenza in un pensiero simile? Quanto fascismo.

E le adozioni? Apriti cielo. Si vogliono mica crescere figli che pensino che ci sono eterosessulita' e omosessualita' al mondo? E che non hanno meno dignita' l'una dell'altra?
O che l'omosessualita' non sia una condanna alla vergogna?
L'argomento del modello da seguire secondo me non funziona. A parte che state dicendo che c'e' un modello giusto e uno sbagliato, e gia' questo mi sembra in contrasto con qualsivoglia apertura mentale. A parte. Ma se cosi' fosse, per assurdo, i figli di eterosessuali sono tutti eterosessuali?
Dal punto di vista squisitamente logico, il modello da seguire per non deviare (!) e' argomento falso.
Ma chi ha mai pensato che vuole fare sesso perche' lo fanno i genitori??? Ma chi? Ma dove?
O che si deve amare una donna perche' papa' ama una donna? Ma non suona idiota?
Mi sembra di capire che non sia una questione culturale, come invece lo e' la repressione che deriva dalla presunzione di sapere cio' che e' giusto e cio' che e' sbagliato per sentimenti e sessualita', ma che la natura segua il suo corso. Sbaglio? Quindi? E' paura di perdere punti nella conta degli etero?

E poi? L'argomento dell'offesa dei sentimenti religiosi? Caro d'alema? Ma perche' la mortificazione dei sentimenti omosessuali invece va bene?
Quello che voglio dire e' che se c'e' qualcosa che e' individuale sono i sentimenti, e perche' ci deve essere un amore nobile ed un amore di serie c? Questo non e' un insulto?

Boh. Sono stupito anche che se ne debba discutere.

venerdì 5 agosto 2011

Pre-festivo

Bah. Scrivere per scrivere, senza molta voglia di scrivere.
Che raccontare? Oggi si va in ferie. E questa e' una gran buona news.
Fatto l'esame estivo. Chiusi i libri.
Chiusa con il lavoro da oggi, per una quindicina di giorni.

Ieri e' arrivata la batteria elettronica (per chi ci segue, e' noto che d'Estate studio di meno e mi avvicino al primo amore di sempre. La musica) e non vedo l'ora di sudarci sopra un po' di esercizi di coordinamento, su base street rock, neanche da dirlo.
L'ho praticamente scambiata con la ps3, ferma da un po'. Non c'era tempo, non c'era voglia, mancava l'intenzione. Pochi giochi, anche un filo deludenti (qualcuno). Pace e amen.
Meglio qualche rullo, almeno per ora la penso cosi'.

Guardandoci intorno.

La questione morale e' all'ordine del giorno.
Non si puo' essere solo un po' meglio degli altri, a sinistra. Si deve essere puliti. Punto e basta. Espulsione immediata per chicchessia che ha le mani in pasta. Ci avete stancato. Il messaggio di elezioni e referenda era anche per voi, se non ve ne siete accorti.
Wake up.
Abbiate il fott#to coraggio di essere puliti, non ammettendo che rubi la marmellata il vostro vicino di banco. Anche cosi' non va. Anche se e' solo l'ultimo degli amministratori e soprattutto invece se ultimo degli ultimi non lo e'.

Beh bon. Basta. Stacco. Mohitos a tutti!

martedì 5 luglio 2011

martedì 14 giugno 2011

57? Maddai?! :D

Allora? Che facciamo? Politicizziamo il risultato o non lo politicizziamo? Certo che con quel legittimo impedimento li', in mezzo alla paura per il nucleare, e alla voglia dell'acqua pubblica (va bene, va bene, gestita dal pubblico)... La tentazione e' forte.
Quasi incomprensibile pero', anche rileggendo un po' tutte le analisi, un risultato cosi' roboante. Hanno votato gli assenti di solito? Essi'. E ha votato anche uno zicchetto di destra? Essi'.
Per forza. Volente o nolente accettando il messaggio di critica, severa, alle decisioni del governo, o alla non presentabilita' del sultNano.
Ad ogni modo grazie. In Italia di marcio ce ne e'. E tanto. Ma tanto davvero.
Ma c'e' anche la gente comune, per bene, fatta di giovani che ci credono, fatta di piu' grandicelli pieni di ammirazione per il lavoro dei nostri padri costituenti che hanno rifinito con lavoro di grande pregio, il monumento alla liberta' che i nostri partigiani hanno costruito versando il sangue, fatta di donne che sono stufe di essere l'ultima ruota del carro. Boh, dai, si potrebbe continuare a lungo, parlando di movimenti, di iniziative, di piazza, di social networking, di ironia, di partecipazione in generale. Ma poi comincerebbe a sembrare retorica. Quindi abbracciamoci e smettiamo pure di metterci una didascalia.
Questa parte del paese che ha alzato la testa con un colpo di reni e ha urlato, piu' o meno forte, il suo sdegno, merita un sentito grazie, da tutti.