Tomcat+jsp+mysql
我用jsp连mysql时一直有错,代码
<%
try
{
Connection con;
Statement stmt;
ResultSet rs;
//加载驱动程序,下面的代码为加载MySQL驱动程序
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("com.mysql.jdbc.Driver").newInstance();
//注册MySQL驱动程序
//DriverManager.registerDriver(new com.mysql.jdbc.Driver());
}
catch (Exception e) {out.println(e.getMessage());}
%>
得到异常:com.mysql.jdbc.Driver
在tomcat 的lib下我放了mysqlDriver.jar驱动
请问是怎么回事?

解决方案 »

  1.   

    1.在$CATALINA_HOME/conf/server.xml中添加配置信息,声明连接池的具体信息,添加内容如下:<!--声明连接池--><Resource name="jdbc/mysql"auth="Container" type="javax.sql.DataSource"/><!-- 对连接池的参数进行设置 --><ResourceParamsname="jdbc/mysql">        <parameter>            <name>factory</name>              <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>        </parameter>     <parameter>       <name>maxWait</name>       <value>5000</value>     </parameter>     <parameter>       <name>maxActive</name>       <value>20</value>     </parameter><parameter>       <name>username</name>       <value>shopadm</value>     </parameter>     <parameter>       <name>password</name>       <value>123</value>     </parameter>     <parameter>        <name>url</name>       <value>jdbc:mysql://localhost/shopdb?useUnicode=true&amp;charact-erEncoding=gb2312</value>     </parameter>     <parameter>       <name>driverClassName</name>       <value>com.mysql.jdbc.Driver</value>     </parameter>     <parameter>       <name>maxIdle</name>       <value>10</value>     </parameter>         </ResourceParams>2. 在$CATALINA_HOME/conf/web.xml的</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>其中<res-ref-name>中的参数名必须和server.xml中声明的连接名一样。 3. 在$CATALINA_HOME/conf/catalina/localhost目录下找到需要进行数据库连接的当前程序的配置信息,比如这里是shopping.xml,在这个文件中添加如下信息:<Context …>     …<ResourceLink name=”jdbc/mysql” global=”jdbc/mysql”type=”javax.sql.DataSource”/>     …</Context> 大功告成! 在此基础上,参考Tomcat官方网站的用户手册,摸索出另外一种配置连接池的方法,这个方法不需要对server.xml进行修改,只要对需要使用到连接池的程序的配置文档进行修改就可以了。方法如下:1.$CATALINA_HOME/conf/catalina/localhost目录下找到需要数据库连接池的程序的配置文档,此处是shopping.xml。在<Context></Context>之间添加如下信息,声明一个数据库连接池:<Resource name="jdbc/mysql"auth="Container" type="javax.sql.DataSource"/>  <ResourceParams name="jdbc/mysql">        <parameter>            <name>factory</name>              <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>        </parameter>     <parameter>       <name>maxWait</name>       <value>5000</value>     </parameter>     <parameter>       <name>maxActive</name>       <value>20</value>     </parameter>     <parameter>       <name>password</name>       <value>123</value>     </parameter>      <parameter>       <name>url</name>       <value>jdbc:mysql://localhost/shopdb?useUnicode=true&amp;characterEncoding=gb2312</value>     </parameter>     <parameter>       <name>driverClassName</name>       <value>com.mysql.jdbc.Driver</value>     </parameter>     <parameter>       <name>maxIdle</name>       <value>10</value>     </parameter>     <parameter>       <name>username</name>       <value>shopadm</value>     </parameter>   </ResourceParams>这里的参数和上一种方法中添加到server.xml里的信息几乎是完全一样的。 2.在对应程序的WEB-INF下建立一个web.xml文档,添加如下信息:<?xml version="1.0"encoding="ISO-8859-1"?> <web-appxmlns="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">    <resource-ref>        <description>DBConnection</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>关键是斜体字的部分,指向前面声明的连接池。 这两种方法经测试都能配置成功,显然他们的“作用域”是不一样的。另外,配置以后内部的引用以及运行机制,留待以后再深入研究。接下来先开始学习数据库连接池和JSP的协同工作。