原创

Tomcat7 非全局 JNDI 数据源配置

        数据源(Data Source)顾名思义,数据的来源,是提供某种所需要数据的器件或原始媒体。在数据源中存储了所有建立数据库连接的信息。在JDBC的操作中,打开和关闭数据库连接,是最耗费数据库资源的,我们可以在服务器上存放一定量的数据库连接,每当程序要连接数据库时,就将这些链接给它们,而一旦程序退出数据库操作时,要将这些链接返回给服务器。


数据源的基本概念:

1、通过Connection Pool 管理数据库连接

2、通过Data Source 去管理Connection Pool

3、Data Source 被JNDI Tree 绑定


采用非全局JNDI配置方式,具体如下:

1、添加jar包,如下:

将JDBC驱动程序mysql-connector-java-5-bin.jar放置在应用的WEB-INF\lib下,并复制jstl.jar和standard.jar到应用的WEB-INF/lib目录下。


2、编辑Tomcat7服务器conf/context.xml文件,在文件的<Context></Context>标签中添加如下代码:

<Resource 
       name="jdbc/mysql" 
       auth="Container" 
       type="javax.sql.DataSource"
       maxActive="100" 
       maxIdle="30" 
       maxWait="10000"
       username="root" 
       password="123456" 
       driverClassName="com.mysql.jdbc.Driver"
       url="jdbc:mysql://localhost:3306/yoodb"
/>

其中context.xml配置文件参数的含义如下:

name属性是数据源名称,通常采取jdbc/**

driverClassName属性是驱动程序名称。

username,password,数据库名称和密码

url:访问的数据库路径。其中url的内容组成解析上篇博客中已经分析

maxActive属性是并发连接的最大数。设置为0则无限制。

maxWait属性是等待连接的最大连接的时间。

maxIdle属性是连接池中空闲的连接的个数。


3、修改web.xml配置文件,如下:

编辑conf/web.xml文件,在</web-app>标签之上添加如下内容,具体如下:

  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/mysql</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>


4、测试文件test.jsp,代码如下:

<%@ page language="java" contentType="text/html;" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<sql:query var="rs" dataSource="jdbc/mysql">
select id, name,address from user
</sql:query>

<html>
  <head>
    <title>DB Test</title>
  </head>
  <body>

  <h2>Results</h2>

<c:forEach var="row" items="${rs.rows}">
    name ${row.name}<br/>
    normalprice ${row.address}<br/>
</c:forEach>
  </body>
</html>

关注下方微信公众号“Java精选”(w_z90110),回复关键字领取资料:如HadoopDubboCAS源码等等,免费领取资料视频和项目。 

涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。

评论

分享:

支付宝

微信