实体层:
在DAO中的Entity文件夹内:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DAO.Entity
{
/// <summary>
/// 用户帐号
/// </summary>
///
[Serializable]
public class Account
{
/// <summary>
/// 用户编号
/// </summary>
public virtual Int32 AccountID { get; set; }
/// <summary>
/// 用户姓名
/// </summary>
public virtual String Name { get; set; }
/// <summary>
/// 用户登陆名
/// </summary>
public virtual String AccountName { get; set; }
/// <summary>
/// 用户密码
/// </summary>
public virtual String Pwd { get; set; }
/// <summary>
/// 用户状态
/// </summary>
public virtual Boolean Status { get; set; }
/// <summary>
/// 联系电话
/// </summary>
public virtual String TelPhone { get; set; }
/// <summary>
/// 邮件
/// </summary>
public virtual string Email { get; set; }
/// <summary>
/// 人员所属部门
/// </summary>
public virtual Department Department { get; set; }
/// <summary>
/// 人员所属角色
/// </summary>
public virtual IList<Role> Roles { get; set; }
}
}
映射文件:
在DAO.Nhibernate的Mapping文件夹:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="DAO.Entity.Account,DAO" table="Account" lazy="true">
<id name="AccountID" type="Int32">
<column name="AccountID" sql-type="int" not-null="true"/>
<generator class ="native"></generator>
</id>
<property name="Name" type="String">
<column name="Name" length="10" sql-type="nvarchar" not-null="false"></column>
</property>
<property name="AccountName" type="String">
<column name="AccountName" length="20" sql-type="nvarchar" not-null="false" unique="true"></column>
</property>
<property name="Pwd" type="String">
<column name="Pwd" length="50" sql-type="nvarchar" not-null="false"></column>
</property>
<property name="Status" type="Boolean">
<column name="`Status`" sql-type="bit" not-null="false" default="1"></column>
</property>
<property name="TelPhone" type="String">
<column name="TelPhone" sql-type="nvarchar" length="50" not-null="false"></column>
</property>
<property name="Email" type="String">
<column name="Email" sql-type="nvarchar" length="50" not-null="false"></column>
</property>
<many-to-one name="Department" column="DepartmentID" class="DAO.Entity.Department,DAO" lazy="false" foreign-key="FKBE1051AFF4DB039A"></many-to-one>
<bag name="Roles" table="AccountInRle" lazy="false">
<key column="AccountID"></key>
<many-to-many column="RoleID" class="DAO.Entity.Role,DAO"></many-to-many>
</bag>
</class>
</hibernate-mapping>
DAO.xml 文件,主要是访问层的配置
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
xmlns:db="http://www.springframework.net/database">
<!-- Referenced by main application context configuration file -->
<description>
中转平台
</description>
<!-- Property placeholder configurer for database settings -->
<!--<object type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core">
<property name="ConfigSections" value="databaseSettings"/>
</object>-->
<!-- Database Configuration -->
<!--<db:provider id="DbProvider"
provider="SqlServer-2.0"
connectionString="Server=127.0.0.1;database=TransitData;integrated security=sspi;"/>-->
<db:provider id="DbProvider"
provider="SqlServer-2.0"
connectionString="Server=59.173.61.174;database=AirportTransit;uid=kaiya;pwd=kaiya;"/>
<!-- NHibernate Configuration -->
<object id="NHibernateSessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate33">
<property name="DbProvider" ref="DbProvider"/>
<!-- Here -->
<property name="MappingAssemblies">
<list>
<value>DAO.Nhibernate</value>
</list>
</property>
<property name="HibernateProperties">
<dictionary>
<entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
<entry key="dialect" value="NHibernate.Dialect.MsSql2008Dialect"/>
<entry key="connection.driver_class" value="NHibernate.Driver.SqlClientDriver"/>
<entry key="use_proxy_validator" value="false" />
<!-- provides integation with Spring's declarative transaction management features -->
<entry key="use_outer_join" value="true"/>
<entry key="show_sql" value="true"/>
<!-- Here -->
<!--自动建表(反向映射)-->
<entry key="hbm2ddl.auto" value="update"/>
<entry key="adonet.batch_size" value="10"/>
<entry key="command_timeout" value="60"/>
<!--显式启用二级缓存-->
<entry key="cache.use_second_level_cache" value="true"/>
<!--启动查询缓存-->
<entry key="cache.use_query_cache" value="false"/>
<entry key="query.substitutions" value="true 1, false 0, yes 'Y', no 'N"/>
</dictionary>
</property>
<property name="ExposeTransactionAwareSessionFactory" value="true" />
</object>
<!-- Transaction Management Strategy - local database transactions -->
<object id="transactionManager"
type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate33">
<property name="DbProvider" ref="DbProvider"/>
<property name="SessionFactory" ref="NHibernateSessionFactory"/>
</object>
<!-- Exception translation object post processor -->
<object type="Spring.Dao.Attributes.PersistenceExceptionTranslationPostProcessor, Spring.Data"/>
<!-- Data Access Objects -->
<object id="DepartmentDAO" type="DAO.Nhibernate.DAO.DepartmentDAO, DAO.Nhibernate">
<property name="SessionFactory" ref="NHibernateSessionFactory"/>
</object>
<object id="AccountDAO" type="DAO.Nhibernate.DAO.AccountDAO, DAO.Nhibernate">
<property name="SessionFactory" ref="NHibernateSessionFactory"/>
</object>
<object id="RoleDAO" type="DAO.Nhibernate.DAO.RoleDAO, DAO.Nhibernate">
<property name="SessionFactory" ref="NHibernateSessionFactory"/>
</object>
<!--<object id="PassengerDAO" type="DAO.Nhibernate.DAO.PassengerDAO, DAO.Nhibernate">
<property name="SessionFactory" ref="NHibernateSessionFactory"/>
</object>-->
<object id="VPassengerDAO" type="DAO.Nhibernate.DAO.VPassengerDAO, DAO.Nhibernate">
<property name="SessionFactory" ref="NHibernateSessionFactory"/>
</object>
<object id="ServicePackDAO" type="DAO.Nhibernate.DAO.ServicePackDAO, DAO.Nhibernate" >
<property name="SessionFactory" ref="NHibernateSessionFactory" />
</object>
<object id="CheckinDAO" type="DAO.Nhibernate.DAO.CheckinDAO, DAO.Nhibernate" >
<property name="SessionFactory" ref="NHibernateSessionFactory" />
</object>
<object id="ServiceItemDAO" type="DAO.Nhibernate.DAO.ServiceItemDAO, DAO.Nhibernate" >
<property name="SessionFactory" ref="NHibernateSessionFactory" />
</object>
<object id="ServiceStatusDAO" type="DAO.Nhibernate.DAO.ServiceStatusDAO, DAO.Nhibernate" >
<property name="SessionFactory" ref="NHibernateSessionFactory" />
</object>
<object id="PassengerServiceDAO" type="DAO.Nhibernate.DAO.PassengerServiceDAO, DAO.Nhibernate" >
<property name="SessionFactory" ref="NHibernateSessionFactory" />
</object>
<object id="PassengerCheckinDAO" type="DAO.Nhibernate.DAO.PassengerCheckinDAO, DAO.Nhibernate" >
<property name="SessionFactory" ref="NHibernateSessionFactory" />
</object>
<object id="PassengerLogDAO" type="DAO.Nhibernate.DAO.PassengerLogDAO, DAO.Nhibernate" >
<property name="SessionFactory" ref="NHibernateSessionFactory" />
</object>
<object id="PassengerProcDAO" type="DAO.Nhibernate.DAO.PassengerProcDAO, DAO.Nhibernate" >
<property name="SessionFactory" ref="NHibernateSessionFactory" />
</object>
<object id="PassengerServiceLogDAO" type="DAO.Nhibernate.DAO.PassengerServiceLogDAO, DAO.Nhibernate" >
<property name="SessionFactory" ref="NHibernateSessionFactory" />
</object>
<object id="PrivilegeDAO" type="DAO.Nhibernate.DAO.PrivilegeDAO, DAO.Nhibernate" >
<property name="SessionFactory" ref="NHibernateSessionFactory" />
</object>
<object id="BaggageDAO" type="DAO.Nhibernate.DAO.BaggageDAO, DAO.Nhibernate" >
<property name="SessionFactory" ref="NHibernateSessionFactory" />
</object>
</objects>
CustomLocalSessionFactoryObject类:
using NHibernate.Bytecode;
using Spring.Data.NHibernate;
using Spring.Data.NHibernate.Bytecode;
namespace DAO.Nhibernate.DAO.Nhibernate
{
/// <summary>
/// A custom version of <see cref="LocalSessionFactoryObject" /> that sets
/// bytecode provider to be Spring.NET's <see cref="BytecodeProvider" />.
/// </summary>
public class CustomLocalSessionFactoryObject : LocalSessionFactoryObject
{
/// <summary>
/// Overwritten to return Spring's bytecode provider for entity injection to work.
/// </summary>
public override IBytecodeProvider BytecodeProvider
{
get { return new BytecodeProvider(ApplicationContext); }
set { }
}
}
}
Service层:
using DAO.DAO;
using DAO.Entity;
using Service.Interface;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Service.Service
{
public class AccountService : IAccountService
{
public IAccountDAO account;
public IAccountDAO Account
{
set
{
this.account = value;
}
}
}
Service.XML
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
xmlns:tx="http://www.springframework.net/tx">
<!-- Referenced by main application context configuration file -->
<description>
中转平台
</description>
<object id="AccountService" type="Service.Service.AccountService, Service">
<property name="Account" ref="AccountDAO"/>
</object>
<tx:attribute-driven/>
</objects>
页面文件:
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
<description>
中转平台
</description>
<object type="Sys_Account/Account.aspx">
<property name="AccountService" ref="AccountService"></property>
</object>
</objects>
using DAO.Entity;
using Service.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
namespace TransitWeb.Sys_Account
{
public partial class Account : System.Web.UI.Page
{
private IAccountService _AccountService;
public IAccountService AccountService
{
set
{
_AccountService = value;
}
}
}
浙公网安备 33010602011771号