Beispiel #1
0
 public DbLog()
 {
     if (Settings.ConnectionString.Contains(OleDbSQLServer1) || Settings.ConnectionString.Contains(OleDbSQLServer2))
     {
         _databaseLog = new SQLServer();
     }
     else if (Settings.ConnectionString.Contains(OleDbOracle1) || Settings.ConnectionString.Contains(OleDbOracle2))
     {
         _databaseLog = new Oracle();
     }
     else if (Settings.ConnectionString.Contains(OleDbMySQL))
     {
         _databaseLog = new MySQL();
     }
     else if (Settings.ConnectionString.Contains(OleDbPostgre))
     {
         _databaseLog = new Postgre();
     }
     else if (Settings.ConnectionString.Contains(MongoDB))
     {
         _databaseLog = new MongoDB();
     }
     else
     {
         ConsoleHelper.Write("Connection string format invalid! Check out github project instructions: https://github.com/fernando-goncalves92/EasierLog");
     }
 }
 public override void Initialize(IDatabaseMetaData dbMetaData, IDbms dbms)
 {
     if (_metaMap != null)
     {
         BeanMetaDataCacheHandler handler = new BeanMetaDataCacheHandler(_metaMap);
         Type myBeanClass = BeanType;
         if (handler.IsDBFluteEntity(myBeanClass))
         {
             IBeanMetaData cachedMeta = handler.GetMetaFromCache(myBeanClass);
             if (cachedMeta == null)
             {
                 handler.AddMetaFromCache(myBeanClass, this);
             }
         }
     }
     base.Initialize(dbMetaData, dbms);
 }
 protected void SetupPrimaryKeyExtension(Type beanType, IDatabaseMetaData dbMetaData, IDbms dbms)
 {
     // = = = = = = = = = = = = = = = = = = = = = = =
     // Set up _primaryKeys and _identifierGenerator!
     // = = = = = = = = = = = = = = = = = = = = = = =
     if (_primaryKeys == null || _primaryKeys.Length == 0)
     {
         _primaryKeys = new String[_primaryKeyList.size()];
         int index = 0;
         foreach (IPropertyType pt in _primaryKeyList)
         {
             _primaryKeys[index] = pt.ColumnName;
             ++index;
         }
     }
     if (_identifierGenerator == null)
     {
         _identifierGenerator = Seasar.Dao.Id.IdentifierGeneratorFactory.CreateIdentifierGenerator(null, dbms);
     }
 }
 protected override void SetupDatabaseMetaData(Type beanType, IDatabaseMetaData dbMetaData, IDbms dbms)
 {
     if (IsEntity(beanType))
     {
         SetupPrimaryKeyExtension(beanType, dbMetaData, dbms);
         return;
     }
     base.SetupDatabaseMetaData(beanType, dbMetaData, dbms);
 }
        protected override void SetupProperty(Type beanType, IDatabaseMetaData dbMetaData, IDbms dbms)
        {
            if (!IsEntity(beanType))
            {
                base.SetupProperty(beanType, dbMetaData, dbms);
                return;
            }
            Entity entity = (Entity)ClassUtil.NewInstance(beanType);
            DBMeta dbmeta = entity.DBMeta;

            foreach (PropertyInfo pi in beanType.GetProperties())
            {
                IPropertyType  pt        = null;
                RelnoAttribute relnoAttr = _beanAnnotationReader.GetRelnoAttribute(pi);
                if (relnoAttr != null)
                {
                    if (!_relation)
                    {
                        IRelationPropertyType rpt = CreateRelationPropertyType(beanType, pi, relnoAttr, dbMetaData, dbms);
                        AddRelationPropertyType(rpt);
                    }
                }
                else
                {
                    if (pi.CanWrite)
                    {
                        pt = CreatePropertyTypeExtension(pi, dbmeta);
                        if (pt != null)
                        {
                            AddPropertyType(pt);
                            if (pt.IsPrimaryKey)
                            {
                                _primaryKeyList.add(pt);
                            }
                        }
                    }
                }
                if (IdentifierGenerator == null)
                {
                    IDAttribute idAttr = _beanAnnotationReader.GetIdAttribute(pi, dbms);
                    if (idAttr != null)
                    {
                        _identifierGenerator = Seasar.Dao.Id.IdentifierGeneratorFactory.CreateIdentifierGenerator(pi.Name, dbms, idAttr);
                        if (pt != null)
                        {
                            _primaryKeys    = new string[] { pt.ColumnName };
                            pt.IsPrimaryKey = true;
                        }
                    }
                }
            }
        }
 public IBeanMetaData FindOrCreateCachedMetaIfNeeds(Type beanClass, IAnnotationReaderFactory factory, IDatabaseMetaData dbMetaData, IDbms dbms)
 {
     if (IsDBFluteEntity(beanClass))
     {
         IBeanMetaData cachedMeta = GetMetaFromCache(beanClass);
         if (cachedMeta != null)
         {
             return(cachedMeta);
         }
         else
         {
             BeanMetaDataCacheExtension bmdExt = new BeanMetaDataCacheExtension(beanClass, factory, false);
             bmdExt.MetaMap = _metaMap;
             bmdExt.Initialize(dbMetaData, dbms);
             return(bmdExt);
         }
     }
     return(null);
 }
        protected override IBeanMetaData CreateRelationBeanMetaData(PropertyInfo propertyInfo, IDatabaseMetaData dbMetaData, IDbms dbms)
        {
            if (_metaMap != null)
            {
                BeanMetaDataCacheHandler handler   = new BeanMetaDataCacheHandler(_metaMap);
                IBeanMetaData            cachedBmd = handler.FindOrCreateCachedMetaIfNeeds(propertyInfo.PropertyType, AnnotationReaderFactory, dbMetaData, dbms);
                if (cachedBmd != null)
                {
                    return(cachedBmd);
                }
            }
            bool isRelation = false;

            if (this.NestNo > 0)
            {
                isRelation = true;
            }
            BeanMetaDataCacheExtension bmdExt = new BeanMetaDataCacheExtension(propertyInfo.PropertyType, this.AnnotationReaderFactory, isRelation);

            bmdExt.NestNo = this.NestNo + 1;
            bmdExt.Initialize(dbMetaData, dbms);
            return(bmdExt);
        }