同样的操作,一个可以连接数据库,一个不可以?

J2EE 码拜 10年前 (2015-04-18) 1404次浏览 0个评论
 

如下同样的代码,A项目下可以连接数据库,而在另外一个项目却不能连接数据库,都在我同一台电脑上,项目也都在F:\JavaProject00下
A:F:\JavaProject00\StudentManangement下的可以
B:F:\JavaProject00\cyglxt 下面的不可以连接

我是新手,不知道怎么判断,到底可能是什么原因,请指教

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class gg {
	Connection cn=null;
	PreparedStatement ps=null;
	ResultSet rs=null;
	public static void main(String[] args) {
		new gg();
	}
	public gg(){
		try {
//			Class.forName(driver);
//			cn=DriverManager.getConnection(url,user,passwd);Class.forName("com.mysql.jdbc.Driver");
			Class.forName("com.mysql.jdbc.Driver");
			cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/stu","root","root");
			} 
		catch (Exception e){}
		System.out.print(cn);
	}
}
同样的操作,一个可以连接数据库,一个不可以?
是怎么个不能连,你看看控制台报的什么异常。
同样的操作,一个可以连接数据库,一个不可以?
没有错误提示  怎么看?
同样的操作,一个可以连接数据库,一个不可以?
引用 1 楼 wlwlwlwl015 的回复:

是怎么个不能连,你看看控制台报的什么异常。

打印出来是NULL
而另外一个可以连接的显示:com.mysql.jdbc.ConnectionImpl@1f5d386

同样的操作,一个可以连接数据库,一个不可以?
引用 2 楼 ch656409110 的回复:

没有错误提示  怎么看?

怎么让显示 错误信息

同样的操作,一个可以连接数据库,一个不可以?
引用 3 楼 longyungood 的回复:
Quote: 引用 1 楼 wlwlwlwl015 的回复:

是怎么个不能连,你看看控制台报的什么异常。

打印出来是NULL
而另外一个可以连接的显示:com.mysql.jdbc.ConnectionImpl@1f5d386

估计是直接进了catch块,你在catch里面写一句e.printStack(). 看看.

同样的操作,一个可以连接数据库,一个不可以?
引用 5 楼 wlwlwlwl015 的回复:
Quote: 引用 3 楼 longyungood 的回复:
Quote: 引用 1 楼 wlwlwlwl015 的回复:

是怎么个不能连,你看看控制台报的什么异常。

打印出来是NULL
而另外一个可以连接的显示:com.mysql.jdbc.ConnectionImpl@1f5d386

估计是直接进了catch块,你在catch里面写一句e.printStack(). 看看.

通过e.printStackTrace();显示的结果是at gg.main(gg.java:11)

同样的操作,一个可以连接数据库,一个不可以?
引用 5 楼 wlwlwlwl015 的回复:
Quote: 引用 3 楼 longyungood 的回复:
Quote: 引用 1 楼 wlwlwlwl015 的回复:

是怎么个不能连,你看看控制台报的什么异常。

打印出来是NULL
而另外一个可以连接的显示:com.mysql.jdbc.ConnectionImpl@1f5d386

估计是直接进了catch块,你在catch里面写一句e.printStack(). 看看.

发现是这样的错误
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at gg.<init>(gg.java:15)
at gg.main(gg.java:11)

同样的操作,一个可以连接数据库,一个不可以?
引用 7 楼 longyungood 的回复:
Quote: 引用 5 楼 wlwlwlwl015 的回复:
Quote: 引用 3 楼 longyungood 的回复:
Quote: 引用 1 楼 wlwlwlwl015 的回复:

是怎么个不能连,你看看控制台报的什么异常。

打印出来是NULL
而另外一个可以连接的显示:com.mysql.jdbc.ConnectionImpl@1f5d386

估计是直接进了catch块,你在catch里面写一句e.printStack(). 看看.

发现是这样的错误
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at gg.<init>(gg.java:15)
at gg.main(gg.java:11)

少包,把驱动包加到依赖里去

同样的操作,一个可以连接数据库,一个不可以?
引用 7 楼 longyungood 的回复:
Quote: 引用 5 楼 wlwlwlwl015 的回复:
Quote: 引用 3 楼 longyungood 的回复:
Quote: 引用 1 楼 wlwlwlwl015 的回复:

是怎么个不能连,你看看控制台报的什么异常。

打印出来是NULL
而另外一个可以连接的显示:com.mysql.jdbc.ConnectionImpl@1f5d386

估计是直接进了catch块,你在catch里面写一句e.printStack(). 看看.

发现是这样的错误
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at gg.<init>(gg.java:15)
at gg.main(gg.java:11)

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

把mysql的jar包添加到类路径就好了。

同样的操作,一个可以连接数据库,一个不可以?
引用 9 楼 wlwlwlwl015 的回复:
Quote: 引用 7 楼 longyungood 的回复:
Quote: 引用 5 楼 wlwlwlwl015 的回复:
Quote: 引用 3 楼 longyungood 的回复:
Quote: 引用 1 楼 wlwlwlwl015 的回复:

是怎么个不能连,你看看控制台报的什么异常。

打印出来是NULL
而另外一个可以连接的显示:com.mysql.jdbc.ConnectionImpl@1f5d386

估计是直接进了catch块,你在catch里面写一句e.printStack(). 看看.

发现是这样的错误
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at gg.<init>(gg.java:15)
at gg.main(gg.java:11)

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

把mysql的jar包添加到类路径就好了。

我在路径里面已经添加了%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Common Files\Adobe\AGL;F:\phpstudy\phpStudy\MySQL\bin;F:\sdk\jdk\bin;F:\sdk\mysql-connector-java-5.1.7-bin.jar;

否则,另外一个项目下面应该也不可能连接成功吧

同样的操作,一个可以连接数据库,一个不可以?
终于搞定了,原来是没有进行下面的操作
mysql-connector-java-5.1.6-bin要导入工程中

eclipse  中只要右击工程文件夹属性选项-Java  Build Path-Libraries-Add Extenal JARs 添加即可

同样的操作,一个可以连接数据库,一个不可以?
40分
引用 11 楼 longyungood 的回复:

终于搞定了,原来是没有进行下面的操作
mysql-connector-java-5.1.6-bin要导入工程中

eclipse  中只要右击工程文件夹属性选项-Java  Build Path-Libraries-Add Extenal JARs 添加即可

右键jar包  add build path  就是添加到类路径, 你这样也行。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明同样的操作,一个可以连接数据库,一个不可以?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!