Bladeren bron

新增TableMetaParser

周浩 9 jaren geleden
bovenliggende
commit
480359c7ae

+ 18 - 0
hsweb-web-service-impl-common/src/main/java/org/hsweb/web/service/impl/DataBaseAutoConfiguration.java

@@ -4,6 +4,9 @@ import org.hsweb.ezorm.executor.SqlExecutor;
 import org.hsweb.ezorm.meta.DatabaseMetaData;
 import org.hsweb.ezorm.meta.expand.ObjectWrapperFactory;
 import org.hsweb.ezorm.meta.expand.ValidatorFactory;
+import org.hsweb.ezorm.meta.parser.MysqlTableMetaParser;
+import org.hsweb.ezorm.meta.parser.OracleTableMetaParser;
+import org.hsweb.ezorm.meta.parser.TableMetaParser;
 import org.hsweb.ezorm.render.dialect.H2DatabaseMeta;
 import org.hsweb.ezorm.render.dialect.MysqlDatabaseMeta;
 import org.hsweb.ezorm.render.dialect.OracleDatabaseMeta;
@@ -11,6 +14,8 @@ import org.hsweb.ezorm.run.Database;
 import org.hsweb.ezorm.run.simple.SimpleDatabase;
 import org.hsweb.web.core.authorize.ExpressionScopeBean;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Bean;
@@ -44,6 +49,19 @@ public class DataBaseAutoConfiguration {
     @Autowired(required = false)
     private Map<String, ExpressionScopeBean> expressionScopeBeanMap;
 
+
+    @Bean
+    @ConditionalOnMissingBean(TableMetaParser.class)
+    public TableMetaParser tableMetaParser() {
+        String driverClassName = properties.getDriverClassName();
+        if (driverClassName.contains("mysql")) {
+            return new MysqlTableMetaParser(sqlExecutor);
+        } else if (driverClassName.contains("oracle")) {
+            return new OracleTableMetaParser(sqlExecutor);
+        }
+        return null;
+    }
+
     @Bean
     public Database database() {
         DatabaseMetaData dataBaseMetaData = null;