/** 配置插件 */ public void configPlugin(Plugins me) { log.info("configPlugin 配置Druid数据库连接池连接属性"); DruidPlugin druidPlugin = new DruidPlugin( (String) PropertiesPlugin.getParamMapValue(DictKeys.db_connection_jdbcUrl), (String) PropertiesPlugin.getParamMapValue(DictKeys.db_connection_userName), (String) PropertiesPlugin.getParamMapValue(DictKeys.db_connection_passWord), (String) PropertiesPlugin.getParamMapValue(DictKeys.db_connection_driverClass)); log.info("configPlugin 配置Druid数据库连接池大小"); druidPlugin.set( (Integer) PropertiesPlugin.getParamMapValue(DictKeys.db_initialSize), (Integer) PropertiesPlugin.getParamMapValue(DictKeys.db_minIdle), (Integer) PropertiesPlugin.getParamMapValue(DictKeys.db_maxActive)); log.info("configPlugin 配置ActiveRecord插件"); ActiveRecordPlugin arpMain = new ActiveRecordPlugin(DictKeys.db_dataSource_main, druidPlugin); // arp.setTransactionLevel(4);//事务隔离级别 arpMain.setDevMode(getPropertyToBoolean(DictKeys.config_devMode, false)); // 设置开发模式 arpMain.setShowSql(getPropertyToBoolean(DictKeys.config_devMode, false)); // 是否显示SQL log.info("configPlugin 数据库类型判断"); String db_type = (String) PropertiesPlugin.getParamMapValue(DictKeys.db_type_key); if (db_type.equals(DictKeys.db_type_postgresql)) { log.info("configPlugin 使用数据库类型是 postgresql"); arpMain.setDialect(new PostgreSqlDialect()); arpMain.setContainerFactory( new CaseInsensitiveContainerFactory(true)); // 配置属性名(字段名)大小写不敏感容器工厂 } else if (db_type.equals(DictKeys.db_type_mysql)) { log.info("configPlugin 使用数据库类型是 mysql"); arpMain.setDialect(new MysqlDialect()); arpMain.setContainerFactory( new CaseInsensitiveContainerFactory(true)); // 配置属性名(字段名)大小写不敏感容器工厂 } else if (db_type.equals(DictKeys.db_type_oracle)) { log.info("configPlugin 使用数据库类型是 oracle"); druidPlugin.setValidationQuery( "select 1 FROM DUAL"); // 指定连接验证语句(用于保存数据库连接池), 这里不加会报错误:invalid oracle validationQuery. // select 1, may should be : select 1 FROM DUAL arpMain.setDialect(new OracleDialect()); arpMain.setContainerFactory( new CaseInsensitiveContainerFactory(true)); // 配置属性名(字段名)大小写不敏感容器工厂 } log.info("configPlugin 添加druidPlugin插件"); me.add(druidPlugin); // 多数据源继续添加 log.info("configPlugin 表扫描注册"); Map<String, ActiveRecordPlugin> arpMap = new HashMap<String, ActiveRecordPlugin>(); arpMap.put(DictKeys.db_dataSource_main, arpMain); // 多数据源继续添加 new TablePlugin(arpMap).start(); me.add(arpMain); // 多数据源继续添加 log.info("I18NPlugin 国际化键值对加载"); me.add(new I18NPlugin()); log.info("EhCachePlugin EhCache缓存"); me.add(new EhCachePlugin()); log.info("SqlXmlPlugin 解析并缓存 xml sql"); me.add(new SqlXmlPlugin()); }