首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于在servlet中调用自建的数据库访问类时,抛出错误的有关问题

2012-05-28 
关于在servlet中调用自建的数据库访问类时,抛出异常的问题。在线等我在一个servlet中调用了自建的数据库访

关于在servlet中调用自建的数据库访问类时,抛出异常的问题。在线等
我在一个servlet中调用了自建的数据库访问类中的方法,抛出了一个ClassNotFoundException.
  具体如下:
  这是控制台追踪异常的结果,显示如下。
  信息: 
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.haiersoft.db.DBOper.getConn(DBOper.java:20)
at com.haier.handler.RegistServlet.doPost(RegistServlet.java:47)
…………
at java.lang.Thread.run(Unknown Source)
  从结果上看,似乎是没加载mysql的驱动类,可我确实加载了。为了证明,我又编写了一个测试类test.java 代码如下:
public class test
{
public static void main(String[] args) throws Exception
{
DBOper db = new DBOper();//DBOper就是我建的数据库访问类
String server = "localhost";
String dbname = "haier";
String user = "root";
String pwd = "123456";

if(db.getConn(server,dbname,user,pwd) != null)
{
System.out.println("link succeed");
}
}
}
运行的结果是:link succeed
它意味着确实是可以连接上数据库的,自建的数据库访问类中的访问数据库的方法是管用的。数据的驱动确实加载了,并且是可以找到那个com.mysql.jdbc.Driver类的。可是为什么在servlet中调用访问数据库的方法是却抛出了异常呢?求各位高手帮忙解决,不胜感激。
再附上那个自建的数据库访问类中的访问数据库的方法的代码:
public Connection getConn(String server,String dbname,String user,String pwd) throws Exception
{
String DRIVER = "com.mysql.jdbc.Driver";
String URL = "jdbc:mysql://"+server+":3306/"+dbname+"?user="+user+"&password="+pwd;

Class.forName(DRIVER).newInstance();
conn = DriverManager.getConnection(URL);
return conn;
}

[解决办法]
把mysql驱动的.jar文件,拷到WEB-INF/lib目录下
[解决办法]
web项目要把jar文件拷贝到lib目录下,不能引用本地jar文件的路径,因为部署到服务器上就找不到这些路径了!~
[解决办法]
把jar文件拷贝到lib目录下 然后build path
[解决办法]
拷贝到tomcat/lib下
[解决办法]
com.mysql.jdbc.Driver 很明显驱动没有加到classpath中,如果添加了,那就看看你的驱动包,展开JAR文件看看com.mysql.jdbc.Driver在这个路径下有无这个类,有肯能是你的驱动包有问题。
[解决办法]

Java code
    public static Connection getConnection() {    Connection conn = null;    try {        Class.forName("com.mysql.jdbc.Driver");        conn = DriverManager                .getConnection(                        "jdbc:mysql://localhost:3306/dbname,                            "root", "pwd");    } catch (Exception e) {        e.printStackTrace();    }    return conn;    }测试类:    public static void main(String[] args) {    System.out.println(getConnection());    }
[解决办法]
很明显的包没加进去
WEB-INF/lib下要有
tomcat/lib下也要有(我自己做的时候从来不管这里- -!其实原因我也不搞不清楚,反正每次把包复制到WEB-INF/lib下就OK了)
[解决办法]
问题解决?

热点排行