Introduction to ORM Introduction to NHibernate Scenario NHibernate Demo Demo Process Hibernate-config.xml Mapping files & classes SessionManager DAO (Data Access Object) Create ASPX to do testing Reference 2 Agenda
Introduction to ORM 3
Object-relational mapping (aka ORM, O/RM, and O/R mapping) is a programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages (Wikipedia) Objects are hierarchical Databases are relational What is ORM? ORM objects relational 4
Productivity Eliminates lots of repetitive code – focus on business logic Database schema is generated automatically Maintainability Fewer lines of code – easier to understand Easier to manage change in the object model Performance Lazy loading – associations are fetched when needed Caching Database vendor independence The underlying database is abstracted away Can be configured outside the application ORM Benefits 5
6 ORM and Architacture Oracle, MS SQL Server, DB2, MySQL, Sybase, etc.
Introduction to NHibernate 7
Initially developed for Java created in late 2001 by Gavin King absorbed by the JBossGroup / Red Hat Ported to .NET 1.1, 2.0, 3.5 Resulting product called “NHibernate” All popular databases supported Oracle, SQL Server, DB2, SQLite, PostgreSQL, MySQL, Sybase, Firebird, … XML-based configuration files Good community support Free/open source -NHibernateis licensed under the LGPL (Lesser GNU Public License) Introduction to NHibernate 8
9 High-level overview of the Nhibernate API
NHibernate managing database access 10
11 Access Persistent Object
ISessionFactory One per database (or application) Expensive to create Reads configuration ISession Portal to the database Saves, retrieves ITransaction Encapsulates database transactions Nhibernate in a Nutshell 12
Scenario 13
One people may have more than one contact One contact belongs to one people 14 Database schema
15 Use Case Diagram
16 Sequence diagram – create
17 Sequence diagram – Read
18 Sequence diagram – Update
19 Sequence diagram – Delete
20 Project Directories Stored persistence tier-related code Stored presentation tier-related code Data access objects Value objects and mapping files
<class> declare a persistent class <id> defines the mapping from that property to the primary key column Specifies strategy <property> declares a persistent property of the class <component> maps properties of a child object to columns of the table of a parent class. Associations One-to-Many Many-to-One Many-to-Many One-to-One (uncommon) 28 Mapping Concepts
29 Mapping Collections
30 Mapping files & classes ORM objects relational
31 Mapping files & classes – cont.
32 Mapping files & classes – cont.
33 Mapping files & classes – cont.
34 Session Manager [ISession]
Obtained from a SessionFactory instance
Responsible for storing and retrieving objects
Think of it as a collection of loaded objects related to a single unit of work
35 DAO (Data Access Object)
36 DAO (Data Access Object) – cont.
37 DAO (Data Access Object) – cont.
38 DAO (Data Access Object) – cont.
39
Transaction: A set of database operations which must be executed in entirety or not at all Should end either with a commit or a rollback All communication with a database has to occur inside a transaction! 40 Transactions
41 Transactions – cont.
Create a new record
43 Read data by criteria
Update record
45 Delete record
O/R Mapping http://en.wikipedia.org/wiki/Object-relational_mapping Official site www.hibernate.org NHibernate in Action NHibernate Made Simple http://www.codeproject.com/KB/database/Nhibernate_Made_Simple.aspx NHibernate Best Practices http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx 46 Reference
0 comments
Post a comment