Пример #1
0
        public void SetUp()
        {
            DomSqlMapBuilder builder = new DomSqlMapBuilder();
            ISqlMapper       mapper  = builder.Configure(@"../../../Files/sqlMap.config");

            blogService = new BlogService(mapper);
        }
Пример #2
0
        /// <summary>
        /// 实现IBatis接口
        /// </summary>
        /// <param name="connectConfig"></param>
        protected static ISqlMapper InitMapper(string sqlMapConfig)
        {
            ConfigureHandler handler = new ConfigureHandler(Configure);
            DomSqlMapBuilder builder = new DomSqlMapBuilder();

            ISqlMapper mp = null;

            try
            {
                if (_mappers.ContainsKey(sqlMapConfig))
                {
                    mp = _mappers[sqlMapConfig];
                }
                else
                {
                    mp = builder.ConfigureAndWatch(sqlMapConfig, handler);
                    _mappers.Add(sqlMapConfig, mp);
                }
            }
            catch (System.Exception e)
            {
                Logger.Error(e.StackTrace);
                return(null);
                //logger.Exception(e.Message, e);
            }

            return(mp);
        }
Пример #3
0
        public UserService()
        {
            ISqlMapper       mapper  = Mapper.Instance();
            DomSqlMapBuilder builder = new DomSqlMapBuilder();

            sqlMapper = builder.Configure() as SqlMapper;
        }
Пример #4
0
        protected static void InitMapper()
        {
            ConfigureHandler handler = new ConfigureHandler(Configure);
            DomSqlMapBuilder builder = new DomSqlMapBuilder();

            mapper = builder.ConfigureAndWatch(handler);
        }
Пример #5
0
        /// <summary>
        /// 初始化Ibatis的SqlMapper
        /// </summary>
        public static void InitMapper(string configFilePath = null)
        {
            var builder = new DomSqlMapBuilder();

            mapper = string.IsNullOrEmpty(configFilePath) ? builder.Configure() : builder.Configure(configFilePath);
            mapper.SessionStore = new HybridWebThreadSessionStore(mapper.Id);
        }
Пример #6
0
        protected void InitMapper(string databaseName)
        {
            ConfigureHandler handler = new ConfigureHandler(Configure);
            DomSqlMapBuilder builder = new DomSqlMapBuilder();

            _mapper[databaseName] = builder.ConfigureAndWatch(databaseName, handler);
        }
        public DataMapperInstanceTest()
        {
            ISqlMapper _sqlMapper = new DomSqlMapBuilder().Configure("IBatisNet.config");

            _testObjectDao         = new TestObjectDao(_sqlMapper);
            _testNullableObjectDao = new TestNullableObjectDao(_sqlMapper);
        }
Пример #8
0
        /// <summary>
        /// 创建 ISqlMapper 对象
        /// </summary>
        private void CreateSqlMapper()
        {
            //-----(1)
            //DomSqlMapBuilder builder = new DomSqlMapBuilder();
            //ISqlMapper _sqlMapper = builder.Configure("SqlMap.config");
            //-----(2)
            //SqlMap是线程安全的
            //Mapper.Get()方法和Mapper.Instance()方法调用默认的 SqlMap.config 配置文件来创建SqlMapper
            //ISqlMapper sm = Mapper.Get();
            //与使用DomSqlMapBuilder类的区别是,Mapper.Get()不需要指定配置文件的名称,并且使用Mapper.Get()返回SqlMapper后如果映射的XML没有错误的话,会将该XML文件缓存到内存,
            //下次调用的时候就不需要在检查XML文件,直到SqlMap.config被改变,这样将大大的提高了程序的性能,而使用DomSqlMapBuilder建立的SqlMapper每次都要先分析映射的XML文件,性能将大大的降低


            DomSqlMapBuilder    builder = new DomSqlMapBuilder();
            NameValueCollection prop    = new NameValueCollection();


            string _ConntectionString = ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString;

            prop.Add("connectionString", _ConntectionString);
            builder.Properties = prop;
            try
            {
                _sqlMapper = builder.Configure();
                _sqlMapper.SessionStore = new HybridWebThreadSessionStore(_sqlMapper.Id);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Пример #9
0
        protected static ISqlMapper InitMapper()
        {
            ConfigureHandler handler = new ConfigureHandler(Configure);
            DomSqlMapBuilder builder = new DomSqlMapBuilder();

            return(builder.Configure());
        }
Пример #10
0
        /// <summary>
        /// 公开的静态方法提供对象实例
        /// </summary>
        /// <returns></returns>
        public static ISqlMapper ISqlMapper()
        {
            try
            {
                if (_ISqlMapper == null)
                {
                    lock (SqlMapperLock)
                    {
                        if (_ISqlMapper == null)
                        {
                            // 加载sqlmap.config文件
                            Assembly assembly = Assembly.Load("BioA.SqlMaps");
                            Stream   stream   = assembly.GetManifestResourceStream("BioA.SqlMaps.SqlMap.config");

                            // 初始化访问数据库对象
                            DomSqlMapBuilder builder = new DomSqlMapBuilder();
                            _ISqlMapper = builder.Configure(stream);
                            //CreateTables();
                        }
                    }
                }
            }
            catch (Exception e)
            {
                LogInfo.WriteErrorLog("MyBatis.cs_MyBatis()==" + e.ToString(), Common.Module.DAO);
            }
            return(_ISqlMapper);
        }
Пример #11
0
        //해당 Mapper 생성
        private static void GenerateMapper(string datasourceCode)
        {
            //수정 필요??????????? 확인 20171017
            if (maps[datasourceCode + GetProcessID()] == null)
            {
                DomSqlMapBuilder builder = new DomSqlMapBuilder();
                ResourceManager  manager = Properties.Resources.ResourceManager;

                if (manager.GetString(datasourceCode) == null)
                {
                    throw new Exception(Messages.MAPPER_DEFINE_ERROR + " [" + datasourceCode + "]");
                }


                ISqlMapper mapper = builder.Configure(manager.GetString(datasourceCode));

                if (datasourceCode.Equals("ORACLEConfig"))
                {
                    mapper.DataSource.ConnectionString = mapper.DataSource.ConnectionString.Replace("oralceIP", Logs.useConfig.strIP).Replace("oralcePort", Logs.useConfig.strPort).Replace("oralceService", Logs.useConfig.strSID).Replace("oralceID", Logs.useConfig.strID).Replace("oralcePWD", Logs.useConfig.strPWD);
                }
                else if (datasourceCode.Equals("TIBEROConfig"))
                {
                    mapper.DataSource.ConnectionString = mapper.DataSource.ConnectionString.Replace("tiberoIP", Logs.useConfig.strIP).Replace("tiberoPort", Logs.useConfig.strPort).Replace("tiberoService", Logs.useConfig.strSID).Replace("tiberoID", Logs.useConfig.strID).Replace("tiberoPWD", Logs.useConfig.strPWD);
                }

                maps.Add(datasourceCode + GetProcessID(), mapper);
            }
        }
Пример #12
0
        /// <summary>
        /// 单例模式
        /// </summary>
        static MyBatis()
        {
            if (SqlMap == null)
            {
                lock (syncObj)
                {
                    if (SqlMap == null)
                    {
                        try
                        {
                            //Assembly assembly = Assembly.Load("SqlMaps");
                            //Stream stream = assembly.GetManifestResourceStream("SqlMaps.sqlmap.config");

                            //DomSqlMapBuilder builder = new DomSqlMapBuilder();
                            //SqlMap = builder.Configure(stream);
                            DomSqlMapBuilder builder = new DomSqlMapBuilder();
                            SqlMap = builder.Configure(@"sqlmap.config");
                        }
                        catch (Exception e)
                        {
                            throw e;
                        }
                    }
                }
            }
        }
        /// <summary>
        /// 配置SQL映射
        /// </summary>
        /// <returns>SQL映射</returns>
        public static ISqlMapper GetMapper()
        {
            DomSqlMapBuilder builder = new DomSqlMapBuilder();
            ISqlMapper       Map     = builder.Configure("Config/sqlmap.config");

            return(Map);
        }
Пример #14
0
 /// <summary>
 /// 添加新的SQLMapper到集合中
 /// </summary>
 /// <param name="key">Mapper的Key</param>
 /// <param name="connectionString">数据库的连接字符串</param>
 /// <param name="sqlMapFile">SqlMap.config文件</param>
 /// <returns>添加到集合中的Mapper</returns>
 public ISqlMapper Add(string key, string connectionString, string sqlMapFile)
 {
     try
     {
         DomSqlMapBuilder builder = new DomSqlMapBuilder();
         if (!String.IsNullOrEmpty(connectionString))
         {
             NameValueCollection values = new NameValueCollection();
             values.Add("connectionString", connectionString);
             builder.Properties = values;
         }
         ISqlMapper mapper = null;
         if (String.IsNullOrEmpty(sqlMapFile))
         {
             mapper = builder.Configure();
         }
         else
         {
             mapper = builder.Configure(sqlMapFile);
         }
         mapper.SessionStore = new IBatisNet.DataMapper.SessionStore.HybridWebThreadSessionStore(mapper.Id);
         Add(key, mapper);
         return(mapper);
     }
     catch (System.Exception ex)
     {
         throw ex;
     }
 }
Пример #15
0
        /// <summary>
        /// Init the 'default' SqlMapper defined by the SqlMap.Config file.
        /// </summary>
        public static void InitMapper()
        {
            ConfigureHandler handler = new ConfigureHandler(Configure);
            DomSqlMapBuilder builder = new DomSqlMapBuilder();

            _mapper = builder.ConfigureAndWatch("NurDocMapper.config", handler);
        }
Пример #16
0
        /// <summary>
        /// Private initialisation routine. Only runs once.
        /// </summary>
        private static void Initialize()
        {
            // Use if/lock/if pattern for best performance around the lock
            if (_isInitialized)
            {
                return;
            }

            lock (_initializeLock)
            {
                if (_isInitialized)
                {
                    return;
                }

                // Load the assembly for the map
                Assembly assembly = null;
                try { assembly = Assembly.Load(DatabaseSettings.SqlMap_Assembly); }
                catch { throw new Exception(string.Format("Error loading SQL Map Assembly: {0}", DatabaseSettings.SqlMap_Assembly)); }

                // Load the map from the named resource
                Stream sqlMapFileStream = assembly.GetManifestResourceStream(DatabaseSettings.SqlMap_Resource);
                if (sqlMapFileStream == null)
                {
                    throw new Exception(string.Format("Couldn't load SQL Map Resource {0} from Assembly {1}", DatabaseSettings.SqlMap_Resource, DatabaseSettings.SqlMap_Assembly));
                }

                // Load the SQL map configuration XML
                XmlDocument docSqlMap = new XmlDocument();
                docSqlMap.Load(sqlMapFileStream);

                // Inject connection string if set
                string connectionString = DatabaseSettings.ConnectionString;
                if (!string.IsNullOrWhiteSpace(connectionString))
                {
                    // Select the connection string attribute
                    XmlNodeList dataSourceNodes = docSqlMap.GetElementsByTagName("dataSource");
                    if (dataSourceNodes.Count != 1)
                    {
                        throw new XmlException(string.Format("No dataSource node found in {0}", DatabaseSettings.SqlMap_Resource));
                    }
                    XmlElement dataSource = (XmlElement)dataSourceNodes[0];
                    dataSource.SetAttribute("connectionString", connectionString);
                }

                //Ensure we're not using a prod connection string in a
                if (connectionString.Contains("prod") && ReflectionUtils.InUnitTest)
                {
                    throw new Exception("You can't run tests against a production database! Check app.config");
                }

                // Mapper
                DomSqlMapBuilder builder = new DomSqlMapBuilder();
                _mapper = builder.Configure(docSqlMap);

                // Set flag
                _isInitialized = true;
            }
        }
Пример #17
0
        public static ISqlMapper NewMapper()
        {
            DomSqlMapBuilder builder = new DomSqlMapBuilder();

            XmlDocument doc = GetConfig();

            return(builder.Configure(doc));
        }
Пример #18
0
        private static void InitMapper()
        {
            var builder = new DomSqlMapBuilder();
            var file    = AppDomain.CurrentDomain.BaseDirectory + @"SqlMap.config";

            SqlMap = builder.Configure(file);
            //ConnectInfo.Instance.UpdateDBInfo(SqlMap.DataSource.ConnectionString);
        }
Пример #19
0
        protected static void InitMapper()
        {
            ConfigureHandler handler = new ConfigureHandler(Configure);
            DomSqlMapBuilder builder = new DomSqlMapBuilder();

            _mapper = builder.ConfigureAndWatch("sqlmap.config", handler);
            _mapper.SessionStore = new HybridWebThreadSessionStore(_mapper.Id);
        }
Пример #20
0
        public static void InitMapper()
        {
            string           configPath = GetConfigPath();
            ConfigureHandler hanlder    = new ConfigureHandler(Configure);

            DomSqlMapBuilder builder = new DomSqlMapBuilder();

            mapper = builder.ConfigureAndWatch(configPath, hanlder);
        }
Пример #21
0
        public void InitMapper(string sqlMapperPath)
        {
            ConfigureHandler handler = new ConfigureHandler(Configure);
            DomSqlMapBuilder builder = new DomSqlMapBuilder();

            //设置文件缓存依赖,每当sqlMapperPath指向的配置文件被修改,就调用handler,即Configure方法将实例置为null,再重新获取
            _mapper = builder.ConfigureAndWatch(sqlMapperPath, handler);
            _mapper.SessionStore = new IBatisNet.DataMapper.SessionStore.HybridWebThreadSessionStore(_mapper.Id);
        }
Пример #22
0
        //根据数据库信息返回ISqlMapper fenghp
        public static ISqlMapper NewMapper(DataBaseinfo info)
        {
            DomSqlMapBuilder builder    = new DomSqlMapBuilder();
            XmlDocument      doc        = GetConfig(info);
            ISqlMapper       isqlMapper = builder.Configure(doc);

            isqlMapper.DataSource.ConnectionString = info.Connectionstring;
            return(isqlMapper);
        }
Пример #23
0
        protected static ISqlMapper InitMapper()
        {
            ConfigureHandler handler = new ConfigureHandler(Configure);
            DomSqlMapBuilder builder = new DomSqlMapBuilder();

            XmlDocument doc = GetConfig();

            return(builder.Configure(doc));
        }
Пример #24
0
        private void GetChildNode(ConfigurationScope configScope)
        {
            ResultProperty property = null;
            SubMap         subMap   = null;
            XmlNodeList    list     = configScope.NodeContext.SelectNodes(DomSqlMapBuilder.ApplyMappingNamespacePrefix("constructor/argument"), configScope.XmlNamespaceManager);

            if (list.Count > 0)
            {
                Type[]   types          = new Type[list.Count];
                string[] parametersName = new string[list.Count];
                for (int i = 0; i < list.Count; i++)
                {
                    ArgumentProperty property2 = ArgumentPropertyDeSerializer.Deserialize(list[i], configScope);
                    this._parameters.Add(property2);
                    parametersName[i] = property2.ArgumentName;
                }
                ConstructorInfo constructor = this.GetConstructor(this._class, parametersName);
                for (int j = 0; j < this._parameters.Count; j++)
                {
                    ArgumentProperty property3 = (ArgumentProperty)this._parameters[j];
                    configScope.ErrorContext.MoreInfo = "initialize argument property : " + property3.ArgumentName;
                    property3.Initialize(configScope, constructor);
                    types[j] = property3.MemberType;
                }
                this._objectFactory = configScope.SqlMapper.ObjectFactory.CreateFactory(this._class, types);
            }
            else if (Type.GetTypeCode(this._class) == TypeCode.Object)
            {
                this._objectFactory = configScope.SqlMapper.ObjectFactory.CreateFactory(this._class, Type.EmptyTypes);
            }
            foreach (XmlNode node in configScope.NodeContext.SelectNodes(DomSqlMapBuilder.ApplyMappingNamespacePrefix("result"), configScope.XmlNamespaceManager))
            {
                property = ResultPropertyDeSerializer.Deserialize(node, configScope);
                configScope.ErrorContext.MoreInfo = "initialize result property: " + property.PropertyName;
                property.Initialize(configScope, this._class);
                this._properties.Add(property);
            }
            XmlNode node2 = configScope.NodeContext.SelectSingleNode(DomSqlMapBuilder.ApplyMappingNamespacePrefix("discriminator"), configScope.XmlNamespaceManager);

            if (node2 != null)
            {
                configScope.ErrorContext.MoreInfo = "initialize discriminator";
                this.Discriminator = DiscriminatorDeSerializer.Deserialize(node2, configScope);
                this.Discriminator.SetMapping(configScope, this._class);
            }
            if ((configScope.NodeContext.SelectNodes(DomSqlMapBuilder.ApplyMappingNamespacePrefix("subMap"), configScope.XmlNamespaceManager).Count > 0) && (this.Discriminator == null))
            {
                throw new ConfigurationException("The discriminator is null, but somehow a subMap was reached.  This is a bug.");
            }
            foreach (XmlNode node3 in configScope.NodeContext.SelectNodes(DomSqlMapBuilder.ApplyMappingNamespacePrefix("subMap"), configScope.XmlNamespaceManager))
            {
                configScope.ErrorContext.MoreInfo = "initialize subMap";
                subMap = SubMapDeSerializer.Deserialize(node3, configScope);
                this.Discriminator.Add(subMap);
            }
        }
Пример #25
0
        protected static void InitMapper()
        {
            ConfigureHandler handler = new ConfigureHandler(Configure);
            DomSqlMapBuilder builder = new DomSqlMapBuilder();

            XmlDocument doc = GetConfig();

            _mapper = builder.Configure(doc);
            //_mapper = builder.ConfigureAndWatch(path, handler);
        }
Пример #26
0
        public void TestNoTransaction()
        {
            ISqlMapper    sqlMapper     = new DomSqlMapBuilder().Configure("IBatisNet.config");
            TestObjectDao testObjectDao = new TestObjectDao(sqlMapper);

            TestObject object1 = TestObject.NewRandom();

            testObjectDao.Insert(object1);
            Assert.Throws <SqlException>(() => testObjectDao.Insert(object1));
        }
Пример #27
0
        public ProductService()
        {
            DomSqlMapBuilder getdombuilder = new DomSqlMapBuilder();

            if (getdombuilder != null)
            {
                ProductService._getsqlmapper = getdombuilder.Configure() as SqlMapper;
            }
            _getsqlManager = Mapper.Instance();
        }
Пример #28
0
        private static void BuildingMapper()
        {
            ConfigureHandler handler = new ConfigureHandler(Configure);
            DomSqlMapBuilder builder = new DomSqlMapBuilder();

            _mapper = builder.ConfigureAndWatch(Path, handler);
            CallContextSessionStore ss = new CallContextSessionStore(_mapper.Id);

            _mapper.SessionStore = ss;
        }
Пример #29
0
 /// <summary>
 /// 请不要使用此方法,下个版本将移除
 /// 解决多线程问题请使用ModeBaseDao类
 /// </summary>
 /// <returns></returns>
 public ISqlMapper GetSqlMap2()
 {
     if (sqlMap2 == null)
     {
         ConfigureHandler handler = new ConfigureHandler(Configure2);
         DomSqlMapBuilder builder = new DomSqlMapBuilder();
         sqlMap2 = builder.ConfigureAndWatch(fileName2, handler);
         sqlMap2.SessionStore = new HybridWebThreadSessionStore(sqlMap2.Id);
     }
     return(sqlMap2);
 }
Пример #30
0
 public ISqlMapper GetLocalSqlMap()
 {
     if (sqlMap == null)
     {
         ConfigureHandler handler = new ConfigureHandler(Configure);
         DomSqlMapBuilder builder = new DomSqlMapBuilder();
         sqlMap = builder.ConfigureAndWatch(fileName, handler);
         sqlMap.SessionStore = new HybridWebThreadSessionStore(sqlMap.Id);
     }
     return(sqlMap);
 }