web服务器提供了DataSource实现
JNDI(Java Naming and Directory Interface),Java命名和目录接口,
它可以把Java对象放在一个容器中(JNDI容器),并为容器中的java对象取一个名称,以后程序想获得Java对象,只需通过名称检索即可
tomcat将DataSource实现放置到JNDI容器中
示例:
1.将tomcat数据源添加到JNDI中
位置:META-INF/context.xml
context.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<!-- 将数据源添加到给 JNDI容器中
name : JNDI容器名称
auth : 放置的位置
type :确定放置对象的类型(数据源)
-->
<Resource name="jdbc/myDataSource" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="1234" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mydb"/>
</Context>
2.给当前web项目配置 web.xml
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<!-- 给当前web项目引用 jndi中数据源 -->
<resource-ref>
<res-ref-name>jdbc/myDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
3.测试jsp
dataSource.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 通过配置带jdni中的数据源,查询数据库 -->
<sql:query var="rs" dataSource="jdbc/myDataSource">
select * from users
</sql:query>
<c:forEach var="row" items="${rs.rows}">
id : ${row.id} ## name : ${row.name}<br/>
</c:forEach>
</body>
</html>
运行结果:
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/12066.html