NHibernate
Esempi e tutorial su NHibernate (Hibernate in Java)
Nella scorsa lezione abbiamo visto quali sono le classi e le tabelle del database, ora vedremo come scrivere correttamente i file XML per NHibernate che avranno il nome %nomeclasse%.hbm.xml.
Queste le regole generali per scrivere correttamente un file XML di NHibernate:
<?xml version="1.0" encoding="utf-8" ?><hibernate-mapping xmlns="urn:nhibernate-mapping-2.0" > <class name="%nomeclasse%, %namespace%" table="%tabella sul database%"> <id name="%nome proprietà sulla classe%" column="%nome del campo di chiave primaria%" unsaved-value="%valore di default per record non salvati%" > <generator class="native" /> </id> <property name="%nome proprietà sulla classe%" column="%nome del campo su database%" type="%tipo di campo su database%"/> <!-- RELAZIONE MOLTI A MOLTI --> <set name="%nome proprietà sulla classe%" table="%tabella...
Cominciamo ad addentrarci con NHibernate con il primo esempio funzionante di applicazione che, per comodità, suddividerò in più parti. Cominciamo con la progettazione delle classi: User, Role.
User -->ID; (identificativo utente) -->Username; (nome utente) -->Password; (password) -->Email; (indirizzo email)-->Scadenza; (data scadenza password e/o utenza) -->Roles; (gruppi associati all'utente)
Role -->ID; (identificativo gruppo) -->Description (descrizione del gruppo) -->Users; (utenti associati al gruppo)
Queste sono le classi e le proprietà (minime) che servono per poter realizzare questo progetto. Realizziamo la tabella sul database utilizzando una nomenclatura per i nomi dei campi differente (poi vedremo come interfacciarla) da quella utilizzata nelle classi. Tenete presente che i...
Inizio oggi una serie di articoli che parlano di NHibernate con MySql e del suo utilizzo in applicazioni n-tier di cui mi sto occupando in questo periodo.Cercherò di essere chiaro e sintetico negli esempi.
Tanto per cominciare il primo passo da seguire è la configurazione del database da utilizzare per far questo possiamo utilizzare queste righe di codice:
NHibernate.Cfg.Configuration configuration =new NHibernate.Cfg.Configuration(); IDictionary props = new Hashtable(); props["hibernate.connection.provider"]="NHibernate.Connection.DriverConnectionProvider"; props["hibernate.dialect" ] = "NHibernate.Dialect.MySQLDialect"; props["hibernate.connection.driver_class" ] = "NHibernate.Driver.MySqlDataDriver" ; props["hibernate.connection.connection_string"] = "Server=localhost;Database=%nomedb%;User ID=%usr%;Password=%pwd%;" ;
foreach( DictionaryEntry de in props ) { configuration.SetProperty( de.Key.ToString(), de.Value.ToString() ); }
Mi raccomando, impostate questi parametri e cambiate la...