概括一下,大致分为四步:安装驱动,填充context.xml,填充web.xml,编写程序取得连接。通过一个小DEMO对这种配置方式有了一点了解,以tomcat6.0连接mysql5.0.8数据库为例。

安装驱动
下载与所要连接的数据库版本对应的JDBC驱动程序,加入到应用的CLASSPATH。如果用tomcat部署,tomcat中最好也加上(笔者觉得好像没必要加,可是不加的话会报错……所以还是加了)。应该有办法不加的,若有高手路过,请指点。

填充context.xml
这里就像是做声明样的,把你要连接时的相关属性定义在里面。我的配置如下:
<Context crossContext="true" docBase="E:/workspace/myeclipse-workspace/WebDevDemo/WebRoot" path="/webdemo">
<Resource name="jdbc/EmployeeDB"
auth="Container"
type="javax.sql.DataSource"
username="root"
password=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/employee"
maxActive="8"
maxIdle="4"/>
</Context>

填充web.xml。我的配置:
<resource-ref>
<res-ref-name>jdbc/EmployeeDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

编写程序取得连接。俺的程序:
Context ctx = null;
Context context = null;
DataSource dataSource = null;
Connection conn = null;
PreparedStatement statement = null;
ResultSet rs = null;
try {
ctx = new InitialContext();
context = (Context) ctx.lookup("java:comp/env");
dataSource = (DataSource)context.lookup("jdbc/EmployeeDB");
} catch (NamingException e) {
e.printStackTrace();
}

try {
conn = dataSource.getConnection();//获得连接
//            取数据
statement = conn.prepareStatement(SQL_FIND_ALL_SALARY_RECORDS);
rs = statement.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}

按照以上的方式就能在tomcat里以配置的形式连接数据库,比我们把所有的连接属性都定义在类里要方便多了。由于公司用的还是5.0版的tomcat,所以笔者也用这个进行了实验,在操作上与6.0有两处不同:
(1)在上面的第一步,加载驱动时。若是5.0版的,驱动的JAR包要放在%CATALINA_HOME%\common\lib下面;若是6.0版的,驱动的JAR包要放在%CATALINA_HOME%\lib下面。
(2)在上面的第二步,声明连接的方式有所不同。5.0版比较复杂点,需要像下面这样配:
<Context crossContext="true" docBase="E:/workspace/myeclipse-workspace/WebDevDemo/WebRoot" path="/webdemo">            
<Resource name="jdbc/EmployeeDB" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/EmployeeDB">
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/employee</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>8</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>4</value>
</parameter>
</ResourceParams>
</Context>
效果一样,只是写法不同,6.0版本对配置文件做了简化,所以看起来清爽一些。呵呵,这貌似就是软件的升级哦

http://hi.baidu.com/lck0502/item/81fd0fd1c1321ce4b3f7777c

Tomcat中用JNDI方式加载JDBC DataSource以连接数据库的更多相关文章

  1. java基础-jdbc——三种方式加载驱动建立连接

    String url = "jdbc:mysql://localhost:3306/student?Unicode=true&characterEncoding=utf-8" ...

  2. java加载jdbc驱动三种方式的比较

    一.引言 平时连接数据库的时候首先要加载jdbc驱动,这一步骤其实有三种方式,他们的区别?优劣? 二.快速了解三种加载方式 Class.forName(“com.mysql.jdbc.Driver”) ...

  3. Tomcat通过JNDI方式链接MySql数据库

    原文:Tomcat通过JNDI方式链接MySql数据库 拷贝MySQL的JDBC驱动到Tomcat的lib路径下 配置全局数据源或者单个Web应用的局部数据源 局部数据源 在Tomcat的conf/C ...

  4. 使用web.xml方式加载Spring时,获取Spring context的两种方式

    使用web.xml方式加载Spring时,获取Spring context的两种方式: 1.servlet方式加载时: [web.xml] <servlet> <servlet-na ...

  5. Tomcat启动,不能加载项目问题。

    项目部署时遇到的一个Tomcat问题:     启动tomcat后,不能加载项目 直接启动完成 但是项目未加载 最后找到原因:  把环境变量Catalina_HOME删除掉,就能加载. tomcat启 ...

  6. Tomcat启动时自动加载Servlet

    1.想做一个服务启动时自动启动一不停止的获取订阅功能 2.之前是做一个Jsp页面请求servlet来触发方法 3.现在实现Tomcat启动时自动加载Servlet 1.Tomcat中启动Servlet ...

  7. MVC Ajax Helper或jQuery异步方式加载部分视图

    Model: namespace MvcApplication1.Models { public class Team { public string Preletter { get; set; } ...

  8. Eclipse tomcat插件禁用热加载

    Eclipse中的tomcat插件默认是开户了热加载,只要是修改了java文件一保存,tomcat自动编译.加载.发布,很吃内存. 关闭方法: 打开eclipse,找到server项: 双击打开,修改 ...

  9. 重新想象 Windows 8 Store Apps (54) - 绑定: 增量方式加载数据

    [源码下载] 重新想象 Windows 8 Store Apps (54) - 绑定: 增量方式加载数据 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 绑定 通过实 ...

随机推荐

  1. 铁力项目mysql异常处理过程记录

    地区:铁力 故障:2019-06-26 10:19:34 139921514837760 [ERROR] mysqld: Error writing file 'mysql-bin' (errno: ...

  2. Python——python3的requests模块的导入

    前言 突然就要搞python,我这个心哦~ 版本 | python 3.7 步骤 配置环境变量 右击-->属性-->打开文件位置 进入到脚本目录: C:\Users\Administrat ...

  3. dosbox+masm5.0编译汇编文件

    在去年写过如何bc3.1编译ucos,不过现在很少去用到,但是那是用dosbox也是懵懵懂懂的,参见https://blog.csdn.net/liming0931/article/details/8 ...

  4. 2019-2020-1 20199312《Linux内核原理与分析》第七周作业

    进程的描述 操作系统内核实现操作系统的三大管理功能 进程管理(内核中最核心的功能) 内存管理 文件系统 在操作系统中,我们通过进程控制块PCB描述进程. 为了管理进程,内核必须对每个进程进行清晰的描述 ...

  5. oracle+mybatis报错:BindingException("Invalid bound statement (not found): ")

    oracle+mybatis报错:BindingException("Invalid bound statement (not found): ") 从mysql转到oracle数 ...

  6. hibernate之关联关系一对多

    什么是关联(association) 关联指的是类之间的引用关系.如果类A与类B关联,那么被引用的类B将被定义为类A的属性.例如:  public class B{        private St ...

  7. SpringMVC的数据效验

    Spring MVC本身没有数据校验的功能,它使用Hibernate的校验框架来完成. 1.导入pom节点 <!-- https://mvnrepository.com/artifact/org ...

  8. ES 大批量写入提高性能的策略

    1.用bulk批量写入 你如果要往es里面灌入数据的话,那么根据你的业务场景来,如果你的业务场景可以支持让你将一批数据聚合起来,一次性写入es,那么就尽量采用bulk的方式,每次批量写个几百条这样子. ...

  9. 浏览器在线预览pdf、txt、office文件

    //使用文件预览的原因是:TMD微信浏览器屏蔽掉文件下载链接,只好折中使用文件在线预览功能//要点:1.office文件用微软的插件打开 http://view.officeapps.live.com ...

  10. 自定义mvc增删改查

    对t_mvc_book表的增删改查 导入jar包 BaseDao package com.hmc.util; import java.lang.reflect.Field; import java.s ...