很久没有使用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&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获取数据库连接,当前软件版本tomcat8jdk8. Tomcat 为每个在其上运行的 Web 应用都提供了一个 JNDI 的 InitialContext 实现实例 Tomcat中的默认数据源支持基于Commons 项目中的DBCP 1.x连接池,也可以使用实现...
配置了tomcat之后发现jndi好简单啊,可是碰到了hibernate该怎么做呢,本例详细解析
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 开发技术,并涵盖了许多高级主题,如需要在企业级Web应用中使用的特性—Enterprise JavaBeans、JDBC 2.0、数据库连接池和自定义标签库。本书既适合初学者阅读,也...
Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的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的状态管理模式 ...
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的状态管理模式 ...
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的状态管理模式 ...
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) ...
14. jsp中的数据库的连接方式 15. 在jsp中,怎么实现按回车就可提交表单? 16. 在JSP中如何传递数组? 17. 按地址取图片? 18. JSP中如何上传图片到数据库字段? 19. 页面自动刷新? 20. 表单自动提交? 21. 从JSP传...
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...
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...
实例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数据库...
在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编程环境 7 ...2、编写或使用原来的DBConnection类获得数据库连接 35 3、创建数据访问抽象层接口UserDAO 35 4、创建数据访问实现类UserDAOImpl 35 5、创建登录需要的JSP页面 35 四、实验报告 35
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 ...
数字转中文 128 自动计算金额 129 JSP页面打印中使用WebBrowser控件 130 不刷新页面添加新的类别 131 鼠标滚动缩放图片 132 根据输入的表名生成输入数据表格 133 JSP表格输出到Excel 134.JSP...