DruidPlugin ds = new DruidPlugin(acsUrl,acsuser,acspawd,acsdriver);
ds.start();
ActiveRecordPlugin arp = new ActiveRecordPlugin("module",ds);
arp.start();
我用上面的代码,配置了ActiveRecordPlugin,但是我需要切换使用的数据库文件,那我怎么删除这个ActiveRecordPlugin 和DruidPlugin 而重新配置?
又或者是,直接更改DruidPlugin的url?
调用ActiveRecordPlugin和DruidPlugin的stop()方法,重新按新数据库配置构建DruidPlugin、ActiveRecordPlugin两个插件。
注意,Config名不能使用之前已经用过的名字,不然会报重名异常。。。这是 @JFinal 作者波总没写好,DbKit方法中只有addConfig(),没有removeConfig()。
######回复 @子寒 : close()掉再使用是没有问题的,你用JDBC Connection close后修改连接参数再open试试就知道,你重用它就不会多余。不想重用就设置它=null就好。######回复 @糊搞 : close之后就不会多余了? close不是remove吧,能dispose掉?######回复 @子寒 : 会有多余的Config,但ActiveRecordPlugin和DruidPlugin实例可以使用原来close()后的实例,这样就不会多余了。。。######那不就会有多余的plugin?######并且切换后,configname我希望是不变的######if (config == null) config = new Config(configName, dataSource, dialect, showSql, devMode, transactionLevel, containerFactory, cache); DbKit.addConfig(config);
只要不重新创建ActiveRecordPlugin实例,就会延用原来的configName。
有办法删除已配置的ActiveRecordPlugin和DruidPlugin吗?或者直接重置对应的数据库url
######试试将注入过去的那个 DruidPlugin 对先 dp.stop() 一次,然后再 dp.setXxxx(...) 重新配置一下,无法重新设置的用一下反射,然后再 dp.start() 一次即可。
jfinal 2.0 提供了一个 DbKit.remove(configName) 方法,可以对 config 对象进行动态管理,这样就可以动态 druid.stop() 和重新创建了,并且 2.0 会在 ActiveRecordPlugin.stop() 时 DbKit.remove(configName) 掉所对应的 config 对象。
######回复 @子寒 : 正开发######哦,2.0发布了吗?版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。