1. JDBC的介绍。
JDBC是Java的开发者——Sun公司制定的Java数据库连接(Java Data Base Connectivity)技术的简称,是为各种常用数据库提供无缝联接的技术。在Web和Internet应用程序中的作用和ODBC在Windows系列平台应用程序中的作用类似。同时JDBC和ODBC也可以称之为数据连接中间件,现在JDBC被融合在J2EE的框架中,简化了J2EE框架下应用开发过程中对数据库的调用和移植。JDBC对于现在主流的数据库都可以支持,例如:MySQL、PostgreSQL(两个开源产品)和DB2、Oracle、SQL Server、Sybase(商业化产品)等。
使用JDBC来完成对数据库的访问包括以下四个主要组件:Java或J2EE的应用程序、JDBC驱动管理器、JDBC驱动程序(以jar为后缀的Java类库)和数据源。SUN公司在设计JDBC时只定义了统一标准的SQL数据存取接口。程序员开发应用时,只需要按照标准的接口访问数据,而不需要关心后台的数据库由谁提供,从而屏蔽了数据库的差异性,减少了应用与数据库的藕合,增强了应用本身的可扩展性和可移植性。提供这种可移植性的正是JDBC的驱动程序,这个部分一般由DBMS厂商提供,应用软件只需要将提供的JAR包加载到系统中就可以实现对该数据库访问的支持。
Apusic V4.0.3不仅提供了JDBC的支持,还提供了对最新规范JDBC 3.0的支持,从而为JDBC开发中数据库连接提供了连接池管理。只需要在JNDI中配置JDBC连接,就可以自动享受连接池管理带来的好处,避免在应用中通过JDBC直接访问时因为创建和关闭连接带来的资源消耗。同时,还为数据库连接提供了自动检测与失效恢复技术,当程序代码中使用连接后没有返回给连接池,系统会检测到这样的失误并自动完成连接回收工作,从而避免了软件开发中的失误,增强了应用的健壮性。
2. JDBC的使用。
JDBC的使用主要有三种:直接通过JDBC与数据库连接;客户端远程通过iiop协议由Apusic应用服务器的JNDI->JDBC与数据库连接;Apusic应用服务器端直接通过JNDI->JDBC与数据库连接。
2.1. 直接通过JDBC与数据库连接。
这种连接方式无论是在客户端还是服务器端撰写的方式都一样,我这里兴个连接Oracle数据库的例子:
Class.forName("oracle.jdbc.driver.OracleDriver");//Oracle的加载JDBC驱动程序的方法
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL",ID,Pwd);
// 与Oracle数据库建立连接的方法。使用的是Oracle在JDBC中的连接串。
// 前面两行代码仍然与数据库有绑定关系,不同数据库的加载类不同,数据库连接串也会不同。
// 如果大家需要了解其他数据库的情况,可以在网上搜索“JDBC使用过程”或者“常用数据库JDBC连接写法”可得。
Connection.createStatement();
// 创建一个Statement对象。Statement对象执行一个查询并从DBMS返回一个包含响应结果的ResultSet对象。
// 除了Statement对象外,还有其他对象这里不再介绍,大家可以搜索“使用JDBC访问数据库”或者“JDBC优化”可得。
con.close(); // 关闭数据库连接!这个必须要做,否则数据库连接资源会在一次次打开中耗尽。
2.2. 客户端通过iiop协议由JNDI->JDBC与数据库连接。
这种方式程序就会享受到使用数据库连接池的好处,程序会减少创建和关闭数据库连接时消耗的时间。但是,我只觉得应该是客户端程序中才这样使用,因为服务器端会有更加简单的使用方式,而且代码中还存在与应用服务器绑定的问题,如何绑定的我将在Apusic中使用的例子说明:
Hashtable env=new Hashtable();
Context initCtx=null;
DataSource datasource=null;
try{
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.apusic.naming.jndi.CNContextFactory");
// JNDI的上下文工厂类,不同的应用服务器这里不同。
// WEBLOGIC是weblogic.jndi.WLInitialContextFactory可以通过查看那些产品的相关类可知。
env.put(Context.PROVIDER_URL,"iiop://APUSIC_ADDRESS:6888");
// 连接所用的协议与端口,也与应用服务器有关,WEBLOGIC就是T3.
// 以上与服务器相关的信息包括下面的部分最好都采用XML定义的方式,以便未来容易配置。
//插入相关验证信息
env.put(Context.SECURITY_CREDENTIALS,"your_username" ) ;
env.put(Context.SECURITY_PRINCIPAL,"your_password");
initCtx=new InitialContext(env);
//通过RMI 取得数据库连接
datasource=(DataSource)initCtx.lookup("jdbc/sample")
Connection conn=datasource.getConnection();
}catch(Exception e){
e.printStackTrace();
}
这样的连接在部署时还需注意为相应的连接设置用户认证标记,在APUSIC_HOME/config/datasources.xml 中添加<remote-acl>标记及其元素。范例如下:
<remote-acl>
<user>username</user>
</remote-acl>
或
<remote-acl>
<group>groupname</group>
</remote-acl>
2.3. 服务器端直接通过资源管理器(数据库连接池)->JNDI->JDBC与数据库连接。
这种方式是JDBC 3.0规范中要求的,因此所有的应用服务器都遵守同样的标准,代码中不会存在与服务器绑定的信息。系统移植时最主要是修改配置信息,这个我在后面会具体介绍,下面是使用的例子:
try{
//取得InitialContext 对象
Context ctx=new InitialContext();
//通过JNDI 取得数据源
DataSource datasource=(DataSource)
ctx.lookup("java:comp/env/jdbc/oracle");
//通过数据源取得数据库连接
Connection conn=datasource.getConnection();
...
}
这段代码不做任何修改就可以在任何标准的应用服务器上运行,大家肯定注意到了代码中有个JNDI连接串,但没有建议采用XML文件配置,如果两个应用编写了同样的JNDI串是否会发生冲突?不会,原因是将会在后面的配置中通过名称映射来解决冲突。
如果采用这种技术访问JDBC,除了需要通过JNDI注册JDBC信息外,还需要在应用的apusic-application.xml 和web.xml 文件中对“资源引用”进行定义。对于移植的应用最好的定义方法是用Apusic部署工具打开编写的应用,然后展开使用这个JDBC连接的WEB或者EJB模块,选中“资源引用”就可以添加。其中“资源引用名称”就是在代码中使用的名称“jdbc/oracle”,JNDI名称就是在应用服务器上为JDBC连接配置的JNDI名称。通过这样的映射就完成了代码与应用服务器的JNDI名称的关联,也避免了应用中重复使用JNDI名称而造成的冲突,影响到的配置参数主要是<res-ref-name>相关的部分。
3. 如何配置JDBC。
Apusic应用服务器的JDBC配置有两种方式。一种是通过http://localhost:6888/admin进入管理界面,然后对数据源直接进行配置;另一种就是用编辑器打开datasources.xml文件手工配置。配置之前先准备好数据库连接串,数据库驱动类,用户名/密码和数据库驱动程序(JAR包)。JAR包有两种载入方式,一种是拷入到APUSIC_HOME/lib目录下,在系统启动时一起载入;另一种是配置过程中将驱动程序载入,采用何种方式可以由系统管理员决定,但是这个都与系统的ClassLoader有关,感兴趣的朋友可以去网上搜索一下。
分享到:
相关推荐
总的来说,金蝶Apusic V10应用服务器用户管理手册详细介绍了产品的安装、配置、使用和管理,是用户快速掌握该产品并成功部署企业级应用的宝贵资源。无论是新手还是经验丰富的管理员,都能从中受益,提升工作效率,...
通过这三个文档,用户不仅可以学会如何操作金蝶Apusic应用服务器V10,还能深入理解其工作原理,从而在实际应用中充分发挥其性能优势,解决各种业务场景下的挑战。无论是初级管理员还是高级开发人员,这些资料都是不...
【Apusic应用服务器配置管理】 Apusic应用服务器是一款基于Java EE规范的应用服务器,它提供了运行和管理企业级Java应用程序的平台。本文档详细介绍了Apusic应用服务器的配置管理,包括服务器域的管理、J2EE应用的...
金蝶Apusic应用服务器6.0是一款标准、安全、高效、集成并且具有丰富功能的企业级应用服务器(Enterprise Application Server),它用于实现基于SOA的企业应用和服务,为企业应用和服务提供坚不可摧的基础架构支撑。...
- **配置Apusic应用服务器**: 在Apusic的启动脚本中,须添加特定的JAVA启动参数,以支持JProfiler的监控功能。具体而言,这涉及修改`APUSIC_HOME/bin`目录下的`startapusic.cmd`文件,引入必要的JProfiler连接指令。...
金蝶Apusic应用服务器的详细文档,包括安装、管理、开发等内容。
金蝶Apusic应用服务器V9.0是金蝶中间件推出的一款企业级Java应用服务器产品,支持Java EE 6规范,提供了包括Web容器、EJB容器、企业级Java Bean等服务在内的丰富功能。本手册针对金蝶Apusic应用服务器V9.0版本的用户...
Apusic Web 服务器是 Apusic 应用服务器中内置的一个高效、安全、可靠的 Web 服务器,提供完整的 Web 服务器的功能,使 Apusic 应用服务器在提供对静态页面和图形的同时,提供对 JSP、Servlet 的高效服务。Apusic ...
Apusic服务器作为一款高性能、高可用的应用服务器,它提供了丰富的功能来支持各种应用场景。其中,数据源的资源引用是Apusic服务器中的一个重要特性,它允许开发者通过标准的方式来访问和管理数据库连接。本文将详细...
金蝶Apusic应用服务器V6产品简介特性版.pptx
Apusic V10.0版本是对该应用服务器的一个重要更新,它包含了对系统管理、集群配置、安全性和性能等方面的增强。 在用户手册中,快速开始指南部分为新用户提供了从基本介绍到安装、使用以及删除Apusic应用服务器的...
该攻略主要用于在apusic文件中配置数据库连接,以便在应用程序中使用数据库资源。 1. 配置数据源 在apusic文件中,配置数据源是实现数据库连接的第一步。数据源的配置包括两个部分:JNDI名称和驱动程序类名称。在...
### Linux环境下使用Apache搭建Apusic应用服务器集群 在IT领域,构建高效稳定的应用服务器集群是企业级服务的关键一环。本文将深入解析如何在Linux环境下,利用Apache与Apusic搭建应用服务器集群,并实现负载均衡,...
金蝶Apusic应用服务器是一款基于Java的企业级应用服务器,它完全遵循J2EE 1.4规范,确保了与行业标准的高度一致性和互操作性。该产品由国内领先的中间件提供商金蝶公司开发,是中国首个拥有自主知识产权并符合J2EE...
Apusic应用服务器实现了J2EE规范中的各项技术,包括但不限于Java Servlet、JavaServer Pages (JSP)、Enterprise JavaBeans (EJB)、Java Messaging Service (JMS)、Java Transaction API (JTA)、Java Database ...
3. **登录Apusic控制台检查部署的应用,除EAS、EASWeb、fileserver、jportal等已知应用外,是否有其他未知应用部署。** **注意事项:** - 对于发现的可疑文件或应用,应及时进行隔离或删除,并进一步调查来源。 ##...
Apache2.2+Apusic6.0负载配置指南主要涉及两个关键组件的设置:Apache HTTP服务器和Apusic应用服务器,用于实现负载均衡和高可用性。以下是详细的配置步骤和相关知识点: 1. **Apache2.2的安装**: - 下载Apache ...
金蝶Apusic应用服务器V6参考手册中的Classloader机制 Classloader是Java虚拟机(JVM)中的一种机制,用于加载和管理Java类。金蝶Apusic应用服务器V6参考手册中对Classloader机制进行了详细的介绍,包括Classloader...
【Apusic5.1域配置】是针对Apusic5.1服务器的一项关键操作,它涉及到服务器的管理和应用部署。Apusic(全称Apsara Music)是阿里...此外,定期备份和更新服务器配置也是必不可少的维护任务,以适应不断变化的业务环境。