zoukankan      html  css  js  c++  java
  • Nhibernate基类

    NHibernate是一个面向.NET环境的对象/关系数据库映射工具

    1.webconfig部分

    <?xml version="1.0"?>
    
    <configuration>
      <!--配置段处理程序声明区-->
      <configSections>
        <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
      </configSections>
      <!--配置段处理程序声明区-->
      <system.web>
        <compilation debug="true" targetFramework="4.0"/>
      </system.web>
      
      <!--Nhibernate连接-->
      <nhibernate>
        <add key="show-sql" value="true"/>
        <add key="hibernate.use_proxy_validator" value="false"/>
        <add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
        <add key="hibernate.dialect" value="NHibernate.Dialect.MsSql2005Dialect"/>
        <add key="hibernate.connection.connection_string" value="Server=.\SQLEXPRESS;User=test;Password=test;Initial Catalog=demo;integrated security=false;persist security info=True;"/>
      </nhibernate>
      <!--Nhibernate连接-->
    </configuration>

    2.读取配置文件

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    /**/
    using NHibernate;
    using NHibernate.Cfg;
    
    namespace DAL
    {
        public class NHibernateSession
        {
            private static readonly ISessionFactory sessionFactory;
    
            #region 读取配置文件
            /// <summary>
            /// 读取配置文件
            /// </summary>
            static NHibernateSession()
            {
                Configuration cfg = new Configuration();
                cfg.AddAssembly("Model");
                sessionFactory = cfg.BuildSessionFactory();
            }
            #endregion
    
            public static ISessionFactory GetCurrentSessionFactory()
            {
                return sessionFactory;
            }
        }
    }

    3.基类操作

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    /**/
    using NHibernate;
    using NHibernate.Cfg;
    using System.Collections;
    
    namespace DAL
    {
       public class BaseDAL
       {
           #region 查询,返回IList
           /// <summary>
           /// 查询,返回IList
           /// </summary>
           /// <param name="hql"></param>
           /// <returns></returns>
           public static IList GetObjectList(string hql)
           {
               using (ISession session=NHibernateSession.GetCurrentSessionFactory().OpenSession())//打开数据库
               {
                   //查询
                   IQuery iquery = session.CreateQuery(hql);
                   IList list=null;
                   try
                   {
                       list=iquery.List();
                   }
                   catch(Exception ex)
                   {
                       throw ex;
                   }
                   session.Close();
                   return list;
               }
           }
           #endregion
    
           #region 分页查询
           /// <summary>
           /// 分页查询
           /// </summary>
           /// <param name="hql"></param>
           /// <param name="page"></param>
           /// <param name="pageSize"></param>
           /// <returns></returns>
           public static IList GetObjectList(string hql, int page, int pageSize)
           {
               using (ISession session=NHibernateSession.GetCurrentSessionFactory().OpenSession())
               {
                   IQuery iquery = session.CreateQuery(hql);
                   IList list = null;
                   try
                   {
                       iquery.SetFirstResult(page*pageSize);//开始
                       iquery.SetMaxResults(pageSize);//结束
                       list=iquery.List();
                   }
                   catch(Exception ex)
                   {
                       throw ex;
                   }
                   session.Close();
                   return list;
               }
           }
           #endregion
    
           #region 增加一条记录
           /// <summary>
           /// 增加一条记录
           /// </summary>
           /// <param name="obj"></param>
           /// <returns></returns>
           public static object Insert(object obj)
           {
               if (obj != null)
               {
                   using (ISession session = NHibernateSession.GetCurrentSessionFactory().OpenSession())
                   {
                       ITransaction transaction = session.BeginTransaction();
                       object result = null;
                       try
                       {
                           result = session.Save(obj);
                       }
                       catch (Exception ex)
                       {
                           throw ex;
                       }
                       transaction.Commit();
                       session.Close();
                       return result;
                   }
               }
               else
                   return null;
           }
           #endregion
    
           #region 更新
           /// <summary>
           /// 更新
           /// </summary>
           /// <param name="obj"></param>
           /// <returns></returns>
           public static bool Update(object obj)
           {
               bool result = false;
               using (ISession session=NHibernateSession.GetCurrentSessionFactory().OpenSession())
               {
                  ITransaction transaction = session.BeginTransaction();
                       
                   try
                   {
                      session.Update(obj);
                      transaction.Commit();
                      result = true;
    
                   }
                   catch (Exception ex)
                   {
                       throw ex;
                   }
                   session.Close();
                   return result;
                }
    
           }
           #endregion
    
           #region 删除
           /// <summary>
           /// 删除
           /// </summary>
           /// <param name="obj"></param>
           /// <returns></returns>
           public static bool Delete(string hql)
           {
               bool result = false;
               using (ISession session=NHibernateSession.GetCurrentSessionFactory().OpenSession())
               {
                   ITransaction transaction = session.BeginTransaction();
                   try
                   {
                       session.Delete(hql);
                       transaction.Commit();
                       result = true;
                   }
                   catch (Exception ex)
                   {
                       throw ex;
                   }
                   session.Close();
                   return result;
                  
               }
           }
           #endregion
    
           #region 执行存储过程
           /// <summary>
           /// 执行存储过程
           /// </summary>
           /// <param name="spname"></param>
           /// <param name="parms"></param>
           /// <param name="entityType"></param>
           /// <returns></returns>
           public static IList ExecSP(string spname,string parms,Type entityType)
           {
               using (ISession session=NHibernateSession.GetCurrentSessionFactory().OpenSession())
               {
                   ITransaction transaction = session.BeginTransaction();
                   string sqlQuery = "Exec" + spname + " " + parms;
                   IQuery iquery = session.CreateSQLQuery(sqlQuery).AddEntity(entityType);
                   IList list = iquery.List();
                   transaction.Commit();
                   session.Close();
                   return list;
               }
           }
           #endregion
    
           #region 执行存储过程
           /// <summary>
           /// 执行存储过程
           /// </summary>
           /// <param name="spname"></param>
           /// <param name="parms"></param>
           /// <param name="entityType"></param>
           /// <returns></returns>
           public static IList ExecSP(string spname, string[] parms, Type entityType)
           {
               using (ISession session=NHibernateSession.GetCurrentSessionFactory().OpenSession())
               {
                   ITransaction transaction = session.BeginTransaction();
                   string sqlQuery = "Exec" + spname;
                   foreach(string p in parms)
                   {
                       sqlQuery += "'" + p + "',";
                   }
                   sqlQuery = sqlQuery.Remove(sqlQuery.Length-1);
                   IQuery iquery = session.CreateSQLQuery(sqlQuery).AddEntity(entityType);
                   IList list = iquery.List();
                   transaction.Commit();
                   session.Close();
                   return list;
               }
           }
           #endregion
       }
    }
  • 相关阅读:
    Robotframework自动化6-基础关键字介绍(3)
    Robotframework自动化5-基础关键字介绍(2)
    Robotframework自动化4-基础关键字介绍(1)
    Robotframework自动化3-APP启动
    Robotframework自动化2-Windows环境搭建
    Robotframework自动化1-Windows环境搭建
    python2与python3同时安装
    Fiddler的基本界面介绍
    Fiddler的安装和APP抓包
    正则表达式
  • 原文地址:https://www.cnblogs.com/dong897812629/p/2875511.html
Copyright © 2011-2022 走看看