http://wiki.nhibernate.org/display/NH/Home

http://sourceforge.net/project/showfiles.php?group_id=73818

Quick Start

  • NHibernate
    use NHibernate
    go
    
    CREATE TABLE users (
      LogonID nvarchar(20) NOT NULL default '0',
      Name nvarchar(40) default NULL,
      Password nvarchar(20) default NULL,
      EmailAddress nvarchar(40) default NULL,
      LastLogon datetime default NULL,
      PRIMARY KEY  (LogonID)
    )
    go
  • NHibernate
  • using System;
    
    namespace NHibernate.Examples.QuickStart
    { 
    	public class User
    	{
    		private string id;
    		private string userName;
    		private string password;
    		private string emailAddress;
    		private DateTime lastLogon;
    
    
    		public User()
    		{
    		}
    
    		public string Id 
    		{
    			get { return id; }
    			set { id = value; }
    		}
    
    		public string UserName 
    		{
    			get { return userName; }
    			set { userName = value; }
    		}
    
    		public string Password 
    		{
    			get { return password; }
    			set { password = value; }
    		}
    
    		public string EmailAddress 
    		{
    			get { return emailAddress; }
    			set { emailAddress = value; }
    		}
    
    		public DateTime LastLogon 
    		{
    			get { return lastLogon; }
    			set { lastLogon = value; }
    		}
    		
    	}
    }
  • <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
    	<class name="NHibernate.Examples.QuickStart.User, NHibernate.Examples" table="users">
    		<id name="Id" column="LogonID" type="String" length="20"> 
    			<generator class="assigned" /> 
    		</id> 
    		<property name="UserName" column= "Name" type="String" length="40"/> 
    		<property name="Password" type="String" length="20"/> 
    		<property name="EmailAddress" type="String" length="40"/>
    		<property name="LastLogon" type="DateTime"/>
    	</class>
    </hibernate-mapping>
  • &ref(): File not found: "BuildAction.PNG" at page "NHibernate";
  • <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section 
          name="nhibernate" 
          type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" 
        />
      </configSections>
    	
      <nhibernate>
        <add 
          key="hibernate.connection.provider"          
          value="NHibernate.Connection.DriverConnectionProvider" 
        />
        <add 
          key="hibernate.dialect"                      
          value="NHibernate.Dialect.MsSql2000Dialect" 
        />
        <add 
          key="hibernate.connection.driver_class"          
          value="NHibernate.Driver.SqlClientDriver" 
        />
        <add 
          key="hibernate.connection.connection_string" 
          value="Server=localhost;initial catalog=nhibernate;Integrated Security=SSPI" 
        />
      </nhibernate>
    </configuration>

Insert

  • NHibernate
    using NHibernate;
    using NHibernate.Cfg;
  • Configuration cfg = new Configuration();
    cfg.AddAssembly("NHibernate.Examples");
  • ISessionFactory factory = cfg.BuildSessionFactory();
    ISession session = factory.OpenSession();
  • ITransaction transaction = session.BeginTransaction();
  • User newUser = new User();
    newUser.Id = "joe_cool";
    newUser.UserName = "Joseph Cool";
    newUser.Password = "abc123";
    newUser.EmailAddress = "joe@cool.com";
    newUser.LastLogon = DateTime.Now;
  • session.Save(newUser);
  • transaction.Commit();
  • session.Close();

  • NHibernate
    using NHibernate;
    using NHibernate.Cfg;
  • Configuration cfg = new Configuration();
    cfg.AddAssembly("NHibernate.Examples");
  • ISessionFactory factory = cfg.BuildSessionFactory();
    ISession session = factory.OpenSession();
  • IList userList = session.CreateCriteria(typeof(User)).List();
  • session.Close();
  • foreach(User user in userList)
    {
    	System.Diagnostics.Debug.WriteLine(user.Id + ":" +user.UserName +":"+ user.LastLogon);
    }

  • NHibernate
    using NHibernate;
    using NHibernate.Cfg;
  • Configuration cfg = new Configuration();
    cfg.AddAssembly("NHibernate.Examples");
  • ISessionFactory factory = cfg.BuildSessionFactory();
    ISession session = factory.OpenSession();
  • LastLogon?
    IList recentUsers = session.CreateCriteria(typeof(User))
    				.Add(Expression.Expression.Gt("LastLogon", new DateTime(2004, 03, 14, 20, 0, 0)))
    				.List();
  • session.Close();
  • foreach(User user in userList)
    {
    	System.Diagnostics.Debug.WriteLine(user.Id + ":" +user.UserName +":"+ user.LastLogon);
    }

  • NHibernate
    using NHibernate;
    using NHibernate.Cfg;
  • Configuration cfg = new Configuration();
    cfg.AddAssembly("NHibernate.Examples");
  • ISessionFactory factory = cfg.BuildSessionFactory();
    ISession session = factory.OpenSession();
  • ITransaction transaction = session.BeginTransaction();
  • User joeCool = (User)session.Load(typeof(User), "joe_cool");
  • joeCool.LastLogon = DateTime.Now;
  • session.Flush();
  • transaction.Commit();
  • session.Close();

    • 1側
      <?xml version="1.0" encoding="utf-8" ?>
      <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0" auto-import="true" assembly="NHibernateTest" namespace="Business.Data">
      	<class name="SsttIssue" table="SSTT_ISSUE">
      
      		<composite-id>
      			<key-property name="CompanyCd" type="String" >
      				<column name="COMPANY_CD" />
      			</key-property>
      			<key-property name="IssueNo" type="String" >
      				<column name="ISSUE_NO" />
      			</key-property>
      		</composite-id>
      
      		<property column="ISSUE_KBN" type="String" name="IssueKbn" not-null="true" length="2" />
      		<property column="STAT_KBN" type="String" name="StatKbn" not-null="true" length="2" />
      		<property column="ISSUE_OUTLINE" type="String" name="IssueOutline" length="256" />
      		<property column="ISSUE_OUTLINE_02" type="String" name="IssueOutline02" length="256" />
      		<property column="LOCK_TIME" type="DateTime" name="LockTime" />
      		<property column="LOCK_SUID" type="Decimal" name="LockSuid" />
      		<property column="TICKET_ID" type="String" name="TicketId" length="50" />
      		<property column="DEL_FLG" type="String" name="DelFlg" length="1" />
      		<property column="INS_SUID" type="Decimal" name="InsSuid" />
      		<property column="INS_DATE" type="DateTime" name="InsDate" />
      		<property column="UPD_SUID" type="Decimal" name="UpdSuid" />
      		<property column="UPD_DATE" type="DateTime" name="UpdDate" />
      		
      		<bag name="ssrtIssueRela">
      			<key>
      
      				<column name="ISSUE_NO" />
      			</key>
      			<one-to-many class="SsrtIssueRela" />
      		</bag>
      		
      	</class>
      </hibernate-mapping>
  • 多側
    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0" auto-import="true" assembly="NHibernateTest" namespace="Business.Data">
    	<class name="SsrtIssueRela" table="SSRT_ISSUE_RELA">
    
    		<composite-id>
    			<key-property name="IssueCompanyCd" type="String" >
    				<column name="ISSUE_COMPANY_CD" />
    			</key-property>
    			<key-property name="IssueNo" type="String" >
    				<column name="ISSUE_NO" />
    			</key-property>
    			<key-property name="BusinessTrnCompanyCd" type="String" >
    				<column name="BUSINESS_TRN_COMPANY_CD" />
    			</key-property>
    			<key-property name="BusinessTrnKbn" type="String" >
    				<column name="BUSINESS_TRN_KBN" />
    			</key-property>
    			<key-property name="BusinessTrnNo" type="String" >
    				<column name="BUSINESS_TRN_NO" />
    			</key-property>
    		</composite-id>
    
    		<property column="INS_SUID" type="Decimal" name="InsSuid" />
    		<property column="INS_DATE" type="DateTime" name="InsDate" />
    		<property column="UPD_SUID" type="Decimal" name="UpdSuid" />
    		<property column="UPD_DATE" type="DateTime" name="UpdDate" />
    
    		<many-to-one name="ssttIssue" class="SsttIssue">
    
    				<column name="ISSUE_NO" />
    		</many-to-one>
    
    	</class>
    </hibernate-mapping>


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Tue, 12 Oct 2021 01:00:55 JST (421d)