eclipse下,tomcat7.0配置MySQL数据库连接池
用tomcat直接发布项目的
tomcat配置数据库连接池的步骤很简单,主要分3部分:
1、在Tomcat的conf/server.xml配置文件中host标签里面添加如下代码:
<span style="font-size:18px;"><Context docBase="F:\PY\esayui\WebContent" path="/esayui" reloadable="true"> <span style="white-space: pre;"> </span><Resource name="jdbc/<span style="color:#cc0000;">mysql</span>" </span><span style="color:#cc0000;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:14px;"><!-- 数据源名字,mysql可以随意改,但要跟web文件里的</span></span><span style="font-size:14px; font-family: Arial, Helvetica, sans-serif;">res-ref-name</span><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:14px;">保持一致--></span></span></span><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:14px;"> </span></span><span style="font-size:18px;"><span style="white-space: pre;"> </span>auth="Container" type="javax.sql.DataSource" <span style="white-space: pre;"> </span>maxActive="100" maxIdle="30" maxWait="10000" <span style="white-space: pre;"> </span>username="root" password="root" </span><span style="font-size:14px;"> <span style="font-family: Arial, Helvetica, sans-serif;"><!-- 数据库的用户名和密码 --></span></span><span style="font-size:18px;"> <span style="white-space: pre;"> </span>driverClassName="com.mysql.jdbc.Driver" <span style="white-space: pre;"> </span>url="jdbc:mysql://localhost:3308/shopsystem" /> </span><span style="font-family: Arial, Helvetica, sans-serif; font-size: 18px;"> </span><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:14px;"><!-- 端口号和数据库名 --></span></span><span style="font-size:18px;"> <span style="white-space: pre;"> </span> </Context></span>
2、在eclipse里,找到项目/WebContent/WEB-INF下的web.xml文件,在<web-app>标签里添加如下代码:
<span style="font-size:18px;"><span style="font-size: 18px;"> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/<span style="color:#cc0000;">mysql</span></res-ref-name></span></span><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color:#cc0000;"><!-- 数据源名字,同Tomcat中配置的Resource节点中name属性值"jdbc/mysql"一致 --></span></span><span style="font-size:18px;"><span style="font-size: 18px;"> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref></span></span>3、将mysql的驱动是mysql-connector-java-5.x.x-bin.jar拷贝到在tomcat目录下的lib里
4、编写测试代码:新建mysql.jsp
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="javax.naming.*" %> <%@ page import="javax.sql.DataSource" %> <html> <head> <title>Tomcat7.0 JNDI!</title> </head> <body> Tomcat连接池测试,获取数据源 <br> <% try { //初始化查找命名空间 Context ctx = new InitialContext(); //参数java:/comp/env为固定路径 Context envContext = (Context)ctx.lookup("java:comp/env"); <span style="color:#cc0000;"> //参数jdbc/mysql为数据源和JNDI绑定的名字</span> DataSource ds = (DataSource)envContext.lookup("jdbc/<span style="color:#cc0000;">mysql</span>"); Connection conn = ds.getConnection(); Statement sta = conn.createStatement(); ResultSet rs = sta.executeQuery("select 1"); conn.close(); out.println("<span style='color:red;'>JNDI测试成功<span>"); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } %> </body> </html>
启动Server服务
运行效果:这样就表示成功了!
注意:
1、确定MySQL的服务打开没有
2、如果报如下错误:
<span style="font-size:14px;">org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371) <span style="white-space:pre"> </span>... ... Caused by: java.lang.NullPointerException at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:524) ... 28 more</span>那就说明你的文件配置路径和驱动路径放错了,很多人直接配置在Tomcat的conf/server.xml和把驱动放到tomcat目录下的lib里, 其实eclipse发布tomcat的 默认路径是工作空间下的 \.metadata\.plugins\org.eclipse.wst.server.core里面的一个tmp文件夹, 应该配置在eclipse发布Server path路径,而不是Tomcat下的路径。
那怎么看你配置Server的路径呢?
双击打开你的Server
出现如下界面
找到红圈内的路径(默认是工作空间下的\.metadata\.plugins\org.eclipse.wst.server.core里面的一个tmp文件夹里面)
我们应该更改这里的server.xml文件,而不是tomcat\conf路径下server.xml
当然,mysql的驱动mysql-connector-java-5.x.x-bin.jar也是拷贝到\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\lib里