`
kobe学java
  • 浏览: 249858 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Tomcat6 中使用Jndi获取数据库连接

 
阅读更多

很久没有使用jndi进行开发了,近期有个老的项目维护发现自己对数据源的配置都陌生了,这里总结下相关的资料,共有需要的朋友参考。

 

首先在web应用程序下的META-INF目录里建立并配置context.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
 <Resource
  name="jdbc/mysql"
  auth="Container"
  type="javax.sql.DataSource"
  maxActive="20"
  maxIdle="30"
  maxWait="10000"
  username="root"
  password="zhangji"
  driverClassName="com.mysql.jdbc.Driver"
  url="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8"
  removeAbandoned="true"
  removeAbandonedTimeout="120"
 />
</Context>

 

 name="jdbc/mysql" 表示通过Web应用程序从上下文:java:comp/env/jdbc/mysql(逻辑名称)中创建易访问的JNDI资源。上下文java:comp/env/的一部分被添加到所有的Tomcat管理器文本中。Web应用程序代码可以使用上下文来查找数据源

auth 指定如果Tomcat容器认证代表应用程序则(auth="Container"),如果应用程序以程序的方式工作则(auth="Application")

type="javax.sql.DataSource" 在查找中返回的资源类型时Javax.sql.DataSource。它也指定容器认证不支持代表Web应用程序的RDBMS

maxActive 在连接池中活动链接的最大数量。0值代表无限制

maxIdle 在连接池中未被收回的空闲连接数量。1值代表无限制

maxWait 以毫秒为单位,在抛出一个异常之前,管理器等待数据库连接回应的最长时间。1值代表一直等待

removeAbandoned="true" 和 removeAbandonedTimeout="120" 的意思表示DBCP池管理器代码回收所有的空闲超过2分钟的JDBC链接。(120秒)注意这里的配置对于那些由于不完善的开发代码而没有完全释放的连接也是如此。

 

第二部 在web.xml中进行相应配置

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

 

最后编写如下代码,实现获得数据源连接:

try {
   Context ctx = new InitialContext();
   DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql");
   Connection con = ds.getConnection();
   Statement stat = con.createStatement();
   ResultSet rs = stat.executeQuery("select * from members");
   while(rs.next()){
    System.out.println(rs.getString(1));
    System.out.println(rs.getString(2));
    System.out.println("====================");
   }
  } catch (NamingException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  }

注意:用tomcat的jndi连接池必须把mysql数据库的链接jar文件放在tomcat的lib目录下 !!!

 

分享到:
评论

相关推荐

    JNDI项目文件打包.rar

    jndi获取数据库连接,当前软件版本tomcat8jdk8. Tomcat 为每个在其上运行的 Web 应用都提供了一个 JNDI 的 InitialContext 实现实例 Tomcat中的默认数据源支持基于Commons 项目中的DBCP 1.x连接池,也可以使用实现...

    hibernate中jndi的配置使用

    配置了tomcat之后发现jndi好简单啊,可是碰到了hibernate该怎么做呢,本例详细解析

    JDBC 3.0数据库开发与设计

    3.3.6 获取数据库中各种信息的实例 3.4 Statement对象 3.4.1 Statement对象使用基础 3.4.2 获取所有记录 3.4.3 获取指定记录 3.5 修改数据库表 3.5.1 修改数据库表本身 3.5.2 修改数据库表记录 3.6 结果集 ...

    JSP高级编程

    本书从最基础的JSP开发开始,循序渐进地介绍了JSP 开发技术,并涵盖了许多高级主题,如需要在企业级Web应用中使用的特性—Enterprise JavaBeans、JDBC 2.0、数据库连接池和自定义标签库。本书既适合初学者阅读,也...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很...

    jsp servlet 入门学习资料-新手一看就懂

    9.5.6 在JSP中使用扩展标签 第10章 Enterprise JavaBeans 10.1 Java服务器端组件标准—EJB 10.1.1 EJB和JavaBeans 10.1.2 EJB的开发与使用中的角色 10.2 Session Bean 10.2.1 Session Bean的状态管理模式 ...

    jsp从入门到高级编程

    9.5.6 在JSP中使用扩展标签 第10章 Enterprise JavaBeans 10.1 Java服务器端组件标准—EJB 10.1.1 EJB和JavaBeans 10.1.2 EJB的开发与使用中的角色 10.2 Session Bean 10.2.1 Session Bean的状态管理模式 ...

    JSP高级教程

    9.5.6 在JSP中使用扩展标签 第10章 Enterprise JavaBeans 10.1 Java服务器端组件标准—EJB 10.1.1 EJB和JavaBeans 10.1.2 EJB的开发与使用中的角色 10.2 Session Bean 10.2.1 Session Bean的状态管理模式 ...

    JSP 程序设计从入门到精通 PDF 教程

     3.2 在Jsp中使用JavaBeans 55  3.3 JavaBeans的scope属性 57  3.4 JavaBeans应用实例 59  3.4.1 实例1(HelloWord.java) 59  3.4.2 实例2(People.java) 60  3.4.3实例子3数组应用 (Example2_3.java) ...

    JSP实用技巧集合,jsp编程的一些小技巧总结

    14. jsp中的数据库的连接方式 15. 在jsp中,怎么实现按回车就可提交表单? 16. 在JSP中如何传递数组? 17. 按地址取图片? 18. JSP中如何上传图片到数据库字段? 19. 页面自动刷新? 20. 表单自动提交? 21. 从JSP传...

    Spring.3.x企业应用开发实战(完整版).part2

    7.4.2 在函数入参中使用通配符 7.4.3 逻辑运算符 7.4.4 不同增强类型 7.4.5 引介增强用法 7.5 切点函数详解 7.5.1 @annotation() 7.5.2 execution() 7.5.3 args()和@args() 7.5.4 within() 7.5.5 @within...

    Spring3.x企业应用开发实战(完整版) part1

    7.4.2 在函数入参中使用通配符 7.4.3 逻辑运算符 7.4.4 不同增强类型 7.4.5 引介增强用法 7.5 切点函数详解 7.5.1 @annotation() 7.5.2 execution() 7.5.3 args()和@args() 7.5.4 within() 7.5.5 @within...

    h_JAVA 2应用编程150例.rar

    实例66 获取数据库基本信息 195 第6章 Java C/S结构编程 197 实例67 实现C/S多线程 198 实例68 客户端程序 200 实例69 服务器端程序 201 实例70 C/S结构聊天室 203 实例71 基于C/S的小游戏 209 实例72 应用C/S数据库...

    springboot参考指南

    在Spring环境中使用YAML暴露属性 iii. 23.6.3. Multi-profile YAML文档 iv. 23.6.4. YAML缺点 vii. 23.7. 类型安全的配置属性 i. 23.7.1. 第三方配置 ii. 23.7.2. 松散的绑定(Relaxed binding) iii. 23.7.3. @...

    J2EE实验指导书*******

    目录 实验一 熟悉J2EE编程环境 7 ...2、编写或使用原来的DBConnection类获得数据库连接 35 3、创建数据访问抽象层接口UserDAO 35 4、创建数据访问实现类UserDAOImpl 35 5、创建登录需要的JSP页面 35 四、实验报告 35

    J2EE应用开发详解

    294 16.3.5 数据库连接池中使用JDBC 297 16.4 小结 302 第17章 ORM与Java持久化机制 303 17.1 ORM概述 303 17.2 域模型 304 17.3 实体域对象的持久化模式 304 17.4 JPA 305 17.4.1 实体 306 17.4.2 EntityManager ...

    jsp编程技巧集锦

    数字转中文 128 自动计算金额 129 JSP页面打印中使用WebBrowser控件 130 不刷新页面添加新的类别 131 鼠标滚动缩放图片 132 根据输入的表名生成输入数据表格 133 JSP表格输出到Excel 134.JSP...

Global site tag (gtag.js) - Google Analytics