在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java专业知识,广州疯狂java培训为你讲解;

  摘 要 本文讨论的是在多种异构数据库下,如何进行多数据库的访问,并分析了使用Java技术下的各种方法进行多种异构数据库下的数据交换。

  关键词 异构数据库;EJB;Servlet

  引言

  现在的各种数据库应用,由于技术、历史等因素,往往在一个大的部门中并存有多个应用系统。这些应用系统可能分散于不同的网络节点、基于不同的操作平台、使用不同的数据库管理系统,且各子系统封闭运行,自成一体,这样给不同部门的信息资源共享带来困难。如何在不改变原来系统的内部信息的前提下,完成不同数据库系统间的数据访问和交换是值得研究的问题。

  多数据库系统的Java解决方案

  多数据库系统的构成有多种方式,在这些方式中,我们考察这些多数据库的不同点,其主要表现在以下几个方面的异构:

  (1)数据库逻辑数据模型的异构:有层次、网状、关系、对象-关系和对象五种数据库。

  (2)数据库物理数据模型的异构:物理数据模型反映数据库存储结构,例如物理块、指针、索引等,即使逻辑数据模型相同,如关系数据库的Oracle、Sybase、DB2等,其物理数据模型也存在差异。

  (3)操作系统的异构:Unix、Windows系列、MacOS、OS/2、DOS等。

  (4)计算机平台的异构:从巨、大、中、小型机到工作站,微机以及手持机。

  (5)网络的异构:LAN、WAN、以太总线结构与令牌环结构等。

  在这些异构中,有些是数据库历史所造成的,如层次、网状类型的数据库;有些是不同的数据库开发商开发的不同的数据库管理系统造成的;有些是计算机操作系统的不同;而有些是网络结构和计算机平台的原因。

  对于这些不同,从目前来看,我们认为当前应该着重解决的在关系模式下的不同的操作系统和不同数据库管理系统。

  众所周知,Java技术是全新的编程技术,它具有平台无关性、面向对象、安全、高性能、分布式,多线程等特点,使Java成为当前最为类型的编程语言和平台。对于多数据库系统联合访问和数据交换,使用Java技术可以解决不同的操作系统和不同的数据库管理系统之间的数据处理。

  1)使用Java Bean技术实现多数据库的访问

  Java Bean是一个Java模型组件,它为使用Java类提供了一种标准的格式,在用户程序和可视化管理工具中可以自动获得这种具有标准格式的类的信息,并能够创建和管理这些类。

  基于Web的多数据库访问是电子商务和电子政务迅速发展而出现的一种多数据库联合应用的形式。在数据库异构,操作系统异构的条件下,对于数据量很大的这种多数据库应用问题,只有Java 技术才有能力解决。

  对于在Web下的多数据库访问,Java的新技术是Servlet。Java Servlet是在服务器端运行的Java程序。现在随着Servlet API2.3版的引入,服务器的Servlet将把Java Web软件开发带向更高的层次。Servlet提供了快捷、强大、灵活的开发环境。开发出来的Servlet可以在服务器的进程空间里运行,并能同时处理多个请求。当然,最值得称道的是Servlet的平台无关性。

  对于基于Web的多数据库访问,Java Bean技术可以提供一个比较强大、灵活的解决方案。首先构造多个Java Bean,在这些模型组件里,我们要处理数据库的连接、定义,查找、插入、删除操作等方法,并要实现多线程,然后构造编写调用Java Bean的Servlet,这样可以实现对多数据库的访问。Java Bean的结构如下:

  public class DatabaseConnectBean

  {

  定义数据库连接的成员;

  定义连接的方法{ }

  ……

  }

  在Servlet中调用Java Bean的过程为:

  public class UsedatabaseBean extends HttpServlet

  {

  public void doGet(httpServletRequest req,HttpServletResponse resp) throws ServletException

  ,IOException

  {

  ……

  }

  public void doPost(httpServletRequest req,HttpServletResponse resp) throws ServletException,

  IOException

  {

  ……

  //创建Java Bean的对象

  DatabaseConnectBean conBean=new DatabaseConnectBean(……);

  //使用conBean进行数据库的操作

  ……

  }

  }

  从上述的过程和语句我们可以发现,使用Servlet技术可以访问各种不同类型的数据库,但是使用Servlet技术下的Java Bean技术要保证数据库数据的一致性,应在Java Bean中我们可以使用Java的线程技术中的同步等方法来实现对数据库的连接、操作,但这样将加大程序员的编程实现。所以使用Servlet技术下的Java Bean能同时对多个数据库实体的访问,但实现起来不方便。

  2)使用EJB技术实现多数据库的访问

  EJB是Sun定义的一组标准的Java扩展的开发接口,称为EntERPrise Java Bean API。这些应用程序编程接口(API)为各种各样的中间件实现了不依赖供应商的编程接口,Enterprise Java Bean技术把Java组件的概念从客户机域扩展到了服务器域,它使Java技术发展成为一种强健的、可伸缩的环境,能够支持以任务为关键的企业信息系统。

  Enterprise Bean运行在EJB容器中。EJB容器在运行时管理Enterprise Bean的各个方面,包括远程访问Bean、安全性、持续、事物、并行性和资源的访问与合用等。

  EJB容器不允许客户机应用程序直接访问Enterprise Bean。当客户机应用程序调用Enterprise Bean上的远程方法时,容器首先拦截调用,以确保持续、事物和安全性都正确应用于客户机对EJB执行的每一个操作。

  EJB组件分为3种主要类型:会话Bean(Session Bean)、实体Bean(Entity Bean)和消息驱动Bean(Message-Driven Bean)。会话Bean实现某些在服务器上运行的业务逻辑。会话Bean对象不在多台客户机之间共享。其特点是(1)它代表单个客户机执行。(2)会话Bean包含事物处理。(3)可以使用会话Bean更新共享数据库中的数据。(4)会话Bean的生存期就是客户机的生存期。EJB依赖EJB容器来获取它的需求。EJB通过容器来访问JDBC连接,调用其他EJB和获得它自身的引用或访问特性等。EJB通过回调方法、EJBContext和Java命名和目录接口(JNDI)与容器交互。(5)会话Bean的数据会在EJB服务器运行失败时被删除。实体Bean代表一个存储在持久性存储器中的实体的对象视图。消息驱动Bean,使得EJB容器能够异步地接收消息。

  对于多数据库访问,EJB技术可以提供一个比较强大、灵活的解决方案。首先构造多个会话Bean,在这些模型组件里,我们要处理数据库的连接、定义,查找、插入、删除操作等方法,然后创建和部署EJB,这样可以实现对多数据库的访问。会话Bean的结构如下:

  public class DatabaseConnectSessionBean implements javax.ejb.SessionBean

  {

  ……

  public int checkUserLogin(String userid,String password)

  throw NameingException,SQLException

  {

  ……

  //得到初始上下文

  InitialContext ic=new InitialContext();

  //获得数据源

  DataSource ds=(DataSource) ic.lookup(数据库JDNI名字);

  //建立数据库连接

  Connection conn=null;

  try{

  conn ds.getConnection(数据库用户名,数据库用户密码);

  //进行数据库数据的操作

  }

  }

  }

  从上述的过程和语句我们可以发现,使用EJB技术可以访问各种不同类型的数据库,而且支持数据库的“事务”的机制,这样使对数据的处理能够保证数据的一致性。所以使用EJB技术能实现对多个数据库的访问,而且安全性、持续、事物、并行性和资源的管理由容器来管理,这样使编程具有简单性。

  结束语

  EJB技术是解决异构数据库环境下的多数据库信息处理一种有效的方法。它不但可以解决数据库异构的问题,更是解决操作系统异构的最有效的方法。这样可以达到不同信息资源的共享及信息的综合统计查询,这也是企事业单位迫切要解决的实际问题。我们认为EJB技术能更好的解决异构数据库环境下的电子商务和电子政务方面的信息交换问题。

  疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。技术知识沉淀深厚的老师,让你感受Java的魅力,激发你对于编程的热爱,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,成为真正的技术高手;通过大量全真企业项目疯狂训练,迅速积累项目经验。让你成为技能型的现代化高端人才,迅速获得高薪就业!时间不等人,赶紧联系我们吧!疯狂java培训中心地址:广州天河区车陂沣宏大厦3011。

转载于:https://www.cnblogs.com/gojava/p/3234453.html

Java技术在多数据库系统中的应用研究相关推荐

  1. Java在渔业领城的应用_RFID与J2EE技术在渔船管理系统中的应用研究

    计算机与现代化 2011年第2期 JISUANJI YU XIANDAIHUA 总第186期 文章编号:1006- 2475(2011)02-0164-03收稿日期:2010-10-08基金项目:辽宁 ...

  2. 图像传感器binning_CCD的Binning技术在光信号测量中的应用研究

    CCD 的 Binning 技术在光信号测量中的应用研究* 韦晓茹,蔡志坚,居戬之 [摘 要] 摘要:为了降低 CCD 噪声,提高信噪比,根据噪声的特性,提出用 CCD 的 Binning 技术用于噪 ...

  3. 读《基于深度学习的以图搜图技术在照片档案管理中的应用研究_赵学敏》

    论文名称:<基于深度学习的以图搜图技术在照片档案管理中的应用研究_赵学敏> 发表时间:2020年4月 发表期刊:档案学研究(北大核心.CSSCI) 发表单位:云南大学档案馆 愚见 是一个叙 ...

  4. 大数据技术在乡村画像中的应用研究

    大数据技术在乡村画像中的应用研究 李望月1,2, 刘瑾1,2, 陈娜1,2 1 北京国研网信息股份有限公司,北京 100010 2 国务院发展研究中心信息网,北京 100010 摘要:在国家大数据战略 ...

  5. 应用计算机网络的方面,计算机网络技术在电子信息工程中的应用研究(1)

    杨浩章 叶雨泓 杨鹏进 摘要:在科技飞速发展的21世纪,人类文明已经达到了前所未有的阶段.互联网随着新时代也逐渐进入日常生活中.电子信息技术广泛应用于社会生活中,计算机网络技术与电子信息技术的兴起会对 ...

  6. 考古绘图中计算机的铺助应用,CAD和3D打印技术在文物考古中的应用研究

    [摘要]如今随着计算机技术的快速发展,计算机辅助设计技术(CA D)和3D打印技术已经取得了前所未有的技术革新和成就,而且随着经济的快速发展被广泛应用于建筑业.制造业.医疗行业等众多领域当中,并且正在 ...

  7. 计算机视觉技术在图像特征提取中的应用研究,基于图像特征提取的图像融合研究...

    基于图像特征提取的图像融合研究 [摘要]:视觉信息是人类从自然界中获取信息的最主要手段,图像信息是一种主观性很强的重要信息表达形式,也是最难由计算机认知.处理与实现的信息之一.而图像特征提取作为计算机 ...

  8. 怎么让java技术变强_java中的方法

    方法是什么? 方法是可以完成某个特定的功能的并且可以被重复利用的代码片段,方法的出现,让代码有了很强大复用性 方法定义: [修饰符列表] 返回值类型 方法名(形式参数列表){ 方法体; } 形式参数列 ...

  9. 数据挖掘技术在知识型CRM中的应用研究

    一.引 言            客户作为一种企业核心资源,拥有和保持更多的客户决定着企业今后发展的命运,因此有效地开发和利用客户资源,发展和巩固企业同客户之间的和谐关系,在最大程度上满足客户需求的同 ...

最新文章

  1. 震惊!这样终止线程,竟然会导致服务宕机?
  2. SQL语句将某字段查询出以逗号隔开
  3. c语言十万以内超级素数,用C语言求素数的优化
  4. 20155307 实验四 Android程序设计
  5. ASP.NET页面揭秘之页面生命周期【转】
  6. 怎么时装linux可用空间变大,[合集]OpenSUSE安装octave时装1G多texliv - 精华区 - 优秀的Free OS(Linux)版 - 北大未名BBS...
  7. Redis学习---(10)Redis 集合(Set)
  8. linux拷贝文件时如果想保留文件原有的时间属性,可以使用选项,Linux考试题.doc
  9. 如何修改订单金额实现 0.01 元买 iPhone X?
  10. 特斯拉车祸最新调查结果公布,“自动驾驶”Autopilot又双叒成主角
  11. f分布表完整图a=0.01_【知识】二元概率分布
  12. IMAGE_IMPORT_DESCRIPTOR
  13. 2021年1月6日运行Python脚本的一些说明与教程
  14. 什么是文本分析,文本分析主要运用到了哪些关键技术?
  15. 对Java语言入门初学者的一些建议
  16. Matlab中统计灰度值出现的次数
  17. BZOJ4698 Sdoi2008 Sandy的卡片
  18. MNIST在CPU、FPGA、ARM上的运行对比
  19. 【Keras+计算机视觉+Tensorflow】OCR文字识别实战(附源码和数据集 超详细必看)
  20. opencv C艹:读取视频文件,保存图像,视频文件,读取保存XML YAML文件

热门文章

  1. 页面导航的基础与深入
  2. 使用FragmentTabHost和ViewPager实现仿微信主界面侧滑
  3. 在Android开发中,有哪些好的内存优化方式?如何避免 Out Of Memory(OOM) ?
  4. golang常用命令
  5. 贪心算法--会场安排问题
  6. mysql一: 登陆
  7. 前端一HTML:十八:元素的显示方式
  8. nodejs基础学习-文件读取
  9. python: 多线程实现的两种方式及让多条命令并发执行
  10. 伪基站识别技巧(一)