我的源程序如下: import java.sql.*;
import javax.swing.*; class ConnectServer2 {
static Connection con = null;
public static boolean conn(String url, String username, String password) {
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
} catch(Exception e) {
e.printStackTrace();
return false;
}
try{
con = DriverManager.getConnection(url, username, password);
} catch(SQLException e) {
e.printStackTrace();
return false;
}
return true;
} public static boolean close() {
try{
con.close();
con = null;
} catch(SQLException e) {
return false;
}
return true;
} public static void main(String[] args) {
if(conn("jdbc: microsoft: sqlserver: //localhost: 1433; DatabaseName = xsgl", "sa", "")) {
JOptionPane.showMessageDialog(null, "数据库连接成功!");
close();
}
else {
JOptionPane.showMessageDialog(null, "数据库连接失败!");
}
}
} ----------------------------------------------------------------
编译通过
执行时出现如下提示: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
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 ConnectServer2.conn(ConnectServer2.java:8)
at ConnectServer2.main(ConnectServer2.java:33)
------------------------------------------------------------
我已经安装了SQL2000 JDBC的驱动SP4,还有把msbase.jar, mssqlserver.jar和msutil.jar这三个文件放到了jdk\jre\lib\ext目录下 我想知道为什么不能连接上数据库呢???
import javax.swing.*; class ConnectServer2 {
static Connection con = null;
public static boolean conn(String url, String username, String password) {
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
} catch(Exception e) {
e.printStackTrace();
return false;
}
try{
con = DriverManager.getConnection(url, username, password);
} catch(SQLException e) {
e.printStackTrace();
return false;
}
return true;
} public static boolean close() {
try{
con.close();
con = null;
} catch(SQLException e) {
return false;
}
return true;
} public static void main(String[] args) {
if(conn("jdbc: microsoft: sqlserver: //localhost: 1433; DatabaseName = xsgl", "sa", "")) {
JOptionPane.showMessageDialog(null, "数据库连接成功!");
close();
}
else {
JOptionPane.showMessageDialog(null, "数据库连接失败!");
}
}
} ----------------------------------------------------------------
编译通过
执行时出现如下提示: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
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 ConnectServer2.conn(ConnectServer2.java:8)
at ConnectServer2.main(ConnectServer2.java:33)
------------------------------------------------------------
我已经安装了SQL2000 JDBC的驱动SP4,还有把msbase.jar, mssqlserver.jar和msutil.jar这三个文件放到了jdk\jre\lib\ext目录下 我想知道为什么不能连接上数据库呢???
像很多IDE都需要把三方的包导入进去
一般的文本编辑工具的话,可以把包添加入classpath里
如果是web工程的话,需要把包放到lib文件夹下面
把jar放到你的classpath 里面才可以!在 cmd 里面输入
set看看输出的CLASSPATH 是否包含了这3个jar,如果没有。到环境变量里把它们加上去!
三个db文件放到了jdk\jre\lib\ext目录下 是可以连接的
也就是说调用这个方法的类的类加载器将会用于加载这个类。比如在类A中使用Class.forName加载类B,那么加载类A的类加载器将会用于加载类B,这样两个类的类加载器是同一个。
ConnectServer2调用的是System加载器,所以com.microsoft.jdbc.sqlserver.SQLServerDriver也会调用System加载器
你在jdk\jre\lib\ext需要Extension加载器,所以就出错了,所以必须放到classpath下面。可以结贴了
放入jdk\jre\lib\ext中的jar再编译时自动载入
当然这样会出现和jre\lib\ext冲突问题
不明lz情况
搞定后说明原因
怎么还是不行呢
像F:\jdk1.6.0_02\jre\lib\ext\msbase.jar头大了我
高手求助啊!!
就是大家说的 三个jar包 没有放到classpath环境变量下.
楼主网上 搜索下吧,解决方法很多.
ps:楼主用的什么IDE工具?