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); } }
// /** // * 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); }