日期:2014-05-20  浏览次数:20742 次

用驅動程序連接sqlserver時的配置問題!
要用sqljdbc.jar(227kb)這一個驅動文件訪問jdbc:sqlserver://192.168.0.168;databaseName=CSDN  
這個數據庫
用winrar打開sqljdbc.jar\com\microsoft\sqlserver\jdbc下有若干類,
其中有SQLServerDriver.class,
光這一個驅動就夠用了吧?sqljdbc.jar保存在c盤,環境變量-系統變量-classpath裡加了c:\sqljdbc.jar,結果運行程序總是出錯。
程序如下:
package   sql;
import   java.sql.*;
public   class   Load   {
public   static   void   main(String   args[]){

String     sDBDriver= "com.microsoft.jdbc.sqlserver.SQLServerDriver ";
try{
Class.forName(sDBDriver);

String   sConnStr= "jdbc:sqlserver://192.168.0.117;databaseName=Northwind ";
String   name= "sa ";
String   pwd= "admin ";
Connection   connWeb=DriverManager.getConnection(sConnStr,name,pwd);
Statement   st=connWeb.createStatement();  
String   query= "select   *   ";
ResultSet   rs=st.executeQuery(query);
System.out.println(rs.toString());
}
catch(Exception   e)
{
e.printStackTrace();
}
}
}
運行java   Load
錯誤如下:
java.lang.ClassNotFoundException:   com.microsoft.jdbc.sqlserver.SQLServerDriver
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:268)
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:164)
at   sql.Load.main(Load.java:8)
怎麼辦?



------解决方案--------------------
ms sqlserver 的驱动jar包好像不只一个.
------解决方案--------------------
你们什么老师。。。误人子弟。从这一句com.microsoft.jdbc.sqlserver.SQLServerDriver可知你用的应该就是微软的jdbc驱动而不是第三方的驱动,而微软的jdbc驱动有三个:
msbase.jar,mssqlserver.jar,msutil.jar
去百度搜一下会有很多。。。
------解决方案--------------------
你别放到C盘了,放到你的jdk的classpath里面去,比方说.%JAVA_HOME%\lib\sqljdbc.jar;试一下,如果还不行的话,可能就是楼上的说得
------解决方案--------------------
可能的原因
1.SQL SERVER是否打上了sp4的补丁包
2.3个jar是否在classpath中
3.是不是防火墙把1433端口禁用了
4.SQL SERVER是不是混合模式