JNDI,Java Naming and Directory ,称为Java命名和目录接口,是一组在Java应用中访问和目录服务的API。
下面将简单写一下JNDI在myeclipse平台,tomcat服务器中配置jndi连接池。为了避免代码错误,我们一般从tomcat文档中直接复制代码。
准备工作:打开tomcat服务,在地址栏输入http://localhost:8080/,打开该网页,找到Tomcat Documentation,这里面包含了tomcat的一些文档,打开到JNDI Resource,找到JDBC Data Sources ,这里面将看到配置的步骤,我们所需要的代码将从这里面复制。
1.Install Your JDBC Driver
将你的jdbc驱动(如ojdbc14.jar)复制到tomcat安装文件夹lib目录下(\apache-tomcat-6.0.18\lib)
2.Declare Your Resource Requirements
<resource-ref> <description> Resource reference to a factory for java.sql.Connection instances that may be used for talking to a particular database that is configured in the <Context> configurartion for the web application. </description> <res-ref-name> jdbc/EmployeeDB </res-ref-name> <res-type> javax.sql.DataSource </res-type> <res-auth> Container </res-auth> </resource-ref>打开你的项目,找到web.xml文件,把以上这段代码复制到文件中,注意:放在<web-app></web-app>中间。需要修改的地方如下: <description> </description>这段内容可以不要; <res-ref-name> jdbc/EmployeeDB </res-ref-name>EmployeeDB改成你的数据库名,可以随便取,但是之后所有涉及res-ref-name的地方要完全相同。
3.Code Your Application's Use Of This Resource
Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); DataSource ds = (DataSource) envCtx.lookup("jdbc/EmployeeDB"); Connection conn = ds.getConnection(); conn.close();
修改你的项目中获取连接的方法。把以上的代码复制到获取连接的方法中替换之前的那些代码,记得修改代码中的数据库名称。注意:因为我在配置的时候由于其他代码的原因,没有把conn定义成全局的,出了一些错,只要把conn定义成全局的就可以了。改完之后会出现其他代码异常,全部抛出即可。
4.Configure Tomcat's Resource Factory
<Resource name="jdbc/EmployeeDB" auth="Container" type="javax.sql.DataSource" username="dbusername" password="dbpassword" driverClassName="org.hsql.jdbcDriver" url="jdbc:HypersonicSQL:database" maxActive="8" maxIdle="4"/>
找到tomcat安装目录下的conf\context.xml文件,把以上代码加到<context></context>内部最后,修改name,username:数据库用户名,password:连接密码, driverClassName,url,其他项可以视情况修改。注意:修改url时,不要出现‘/’符号,删除就好。
注:JNDI是可以配置多个的。
完成以上几步之后JNDI提供的连接池就配置好了,打开数据库服务,直接运行项目就可以连接数据库了。
Data Sources C Data Sources |