今天晚上花了两小时,总算能正确对Tomcat配置数据源了,现在写出来和大家分享一下。(红色字体为大概步骤)
第一步:
               下载安装好Tomcat的admin插件,在次就不介绍了,读者可以到网上找找相关资料。
第二步:
                安装好admin插件后,在浏览器输入 http://localhost:8080/admin输入用户名密码,进入管理界面。 点DataSource,在Data Source Actions里选Create New Data Source,输入如下:
JNDI Name:  jdbc/mysql   
Data Source URL:  jdbc:mysql://localhost:3306/mysql      (注意此处不要填错,这个问题花了我不少时间,3306后面是“/”,而不是“?”,mysql是数据库名字)
JDBC Driver Class:    
User Name:    root
Password:    ******
Max. Active Connections:    4
Max. Idle Connections:    2
Max. Wait for Connection:    5000
Validation Query:   
输完后,成后点击\"save\"。记得要再点击上面的\"Commit Changes\"。这时查看server.xml文件可以看到多了两个<Resource/>元素,内容如下:
  <Resource
      name="jdbc/mysql"
      type="javax.sql.DataSource"
      maxActive="4"
      maxIdle="2"
      username="root"
      maxWait="5000"
      driverClassName="com.mysql.jdbc.Driver"
      password="yqs2602555"
      url="jdbc:mysql://localhost/mysql"/>
    <Resource
      auth="Container"
      description="User database that can be updated and saved"
      name="UserDatabase"
      type="org.apache.catalina.UserDatabase"
      pathname="conf/tomcat-users.xml"
      factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>
第三步:
              将mysql驱动包放入Tomcat_Home/common/lib下(此处也要注意)和应用程序的lib目录下。
第四步: 配置context.xml文件,在<webapp></webapp>中加入如下内容:
 <Resource
      auth="Container"
      description="User database that can be updated and saved"
      name="jdbc/mysql"
      type="javax.sql.DataSource"
      username="root"
   maxActive="4"
      maxIdle="2"
      maxWait="5000"
      driverClassName="com.mysql.jdbc.Driver"
      password="yqs2602555"
   url="jdbc:mysql://localhost/mysql"/>
第五步: 配置web.xml文件,加入如下内容:
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<web-app >
 <resource-ref>
  <description>DB Connection</description>
  <res-ref-name>jdbc/mysql</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>
</web-app>
整个配置就到此结束,下面就是写应用程序测试了!编写testds.jsp如下:
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%!
 final String JNDINAME = "java:comp/env/jdbc/mysql";
%>
<%
 Connection conn = null;
 Statement stmt = null;
 ResultSet rs = null;
 try {
  Context ctx = new InitialContext();
  DataSource ds = (DataSource)ctx.lookup(JNDINAME);
  conn = ds.getConnection();
  stmt = conn.createStatement();
  rs = stmt.executeQuery("select * from article");
  while(rs.next()) {
   out.println(rs.getString("title"));
  }
 } catch(Exception e) {
  e.printStackTrace();
 }
%>

<%
 try {
  conn.close();
 } catch(Exception e) {
  e.printStackTrace();
 }
 
%>
 
就可以看到mysql数据库下article这张表title字段的内容了。