这几天在tomcat下配置mysql的数据库连接池,再使用servlet进行数据访问。碰到不少问题,百度查了不少资料,不是很完整,试了很久,总算调通了。记录下来,供大家参考。

Tomcat和MySQL的安装就不追溯,很简单。

一、配置数据库连接池

这块网上很多材料有误导,搞一大堆参数。实际上,在Tomcat的首页上就有相关配置的说明:

https://img-blog.csdn.net/20131026230453281?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZnVzaHVu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

1、进入Tomcat首页,如上图。

2、找到JDBC DataSources,点击进入。

打开tomcat\conf\Context.xml,将这句话拷贝进去,修改成你自己的MySQL的配置即可:

<Resource name="jdbc/你的数据库别名" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="MySQL用户名" password="MySQL用户密码" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test"/>

标黄的是要按照你的mysql的配置进行修改,其他不用动。

MySQL的资料上有另外一种写法,但创建JNDI时,DataSource总是空的,误人不浅:Chapter 11. Using Connector/J with Tomcat。

3、打开tomcat\conf\web.xml,将以下信息加入,放在</web-app>之前即可。

<resource-ref>

<description>DB Connection</description>

<res-ref-name>jdbc/你的数据库别名</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

4、很重要的一步,就是要将MySQL的JDBC引擎拷贝到tomcat\lib下。

二、配置Servlet

Servlet的配置有时不小心,也容易造成出错。

1、打开tomcat\conf\web.xml,参考其他Servlet的写法,将以下信息加入。

<servlet-mapping>

<servlet-name>DataServiceServlet</servlet-name>

<url-pattern>/DataServiceServlet</url-pattern>

</servlet-mapping>

<servlet>

<servlet-name>DataServiceServlet</servlet-name>

<servlet-class>com.xxx.DataServiceServlet</servlet-class>

</servlet>

值得注意的是,以上的servlet-class就是你创建的Servlet,要包含路径。

不写servlet-mapping,就会老找不到servlet类:The requested resource is not available.。机关重重。

三、在Servlet中使用数据库连接池

有了以上两步,数据库连接池的使用就很简单了。

import javax.servlet.http.*;

import javax.servlet.*;

import java.io.*;

import java.sql.*;

import javax.sql.*;

import javax.naming.*;

。。。。。。

InitialContext ctx = null;

DataSource ds = null;

Connection conn = null;

PreparedStatement ps = null;

ResultSet rs = null;

String sql = "SELECT t1,t2 FROM test where t1=?";

try {

ctx = new InitialContext();

ds = (DataSource) ctx.lookup("java:comp/env/jdbc/你的数据库别名");

conn = ds.getConnection();

ps = conn.prepareStatement(sql);

} catch (SQLException se) {

System.out.println("SQLException: " + se.getMessage());

} catch (NamingException ne) {

System.out.println("NamingException: " + ne.getMessage());

}

这里有点变态的是lookup中的java:comp/env/jdbc/千万别少了,否则就无法定位到数据库配置,很是郁闷

四、访问Servlet

在你的HTML中,随便写个form,action中的内容就是你的servlet。

<form action="DataServiceServlet" method="POST">

<input type="text" name="t1"/>

<input type="submit" value="Submit" />

</form>

OK,大功告成,恭喜你成为一个伟大的程序员。

注:本人使用的是MySQL 5.6.14,Tomcat 7.0.42,Eclipse Version: Kepler Service Release 1

在tomcat下配置mysql的数据库连接池及Servlet相关推荐

  1. maven找到mysql 连接池_在Tomcat6.0+MySQL5.0环境下配置和使用数据库连接池

    一,在Tomcat中配置连接池的JNDI 首先到MySQL的网站上下载MySQL JDBC连接器放到%CATALINA_HOME%/lib目录下,在%CATALINA_HOME%/conf目录下找到c ...

  2. Tomcat中配置MySQL数据库连接池

    Web开发中与数据库的连接是必不可少的,而数据库连接池技术很好的优化了动态页与数据库的连接,相比单个连接数据库连接池节省了很大的资源.用一个通俗的比喻:如果一个人洗澡需花一桶水,那一百个人就要花一百桶 ...

  3. Java+MyEclipse+Tomcat (三)配置MySQL及查询数据显示在JSP网页中

    前面两篇文章讲述了如何配置MyEclipse和Tomcat开发JSP网站.如何配置Servlet简单实现表单提交,这篇文章主要讲述配置MySQL实现数据库连接MyEclipse,最后将查询表中的数据显 ...

  4. Window环境下配置MySQL 5.6的主从复制、备份恢复

    Window环境下配置MySQL 5.6的主从复制.备份恢复 1.环境准备 Windows 7 64位 MySQL 5.6 主库:192.168.103.207 从库:192.168.103.208 ...

  5. LINUX 下 配置MySQL数据库集群

    LINUX 下 配置MySQL数据库集群 MySQL数据库集群进行正确配置步骤(1) 此文章主要向大家讲述的是对MySQL数据库集群进行正确配置的实际操作步骤,以及对其概念的讲述,如果你对其相关的实际 ...

  6. linux下配置mysql默认编码utf8

    linux下配置mysql默认编码utf8 下面是需要在对应地方加入的配置 [client] default-character-set=utf8[mysqld] character-set-serv ...

  7. window mysql 同步复制_Window环境下配置MySQL 5.6的主从复制、备份恢复

    Window环境下配置MySQL 5.6的主从复制.备份恢复 1.环境准备 Windows 7 64位 MySQL 5.6 主库:192.168.103.207 从库:192.168.103.208 ...

  8. mysql服务器默认使用用户_在Windows下配置MySql服务器默认使用的用户是

    在Windows下配置MySql服务器默认使用的用户是 答:root 制单的基本要求是 答:完整 及时 简明 正确 为了妥善解决各类旅游企业受损严重,普遍面临的现金流不足.应收账款风险.大量游客投诉和 ...

  9. Linux下配置mysql密码

    Linux下配置mysql密码 Linux下配置mysql密码有两种情况: 一.首次登录mysql未设置密码或忘记密码解决方法: 二.已经配置密码对原有密码进行更改. 一.首次登录mysql未设置密码 ...

最新文章

  1. Kaggle新赛 | HuBMAP: 识别人体肾脏组织图像中的肾小球~总奖金 6 万美金
  2. LNMP架构的简单应用--部署论坛
  3. 婆媳关系不好首先就有一个斤斤计较的婆婆
  4. java cookie共享_cookie共享
  5. 处理大数据需要哪些技术
  6. 机器学习第二回总结——多变量线性回归
  7. 如何快速的复习学习过的Python
  8. 《精通Linux设备驱动程序开发》——1.6 查看源代码
  9. FastDFS的安装讲解
  10. c#窗体程序 内嵌浏览器
  11. verilog代码编写工具
  12. matlab基于凹点匹配的分割算法,一种基于凹点匹配的重叠图像分割算法
  13. 2020哔哩哔哩校招后端开发笔试编程题总结
  14. 改进埃尔米特(Hermite)分段三次插值——(可在pchip函数中自定义导数值)
  15. Microsoft Defender SmartScreen 阻止了无法识别的应用启动,Windows已阻止此软件和无法验证发布者两个问题的解决方法(以腾讯云服务器为例的三种保姆级图文解决方法)
  16. 输入底面半径和高,求圆柱体的表面积
  17. 广联达2020秋招测开面试(一面)
  18. 硬件相关优化代码host_kernel_mod的个人理解
  19. datatable invalid json format
  20. 正大国际期货:期货投资你的感悟是什么?

热门文章

  1. google推出了新闻搜索服务!
  2. python——设计Bird、fish类
  3. ORA-39126: Worker unexpected fatal error in KUPW$WORKER.FIXUP_MASTER_TABLE_EXPORT
  4. 计算机考研复试面试常问问题 操作系统篇
  5. Adobe Encore DVD彩蛋制作大全
  6. 谷歌广告联盟Adsense收不到Pin验证码怎么办?
  7. Docx4j生成word文件转PDF乱码问题
  8. 骁龙相机动态设置选项卡
  9. 默认java_默认java格式
  10. PMP项目管理认证第一节(备考阶段准备)