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,到这就大功告成了,你应该成功了吧,如有问题,欢迎留言咨询!


猜你喜欢

转载自blog.csdn.net/u014108439/article/details/53269219
今日推荐