配置环境:Tomcat5.5、MySQL4.1 、mysql-connector-java-5.0.0-beta 、commons-dbcp-1.2.1、 JDK1.5以上的“东东”在网上都能够下到的。

然后在D:\Tomcat5.5\webapps\新建目录DBtest文件夹,DBtest下建这样几个目录:WEB-INF、META-INF,在WEB-INF下创建两个文件夹和两个文件分别为classes、lib、web.xml、Test.jsp,在META-INF下创建context.xml(为什么要创建这个文件我也不太清楚 ,哪位高手知道还请多指教)

接下来就要把JDBC驱动程序mysql-connector-java-5.0.0-beta和commons-dbcp-1.2.1解压,分别将解压后的.jar文件分别复制到D:\Tomcat5.5\common\lib下,以上工作做完就可以进行连接池的配置了。

1、配置D:\Tomcat 5.5\conf\server.xml在server.xml中的中添加如下配置信息:

type="javax.sql.DataSource"
        driverClassName="com.mysql.jdbc.Driver"
        password="yang" 
        maxIdle="2"
        maxWait="5000"
        username="root"
        url="jdbc:mysql://localhost:3306/math"
        maxActive="4"/>

注:name是连接池的名字可任取,type,是数据源的类型,driverClassName是驱动程序的类名好像得这么写,url是数据库的路径math为数据库名。

2、配置D:\Tomcat 5.5\webapps\DBtest\WEB-INF\web.xml在中加入如入信息

DB Connection
Test
javax.sql.DataSource
Container

注:其中的res-ref-name必须和前面的连接池名相同。

3、配置D:\Tomcat 5.5\webapps\DBtest\META-INF\context.xml全部内容如下

debug="5"
         reloadable="true"
         crossContext="true">

注:path是工作区的路径,ResourceLink name和global好像都得和前面的连接池的名字相同,这里的global有什么用我也不太清楚啦,不好意思,嘻嘻!!

java 代码

  1. package app;
  2. import java.sql.*;
  3. import javax.naming.*;
  4. import javax.sql.DataSource;
  5. /*
  6. public class dbManager
  7. {
  8. public static synchronized Connection getConnection() throws Exception
  9. {
  10. try
  11. {
  12. Context initctx = new javax.naming.InitialContext();
  13. Context envctx = (Context)initctx.lookup("java:comp/env");
  14. DataSource ds = (DataSource)envctx.lookup("jdbc/Test");
  15. return ds.getConnection();
  16. }
  17. catch (Exception ex)
  18. {
  19. throw ex;
  20. }
  21. }
  22. }
  23. */
  24. import javax.naming.Context;
  25. import javax.naming.InitialContext;
  26. import javax.sql.DataSource;
  27. public class dbManager
  28. {
  29. final static private boolean VERBOSE = true; //打印控制台控制
  30. //static Logger logger = Logger.getLogger(dbManager.class.getName());
  31. private Context initCtx = null;
  32. private Context ctx = null;
  33. private DataSource ds = null;
  34. private long timeout = 5000;
  35. public dbManager()
  36. {
  37. try
  38. {
  39. initCtx = new InitialContext();
  40. //init context,read config web.xml
  41. if (initCtx == null)
  42. {
  43. throw new Exception("Initial Failed!");
  44. }
  45. ctx = (Context) initCtx.lookup("java:comp/env");
  46. //find "jdbc/SqlServerDB" object  this configruation in the SERVER.XML of Tomcat
  47. if (ctx != null)
  48. {
  49. ds = (DataSource) ctx.lookup("jdbc/Test");
  50. }
  51. if (ds == null)
  52. {
  53. throw new Exception("Look up DataSource Failed!");
  54. }
  55. }
  56. catch (Exception e)
  57. {
  58. log(e, "Can’t get the Context!");
  59. }
  60. }
  61. public synchronized Connection getConnection() {
  62. //get connection and set to delay time
  63. long startTime = new java.util.Date().getTime();
  64. Connection con = null;
  65. while (con == null) {
  66. con = newConnection();
  67. if (con != null) {
  68. //log("Create New Connection!");
  69. break;
  70. }
  71. try {
  72. log("连接超时,重新连接,等待" + timeout + "ms");
  73. wait(timeout);
  74. }
  75. catch (InterruptedException e) {
  76. log(e, "连接超时!");
  77. }
  78. if ( (new java.util.Date().getTime() - startTime) >= timeout) {
  79. log("Connection timeout!");
  80. break;
  81. }
  82. }
  83. return con;
  84. }
  85. private Connection newConnection() {
  86. Connection con = null;
  87. try {
  88. con = ds.getConnection();
  89. if (con == null) {
  90. throw new Exception("Create Connection Failed!");
  91. }
  92. }
  93. catch (Exception e) {
  94. log("Create Connection Failed!");
  95. System.out.println(e.getMessage());
  96. }
  97. return con;
  98. }
  99. public synchronized void freeConnection(Connection conn,
  100. Statement stmt,
  101. PreparedStatement pstmt) {
  102. try {
  103. //close Statement
  104. if (stmt != null) {
  105. stmt.close();
  106. stmt = null;
  107. //log("Close Statement......");
  108. }
  109. //close  PreparedStatement
  110. if (pstmt != null) {
  111. pstmt.close();
  112. pstmt = null;
  113. //log("Close PreparedStatement......");
  114. }
  115. }
  116. catch (Exception e) {
  117. System.out.println(e.getMessage());
  118. }
  119. try {
  120. //close Connection
  121. if (conn != null) {
  122. conn.close();
  123. conn = null;
  124. //log("Close Connection......");
  125. }
  126. }
  127. catch (SQLException e) {
  128. log(e, "释放资源出错!");
  129. }
  130. }
  131. /************************************
  132. * write log file.
  133. * @param s String
  134. ************************************/
  135. private void log(String s)
  136. {
  137. if (VERBOSE)
  138. {
  139. System.out.println(new java.util.Date() + ":" + s);
  140. //logger.info(new java.util.Date()+s);
  141. }
  142. }
  143. private void log(Throwable e, String msg)
  144. {
  145. System.out.println(new java.util.Date() + ": " + msg);
  146. }
  147. }

triman.rar

描述:
 eclipse+mysql+tomcat配置JNDI实现例子

下载

文件名:
 triman.rar

文件大小:
 1007 KB

http://uuplace.javaeye.com/blog/88878

eclipse+mysql+tomcat配置JNDI相关推荐

  1. 在Tomcat配置JNDI数据源的三种方式

    转载自   在Tomcat配置JNDI数据源的三种方式 在我过去工作的过程中,开发用服务器一般都是Tomcat,数据源的配置往往都是在applicationContext.xml中配置一个dataSo ...

  2. eclipse下tomcat配置

    eclipse下tomcat配置整了我一两个小时,呵呵,大家不要笑话,本人对eclipse还是菜鸟! 1.用到的软件 jdk-7u40-windows-i586 EclipseJavaEEIDEfor ...

  3. eclips mysql jndi_Eclipse +Tomcat配置JNDI数据源

    以下是具体配置的步骤: 1.首先配置Tomcat下的jndi数据源.具体存放目录apache-tomcat-7.0.59\conf\Catalina\localhost 下 osh.xml name= ...

  4. Tomcat配置JNDI数据源

    经过3个多小时的努力,配置JNDI数据源(主要是通过DBCP连接池)终于搞定- 还是Tomcat官方的说明好,不过全是英文的,大概还看得懂. 百度上那么花花绿绿的太多了,一个也没成功!... 本例使用 ...

  5. jrebel(破解版)+eclipse +jetty/tomcat 配置,实现热部署

    1.安装eclipse的jrebel插件 Help » Install New Software 然后通过 如下 URL  http://www.zeroturnaround.com/update-s ...

  6. eclipse mysql Xml配置_mysql8.0在eclipse中通过xml文件配置数据库连接池

    mysql8.0在eclipse中通过xml文件配置数据库连接池 1.关于Mysql8.0 2.数据库连接池(DBCP) 3.准备工作 4.配置context.xml 5.配置web.xml 6.调用 ...

  7. eclipse的tomcat配置

    目标 一直对eclipse中的tomcat不太了解,所以进行了完整的深入了解,下面对详细的配置项进行描述 如果有什么了解不清晰的,可以参考这篇文章 https://blog.csdn.net/qq_1 ...

  8. tomcat配置JNDI

    JNDI简介 英文全称是:Java Naming and Directory InterfaceS 术语解释:一组帮助做多个命名和目录服务接口的API. JNDI(Java Naming and Di ...

  9. 运动会成绩管理系统python_基于Eclipse+Mysql+Tomcat+MVC开发得大学运动会管理系统

    " 本系统是采用Eclipse进行开发得一款运动会管理信息系统" 科学技术的不断发展促进了高校信息化校园建设逐渐成形.管理高校运动会中的各种信息是一项繁琐而又复杂的工作,使用计算机 ...

最新文章

  1. 近期活动盘点:第一届“数据故事计划”、“新世界,由你造”阿里菜鸟2019实习生招聘...
  2. AS整理代码快捷键 ctl+alt+L
  3. Microbit-高温报警系统
  4. mysql缓存hibernate_关于Hibernate缓存机制
  5. ubuntu常见错误--could not get lock /var/lib/dpkg/lock -open
  6. css img 适配尺寸_如何解决img标签下面的小空隙(附详细视频教程)
  7. OLTP 和OLAP
  8. 带有NetBeans 7.1 RC 2的WebLogic 12c快速入门
  9. 中国大学慕课python答案第七章_中国大学慕课用Python玩转数据章节测试答案
  10. 什么是简单的分析SQL注入漏洞
  11. openssl构建CA认证
  12. 微信小程序例子——点击发送信息清空输入框
  13. Netflix Web 性能案例研究
  14. Alpha阶段敏捷冲刺④
  15. 我当测试总监的那几年 | 程序员有话说
  16. 字长模型LP64,ILP64,LLP64,ILP32,LP32
  17. 一个关于封装、继承、多态的问题
  18. 《啥是佩奇》里的那些心酸事实
  19. 精通javascript -——笔记
  20. CCF CSP认证菜鸟刷题日志

热门文章

  1. 怎么画单极交流放大电路波形图_直流电和交流电的电流方向
  2. center os php,Center OS 7 Apache安装配置
  3. 51单片机c语言显示hello,51单片机控制动态数码管显示12345和HELLO字样的设
  4. vc java动态库_Java调用已经写好的VC++动态链接库
  5. 从零开始刷Leetcode——数组(941.977)
  6. 【Python数据分析】数据预处理1——数据清洗
  7. 计算机视觉领域最好用的开源图像标注工具
  8. 深度神经网络基本问题的原理详细分析和推导
  9. 互联网运营数据分析(3): 留存分析
  10. python做一副54扑克牌发牌_用Python制作4人扑克牌发牌游戏