跨系统数据库取数实现方案
2014-08-27 13:42
281 查看
情景:假如要做一个系统A的报表,但其中部分字段的取值在系统B,那系统A里就不能一个SQL查询系统A和系统B的数据了,这种情况可以系统B提供一个接口,去查询取得系统B的数据。除此之外,还可以用以下方案实现取数:
1.利用url,用户名,密码直接连接系统B的数据库,这些参数可以在系统A的数据库中建一个表来保存,方便后续的修改维护。
2.java连接系统B数据库。
3.查询系统B数据并返回结果。
1.利用url,用户名,密码直接连接系统B的数据库,这些参数可以在系统A的数据库中建一个表来保存,方便后续的修改维护。
2.java连接系统B数据库。
/** * 取得影像系统的数据库连接 * @return */ public static Connection getImageConnection(Context ctx){ String driver = null; String url = null; String username = null; String password = null; try { String sql = "select id,name,driver,imgurl,imgname,imgpassword from imageconparam where id='001'"; IRowSet rs = DbUtil.executeQuery(ctx, sql); if(rs.next()) { driver = rs.getString("driver"); url = rs.getString("imgurl");; username = rs.getString("imgname");; password = rs.getString("imgpassword");; } } catch (BOSException e1) { e1.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } Connection imageConnection = null; try { Class.forName(driver); imageConnection= DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e2) { e2.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return imageConnection; }
3.查询系统B数据并返回结果。
/** * 从影像系统取得后补发票影像号对应的接收时间 * @param imagenoList * @return */ private Map<String, String> getArchiveDate(List<String> imagenoList) { Map<String,String> archivedateMap = new HashMap<String, String>(); try { String inparam = ToolUtils.aryToStr(imagenoList); Context ctx = WafContext.getInstance().getContext(); Connection imageConnection = BDUtil.getImageConnection(ctx); Statement statementimg = imageConnection.createStatement(); String sql = "select 1,2 from t_hist_task where rownum <=10"; ResultSet rs = statementimg.executeQuery(sql); while(rs.next()) { String imgeno = rs.getString(1); String date = rs.getString(2); if(!StringUtils.isEmpty(imgeno) && !StringUtils.isEmpty(date)) { archivedateMap.put(imgeno, date); } } } catch (SQLException e1) { e1.printStackTrace(); } return archivedateMap; }
相关文章推荐
- 基于数据库的树型结构方案(存储过程实现)
- 基于关系数据库系统链式存储的树型结构数据,求某结点下的子树所有结点算法(t-sql语言实现)
- 用Java实现数据库应用系统
- 本文是笔者根据数据库编程经验,利用C++语言的模板、继承、授权、多态等面向对象特性,借鉴命令模式,实现了对象在关系数据中的存储,降低应用系统与数据库之间的耦合,提高开发效率。
- 从SQL Server向Oracle迁移的技术实现方案(十)连接远程的数据库(包括不同服务器)
- 通过触发器实现数据库的即时同步方案
- Linux 服务器集群系统实现方案详解
- 大型现场数据采集无线应用系统实现方案的研究
- Linux 服务器集群系统实现方案详解
- Linux 服务器集群系统实现方案详解
- 权限系统设计 -1 初步和实现方案
- 单点登录系统的设计与实现方案
- 安全登录系统的设计与实现方案
- 基于MySQL的数据库集群系统的实现(来源:IBM DW)
- 集群系统实现方案详解
- 三层次数据库应用中的口令权限管理方案与实现
- 浅谈系统架构级的数据库性能提升方案
- 记帐系统从需求到实现 ----数据库的设计
- Linux 服务器集群系统实现方案详解