protected virtual IDaoMetaData CreateDaoMetaData(Type daoType)
        {
            S2DaoMetaDataExtension dmd = NewDaoMetaDataExtension();

            dmd.DaoType                  = daoType;
            dmd.DataSource               = _dataSource;
            dmd.CommandFactory           = _commandFactory;
            dmd.DataReaderFactory        = _dataReaderFactory;
            dmd.DataReaderHandlerFactory = CreateInternalDataReaderHandlerFactory();
            dmd.AnnotationReaderFactory  = _readerFactory;
            if (_dbMetaData == null)
            {
                _dbMetaData = new DatabaseMetaDataImpl(_dataSource);
            }
            dmd.DatabaseMetaData = _dbMetaData;
            if (_sqlFileEncoding != null)
            {
                dmd.SqlFileEncoding = _sqlFileEncoding;
            }
            if (_insertPrefixes != null)
            {
                dmd.InsertPrefixes = _insertPrefixes;
            }
            if (_updatePrefixes != null)
            {
                dmd.UpdatePrefixes = _updatePrefixes;
            }
            if (_deletePrefixes != null)
            {
                dmd.DeletePrefixes = _deletePrefixes;
            }
            dmd.BeanMetaDataCacheMap = _beanMetaDataCacheMap;
            dmd.Initialize();
            return(dmd);
        }
 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;
                        }
                    }
                }
            }
        }
        protected IBeanMetaData GetOutsideSqlBeanMetaData(MethodInfo mi, IDatabaseMetaData databaseMetaData, Seasar.Dao.IDbms dbInfo)
        {
            Type beanClass4SelectMethodByManual = GetOutsideSqlDefaultBeanClass(mi);

            if (beanClass4SelectMethodByManual.Equals(_beanType))
            {
                return(_beanMetaData);
            }
            BeanMetaDataCacheExtension bmdExt = new BeanMetaDataCacheExtension(beanClass4SelectMethodByManual, _annotationReaderFactory, false);

            bmdExt.Initialize(databaseMetaData, dbInfo);// Don't use cache!
            return(bmdExt);
        }
 /// <exception cref="Java.Sql.SQLException"/>
 public static bool ExistsTable(string tablename)
 {
     if (existingTablenames == null)
     {
         existingTablenames = new HashSet <string>();
         IDatabaseMetaData md = connection.GetMetaData();
         IResultSet        rs = md.GetTables(null, null, "%", null);
         while (rs.Next())
         {
             existingTablenames.Add(rs.GetString(3).ToLower());
         }
     }
     return(existingTablenames.Contains(tablename.ToLower()));
 }
 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);
     }
 }
Exemplo n.º 8
0
 //  /**
 //   * not yet supported if backed by DB
 //   * @return
 //   */
 //  public Set<Map.Entry<String, Map<Integer, Set<Integer>>>> entrySet() {
 //    if(!useDBForTokenPatterns)
 //      return patternsForEachToken.entrySet();
 //    else
 //      //not yet supported if backed by DB
 //      throw new UnsupportedOperationException();
 //  }
 public virtual bool DBTableExists()
 {
     try
     {
         IConnection conn = null;
         conn = SQLConnection.GetConnection();
         IDatabaseMetaData dbm    = conn.GetMetaData();
         IResultSet        tables = dbm.GetTables(null, null, tableName, null);
         if (tables.Next())
         {
             System.Console.Out.WriteLine("Found table " + tableName);
             conn.Close();
             return(true);
         }
         conn.Close();
         return(false);
     }
     catch (SQLException e)
     {
         throw new Exception(e);
     }
 }
 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);
        }