- JNDI是什么
java Naming and Directory Interface:java命令与目录接口
目录服务的Java API
- JNDI能做什么
通过将名称与资源或服务进行关联,为查询和访问各种命名和目录服务提供通用,统一的接口
- JNDI的作用与优点
简化应用对于资源的配置及维护工作
可以更大范围,不同应用之间共享资源
JNDI API 2-1:
配置资源:
修改Tomcate的context.xml文件,配置Environment环境变量
找到E:\apache-tomcat-8.5.31\conf 下的context.xml写 <!-- name:变量名 value:变量值 type:数据类型 --> <Environment name="tjndi" value="helloJNDI!" type="java.lang.String"/>
JNDI API 2-2:
- 在JSP页面编写代码,通过JNDI访问发布消息
- 通过Context的lookup()方法查询资源
<% //创建Context Context context=new InitialContext(); //前缀 java:comp/env/ String lookup = (String) context.lookup("java:comp/env/tjndi"); out.print(lookup); %>
配置数据源:
- 配置Tomcat安装配置目录/conf/context.xml文件
<Resource name="jdbc/base" auth="Container" type="javax.sql.DataSource" maxTotal="100"
maxIdle="20" maxWaitMillis="10000" username="root" password="123.com"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test?serverTimezone=GMT-8&characterEncoding=utf8"/>
//我的数据库名字是我上面写的代码的url中的test 可以修改
- 修改XML:
2.修改xml
<!--添加数据源-->
<resource-ref>
<res-ref-name>jdbc/base</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
//3.再将mysql的jar包 复制到 E:\apache-tomcat-8.5.31\lib下
//4.修改BaseDao
//5.创建一个测试类看是否连接成功
//5.在创建一个页面测试是否连接成功:TestUserJNDI.jsp
<%
BaseDao bd=new BaseDao();
Connection conn= bd.getConn();
if (conn!=null){
out.print("连接成功");
}else{
out.print("连接失败");
}
bd.CloseAll(conn,null,null);
%>