我想在WEB的前端页面上输入数据库地址等相关数据库连接信息,然后连接上数据库这个可以实现吗?怎么实现?
10 回复
@wendal 我想拿我本地数据库里的数据和其他数据库里的数据做比较,这样是不是要老是切换数据源,运行速度会不会很慢?
方案一,直接替换:
Ioc ioc = Mvcs.getIoc();
Dao dao = ioc.get(DataSource.class);
DataSource ds = ioc.get(DataSource.class);
ds.close();
ds = new XXXXXX
dao.setDataSource(ds);
方案2, 自定义一个ProxyDataSource, 代理原本的DataSource对象,仅需要实现getConnection方法,其他方法随便实现.
Proxy proxyDs = ioc.get(ProxyDataSource.class, "dataSource");
DataSource ds = proxyDs.getDataSource();
ds.close();
ds = new XXXXXXX();
proxDs.setDataSource(ps);
@wendal 恩,只是在做一些数据校验的时候才会临时的用到其他数据库里面的数据。直接生成对应的DataSource和NutDao实例,用完立马close/depose掉这样是不是等于同时存在多个数据源?不用老是做数据源的切换
@At
@Ok("json")
public Object getConnect() throws SQLException, ClassNotFoundException{
SimpleDataSource ds= new SimpleDataSource();
ds.setDriverClassName("com.ibm.db2.jcc.DB2Driver");
ds.setJdbcUrl("jdbc:db2://192.168.189.133:50000/sam");
ds.setUsername("sam");
ds.setPassword("sam");
ds.getConnection();
Dao dao = new NutDao(ds);
return dao.fetch(SysUser.class,"admin");
}
简单测试下是可行的 谢谢大家了
@wendal 谢谢兽总,SimpleDataSource足够处理我这边的问题了,做完再研究下DaoUp,感觉要学的东西很多啊。
添加回复
请先登陆