Tomcat9 + java + mysql 配置数据库连接池

今天看到书上MyEclipse配置数据库连接池,搞了好久不成功,上网Google了好久,先是自己手动部署网站,在网上看的都是把web.xml和context.xml放在WEB-INF文件夹下,怎么也不成功,老是遇到Cannot create JDBC driver of class '' for connect URL 'null' and NullPointerException。

后来打开EclipseIDE,经过一番测试,发现应该把context.xml放在META-INF下,这应该是版本更新的改动吧。花了好长时间解决这个问题,所以就记录下来了,希望会帮到大家。最后总结一下配置数据库连接池配置的具体步骤:

第一步:把MySQL的mysql-connector-java-5.1.40-bin.jar放在tomcat的lib下,

第二步:在Tomcat\webapps目录下建立你的网站目录test,在test目录下新建文件夹META-INF和WEB-INF,再建立两个文件,分别命名web.xml和context.xml,其中web.xml放在WEB-INF下,context.xml放在META-INF下。内容如下:

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
  <description>MySQL Test App</description>
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/webdb</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
</web-app>

context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context >
    <Resource
        name="jdbc/webdb" auth="Container"
		type="javax.sql.DataSource"
        maxActive="100" maxIdle="30" maxWait="10000" 
        url="jdbc:mysql://localhost:3306/webdb"
        driverClassName="com.mysql.jdbc.Driver"
        username="root" password="123456"
    />
</Context>

webdb为你自己的数据库。

第三步:建立测试文件jsptest.jsp,看是否配置成功

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@page import="java.sql.*"%> 
<%@page import="javax.sql.*" %> 
<%@page import="javax.naming.*" %> 
<% 
    try { 
        Context initContext = new InitialContext(); 
        Context envContext  = 
            (Context)initContext.lookup("java:/comp/env"); 
        DataSource ds = 
            (DataSource)envContext.lookup("jdbc/webdb"); 
        Connection conn = ds.getConnection(); 
        PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM t_dictionary");
		ResultSet rs = pstmt.executeQuery();
		
		StringBuilder table = new StringBuilder();
		
		table.append("<table border='1'>");
		
		
		//生成查询结果
		while (rs.next()){
			// 添加<table>标签的HTML代码
			table.append("<tr><td>" + rs.getString("english") + "</td><td>");
			table.append(rs.getString("chinese") + "</td></tr>");
		
		}
		table.append("</table>");
		out.println(table.toString());
		pstmt.close();
		
        if(!conn.isClosed()) 
            
            out.println("数据库连接测试成功"); 
        conn.close(); 
    } 
    catch(SQLException e) { 
        out.println(e.toString()); 
    }
%>


OK,到这就大功告成了,你应该成功了吧,如有问题,欢迎留言咨询!


  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值