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

  • 相关阅读:
    ActiveMQ( 一) 同步,异步,阻塞 JMS 消息模型
    rocketmq (一)运行原理以及使用问题
    Springboot+ActiveMQ(ActiveMQ消息持久化,保证JMS的可靠性,消费者幂等性)
    ActiveMQ(下载,启动,java程序中 如何操作)
    ActiveMQ(为什么要使用消息中间件,JMS传输模型)
    java(线程池的创建方式,和线程池的原理)
    java多线程
    Zookeeper实现负载均衡
    Zookeeper实现分布式锁
    SpringCloud-断路器(Hystrix)
  • 原文地址:https://www.cnblogs.com/xiaose1205/p/3001876.html
Copyright © 2011-2022 走看看