访问其它资源或者文件时就要用JNDI服务来定位了,通过名字来获得对应的对象或者服务。比如访问,文件,数据库等。
JNDIjava命名与目录接口(java Naming and Directory Interface)
数据源--javax.sql..DataSource接口负责建立与数据库的连接,在DataSource中事先建立多个数据库连接,这些数据库连接保存在连接池(Connection Pool)里。
用JNDI获得数据源对象过程:
1.配置Context.xml文件,添加<Resource/>元素;
2.配置web.xml文件,添加<resource-ref></resource-ref>
3.添加驱动。
4.编码,使用lookup()方法获得数据源对象。如://初始化
Context ctx=new InitialContext();
//获取与逻辑名相关的数据源对象
DataSource ds=(DataSource)ctx.lookup("java:comp/env/数据源名称");
//通过DataSource的getConnection()方法获得数据连接对象。
Connection conn=ds.getConnection();
...............
最后不要忘记调用close()方法让Connection回复空闲。
lookup(String name)返回与指定的名字绑定的对象。
访问数据库时常出的错误:
Cannot load JDBC driver class-没有添加驱动
Cannot create JDBC driver of class '' for connect URL 'null'-连接路径为空,检查Context.xml中的配置,确保信息正确。
Name jdbc is not bound in this Context-jdbc名字没有绑定到当前上下文,看看lookup()和context.xml中的名字是不是一致的,并且,名称是java:comp/env/+数据源名称。
加油!继续学习!