zoukankan      html  css  js  c++  java
  • Net开源HelloData之:系统配置

    HelloData的系统配置尽量的简洁明了,也让操作更加快捷。

    1、

    首先配置日志模块:

                Logger.Current.SetLogger = new ConsoleLog();
                Logger.Current.IsOpenLog = true;
                Logger.CurrentLog.Info("INSTALLING");

    日志里面包含了常见的Debug,Error,Info等,调用方式就Logger.CurrentLog.Info("INSTALLING");或者Logger.CurrentLog.Error("INSTALLING");现已经加入了log4net,nlog的匹配,调用直接new LogNet();如果有其他的日志系统,也可以继承ILog,然后setLogger中实例化即可全局使用当前配置的日志。当然记得一定要OpenLog才行。以下是内置的consoleLog的效果

     2、

                //设置数据库连接执行状况
                AppCons.LogSqlExcu = true;

    AppCons.LogSqlExcu当这个配置开启后,会记录下操作内部执行的每一条sql语句,方便调试,如果是参数化的操作,同时会记录下每一个参数名跟参数值。

    3、

               //设置第一个数据库
                AppCons.SetDefaultConnect(new SQLliteHelper(), ConfigurationManager.AppSettings["ConnectionString1"]);
              

    此操作为设置当前数据库操作的第一个链接,因为HelloData支持多个数据库同时操作,所以就有了设置多个数据库的操作;

                   //设置第二个数据库
                AppCons.SetSecondConnect(new MySqlHelper(), ConfigurationManager.AppSettings["ConnectionString1"]);
                //设置更多个数据库
                AppCons.SetMoreConnect(new SQLliteHelper(), ConfigurationManager.AppSettings["ConnectionString2"]);
               

     逻辑层使用数据库切换的时候int index默认为0,表示操作第一个及设置的默认数据库,如果设置为1的话就表示执行的是第二个数据库的操作,以此类推,从而达到了多个数据库直接操作。

     4、

                    //是否需要数据库全局参数化
                AppCons.IsParmes = false;

    此设置为内部的orm拼接的sql是以何种方式拼接,如果是true的话,会加传值方式为参数化传值,如果是false的话就是普通的sql语句,参数化的好处就是防止了sql攻击。

    5、

                //是否数据库操作的缓存
                AppCons.IsOpenCache = false;
                //使用第三方的分布式缓存
                //AppCons.CurrentCache =new  RedisCache();
                //使用内置的webcache缓存
                AppCons.CurrentCache = new WebCache();

    缓存的设置,当开启缓存后,操作数据库的链接就会大大的减少,缓存的key是以当前操作的对象跟操作条件为基准的。缓存支持rediscache,webcache等,如需扩展可以继承ICache

     /// <summary>
            /// 插入缓存,使用相对过期时间
            /// </summary>
            /// <param name="key"></param>
            /// <param name="value"></param>
            void Insert(string key, object value);
            /// <summary>
            /// 设置key的缓存
            /// </summary>
            /// <param name="key"></param>
            /// <param name="entry"></param>
            void Set(string key, object entry);
            /// <summary>
            /// 获取key缓存
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="key"></param>
            /// <returns></returns>
            T Get<T>(string key);
            /// <summary>
            /// 获取所有缓存
            /// </summary>
            List<string> GetKeys();
    
            /// <summary>
            /// 清除所有缓存
            /// </summary>
            void RemoveAll();
            /// <summary>
            /// 移除缓存
            /// </summary>
            /// <param name="key"></param>
            void Remove(string key);
            /// <summary>
            /// 根据Key的前缀删除缓存
            /// </summary>
            void RemoveByPreFix(string prefix);

    以上为基本的设置,其余的设置都是基于各个操作对象。

    未完待续。。。。。

    1、写在新工作之前的一个下雨天。HelloData  开源net Orm框架。自创,希望大家喜欢。

    2、HelloData之:数据库model的生成。

    下载地址:https://github.com/xiaose1205/HelloData

  • 相关阅读:
    Leetcode 349. Intersection of Two Arrays
    hdu 1016 Prime Ring Problem
    map 树木品种
    油田合并
    函数学习
    Leetcode 103. Binary Tree Zigzag Level Order Traversal
    Leetcode 102. Binary Tree Level Order Traversal
    Leetcode 101. Symmetric Tree
    poj 2524 Ubiquitous Religions(宗教信仰)
    pat 1009. 说反话 (20)
  • 原文地址:https://www.cnblogs.com/xiaose1205/p/3001876.html
Copyright © 2011-2022 走看看