sorry!!Exception in thread "main" java.lang.ClassNotFoundException: con.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at sqldb.DBTester.main(DBTester.java:64)
Java Result: 1
生成成功(总时间:0 秒)
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at sqldb.DBTester.main(DBTester.java:64)
Java Result: 1
生成成功(总时间:0 秒)
这段代码是对着书上316页写的。
我想实现用JAVA连接数据库,
这之前以按照书上的要求用以下语句设了mysql数据库的用户
use mysql;
grant all privileges on *.* to dbuser@localhost identified by '1234' with grant option;
高分求答。我用的是netBean,jdk 1.6,也下载了mysql-connector-java-5.1.7-bin.jar,书上说要把这个东西放在项目中的lib下,所以我也把它放到了
这个你引导工程里面。。
放到了D:\java\WebApplication2\web\WEB-INF\lib下面(事实上lib文件夹并不存在,所以我得自己创建这个文件夹)
然后运行以下源程序,结果还是错。结果如下:
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at DBTester.main(DBTester.java:22)
Java Result: 1
生成成功(总时间:1 秒)
然后把mysql-connector-java-5.1.7-bin.jar
放到了D:\java\WebApplication2\web\WEB-INF下面,运行时的结果如下:
deps-jar:
Compiling 1 source file to D:\java\WebApplication2\build\web\WEB-INF\classes
D:\java\WebApplication2\src\java\DBTester.java:25: 软件包 com.mysql.jdbc 不存在
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
1 错误
D:\java\WebApplication2\nbproject\build-impl.xml:323: The following error occurred while executing this line:
D:\java\WebApplication2\nbproject\build-impl.xml:149: Compile failed; see the compiler error output for details.
生成失败(总时间:0 秒)
然后我在“库”里导入mysql-connector-java-5.1.7-bin.jar,便如愿运行。源代码:
/*
* DBTester.java
*
* Created on 2008年11月11日, 下午4:01
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
import java.sql.*;public class DBTester{
public static void main(String args[])throws Exception{
Connection con;
Statement stmt;
ResultSet rs;
//加载驱动器,下面的代码为加载MySQL驱动器
Class.forName("com.mysql.jdbc.Driver");
//注册MySQL驱动器
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//连接到数据库的URL
String dbUrl = "jdbc:mysql://localhost:3306/STOREDB";
String dbUser="dbuser";
String dbPwd="1234";
//建立数据库连接
con = java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
//创建一个Statement对象 stmt = con.createStatement();
//增加新记录
String name1=new String("小王".getBytes("GB2312"),"ISO-8859-1");
String address1=new String("上海".getBytes("GB2312"),"ISO-8859-1");
stmt.executeUpdate("insert into CUSTOMERS (NAME,AGE,ADDRESS) VALUES ('"+name1+"',20,'"+address1+"')"); //查询记录
rs= stmt.executeQuery("SELECT ID,NAME,AGE,ADDRESS from CUSTOMERS");
//输出查询结果
while (rs.next()){
long id = rs.getLong(1);
String name = rs.getString(2);
int age = rs.getInt(3);
String address = rs.getString(4);
//字符编码转换
if(name!=null)name=new String(name.getBytes("ISO-8859-1"),"GB2312");
if(address!=null)address=new String(address.getBytes("ISO-8859-1"),"GB2312");
//打印所显示的数据
System.out.println("id="+id+",name="+name+",age="+age+",address="+address);
}
System.out.println("ddddddddddddddddddddddddddddddddddddddd");
//删除新增加的记录
stmt.executeUpdate("delete from CUSTOMERS where name='"+name1+"'"); //释放相关资源
rs.close();
stmt.close();
con.close();
}
}
/****************************************************
* 作者:孙卫琴 *
* 来源:<<Java网络编程精解>> *
* 技术支持网址:www.javathinker.org *
***************************************************/
按照你的方法我从新把mysql-connector-java-5.1.7-bin.jar
挂到D:\java\WebApplication2\web\WEB-INF 下
启动服务器,如下:
Using CATALINA_BASE: C:\Documents and Settings\载成\.netbeans\5.5.1\apache-tomcat-5.5.17_base
Using CATALINA_HOME: D:\Program files\Program_Tool\JAVA\NetBeanS_5.5.1\enterprise3\apache-tomcat-5.5.17
Using CATALINA_TMPDIR: C:\Documents and Settings\载成\.netbeans\5.5.1\apache-tomcat-5.5.17_base\temp
Using JRE_HOME: D:\Program files\Program_Tool\JAVA\jdk1.6.0_07
2008-11-12 9:45:19 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Program files\Program_Tool\JAVA\jdk1.6.0_07\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;F:\oracle\product\10.1.0\Db_1\bin;F:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin\client;F:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;D:\Program files\Program_Tool\Rational\common;C:\Program Files\MySQL\MySQL Server 5.0\bin;D:\Program files\Program_Tool\JAVA\jdk1.6.0_07\bin;D:\Program files\Player\stome\Codec;D:\Program files\Player\stome
2008-11-12 9:45:19 org.apache.coyote.http11.Http11BaseProtocol init
信息: Initializing Coyote HTTP/1.1 on http-8084
2008-11-12 9:45:19 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 953 ms
2008-11-12 9:45:19 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2008-11-12 9:45:19 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/5.5.17
2008-11-12 9:45:19 org.apache.catalina.core.StandardHost start
信息: XML validation disabled
2008-11-12 9:45:21 org.apache.coyote.http11.Http11BaseProtocol start
信息: Starting Coyote HTTP/1.1 on http-8084
2008-11-12 9:45:21 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2008-11-12 9:45:21 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/62 config=null
2008-11-12 9:45:21 org.apache.catalina.storeconfig.StoreLoader load
信息: Find registry server-registry.xml at classpath resource
2008-11-12 9:45:21 org.apache.catalina.startup.Catalina start
信息: Server startup in 2031 ms就弹出一个“jsp page javaserver faces 欢迎页”
不过很奇怪的是它并没有运行我的程序。
于是我手动运行我的程序。
然后出现以下信息:
Compiling 1 source file to D:\java\WebApplication1\build\web\WEB-INF\classes
D:\java\WebApplication1\src\java\DBTester.java:11: 软件包 com.mysql.jdbc 不存在
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
1 错误
D:\java\WebApplication1\nbproject\build-impl.xml:323: The following error occurred while executing this line:
D:\java\WebApplication1\nbproject\build-impl.xml:149: Compile failed; see the compiler error output for details.
生成失败(总时间:0 秒)我觉得关键是这句
D:\java\WebApplication1\src\java\DBTester.java:11: 软件包 com.mysql.jdbc 不存在
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
1 错误
它所对应的源程序是:
DriverManager.registerDriver(new com.mysql.jdbc.Driver());项目树如下:
WebApplication1
|
-web页
|
-META-INF
-WEB-INF
|
-faces-config.xml
-mysql-connector-java-5.1.7-bin.jar
|
....
-com
|
-mysql
|
jdbc
|
.....
Driver.class
现在又发觉一个很有趣的问题:在这个connector-java-5.1.7-bin.jar树下的所有class类都被netbean打上红色的X,是不是这里有什么错误?
放到D:\java\WebApplication2\web\WEB-INF\lib目录下