我的代码如下:package javastudy;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
class CourseAppl 
{
private Connection con;
private String url;
private String serverName;
private String portNumber;
private String databaseName;
private String userName;
private String password;
private String sql;
/**
 * @param args
 */
CourseAppl()
{
url = "jdbc:microsoft:sqlserver://";
serverName = "localhost";
portNumber="1433";
databaseName = " test";
userName = " sa";
password = " sa";
} // TODO Auto-generated method stub
private String getConnectionUrl()
{
return url+serverName+":"+portNumber+";databaseName = "+databaseName+";";
}
private Connection getConnection()
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = DriverManager.getConnection(getConnectionUrl(),userName,password);
if(con!=null)
{
System.out.println("连接成功");
}
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("getConnection()内的错误跟踪:"+e.getMessage());
}
return con; 
}
public void display()
{
try
{
con=getConnection();
PreparedStatement pstmt = con.prepareStatement("UPDATE friends SET salary = ? WHERE name like ?");
pstmt.setInt(1, 10000);
pstmt.setString(2, "李四");
pstmt.executeUpdate();
System.out.println("记录已经更新");
Statement s = con.createStatement();
String sql = "SELECT * from friends";
ResultSet rs = s.executeQuery(sql);
while (rs.next())
{
System.out.println("");
System.out.println(rs.getInt(1)+" ");
System.out.println(rs.getInt(5));
}
}
catch(SQLException se)
{
se.printStackTrace();
}
}
public static void main(String[] args)
{
CourseAppl retObj = new CourseAppl();
retObj.display();
}
}
我也不知道哪里有问题。eclipse给我报错信息如下: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 javastudy.CourseAppl.getConnection(CourseAppl.java:40)
at javastudy.CourseAppl.display(CourseAppl.java:60)
at javastudy.CourseAppl.main(CourseAppl.java:84)
getConnection()内的错误跟踪:com.microsoft.jdbc.sqlserver.SQLServerDriver
Exception in thread "main" java.lang.NullPointerException
at javastudy.CourseAppl.display(CourseAppl.java:61)
at javastudy.CourseAppl.main(CourseAppl.java:84)
请教高人帮我看看,解答一下

解决方案 »

  1.   

    从错误看是在你的程序包里没有找到指定的数据库驱动类,我想知道你是连接sql server 2005还是sql server 2000,这两者的JDBC驱动程序是不一致的,加载的的类名称也不一样。你可以下载两者的JDBC驱动。分别有for 2000和for 2005的。最好是匹配使用,微软说是可以用2005的JDBC驱动连sql server 2000,我用过会报错。
      

  2.   

    2000的或者2005的JDBC都可以用,只是连接的参数不一样而已.
    LZ用的应该是2000的,也就是有3个JAR的那个,设置好驱动的路径应该可以了.另外3个JAR的那个JDBC有很多BUG, 建议用最新的.具体的连接参数,请参与其附有的说明.
      

  3.   

    请问在eclipse里面哪里设置呢?
      

  4.   

    在你的项目中右键-->Properties-->Java Build Path-->Libraries-->add External JARs
    选择所需的jdbc driver即可
      

  5.   

    把驱动包加入
    下面这句也有问题,看一下,databasename 大小写,还有在结尾多个;
    url+serverName+":"+portNumber+";databaseName = "+databaseName+";";
      

  6.   

    直接把驱动COPY到工程的LIB目录.F5一下就OK.
      

  7.   

    java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    如所有楼上所说 SQLServer的驱动类没找到 或路径配错或没有加入
    加入的方法经由ide加入或直接放入ClassPath
      

  8.   

    驱动没有加载吧,本人是把第三方java包统一放在工程的lib目录下,然后按5楼的设置放法
      

  9.   

    SQL 的驱动包没加载. java.sql.* 包提供的只是一堆空的接口,具体的实现由各个DB厂家提供. Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");所以只要把,SQL SERVER 的JAR 文件加到CLASSPATH即可.  5楼说的比较详细了.
      

  10.   

    导入数据库提供的java连接的 包 因为找不到:com.microsoft.jdbc.sqlserver.SQLServerDriver
    导入方法 参照5楼
      

  11.   

    con = DriverManager.getConnection(getConnectionUrl(),userName,password);
    你这行代码不对吧!!
    getConnectionUrl() 这个方法你定义的并不是 static的
    这么调用不会 返回你要返回的结果的
    把getConnectionUrl() 改写成 静态的 试试