我试用的操作系统是 XP Home,数据库是 sql 2000,编写了个测试数据连接的程序,但是不管怎么也执行不了,编译可以通过,以下是所有源代码,请高手指点:import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet; 
import java.sql.DriverManager;
import java.sql.Date;
import java.util.Properties;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.FileNotFoundException;public class GetConn
{
private Connection con;
private String url;//数据库URL
private String userName;//登录数据库用户名
private String password;//用户密码
private String strDriver;
public static void main(String[] args)
{ GetConn dbConn = new GetConn();
dbConn.getProperty();
Connection cnn= dbConn.getConnection();
}
/**
 * 返回到数据库的一个连接,在一个系统或类中,如果经常进行数据库的相关操作
 * 会把建立数据库的连接作为一个单独的方法。
 */
public Connection getConnection()
{
try
{ con = DriverManager.getConnection(url, userName, password);
}
catch(SQLException e)
{
e.printStackTrace();
}

return con;
}

/**
 * 读取属性配置文件
 */
public void getProperty()
{
Properties prop = new Properties();
try
{
FileInputStream in = new FileInputStream("Drivers.properties");
prop.load(in);

String driver = prop.getProperty("drivers");
if(driver != null)
System.setProperty("jdbc.drivers", driver);
url = prop.getProperty("url");
userName = prop.getProperty("user");
password = prop.getProperty("password");
strDriver=driver;
}
catch(FileNotFoundException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}//属性文件
drivers=com.microsoft.jdbc.sqlserver.SQLServerDriver
url=jdbc:microsoft:sqlserver://xyz:1433;DatabaseName=java
user=sa
password=123
//编译后通过java GetConn 执行提示以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError:com/microsoft/util/utilDummyPrintWriter
at java.lang.Class.forName0(Native Method)
at java.lang.class.forName(Unknown Source)
at java.sql.DriverManager.loadInitialDrivers(unknown Source)
at java.sql.DriverManager.getConnection(unknown Source)
at GetConn.getConnection(GetConn.java:37)搞不懂是哪里出了问题?

解决方案 »

  1.   

    public Connection getConnection() throws Exception
    {
    Class.forName(drivers);
             return DriverManager.getConnection(url, userName, password); 
             }
      

  2.   

    at java.sql.DriverManager.loadInitialDrivers(unknown Source)
    at java.sql.DriverManager.getConnection(unknown Source)
    at GetConn.getConnection(GetConn.java:37)装载驱动时出错,试用Class.forName(strDriver)看是否已包含了正确的驱动
      

  3.   

    加上Class.forName(strDriver) 一句后编译都无法通过
      

  4.   

    再确认一下
      msbase.jar   
      mssqlserver.jar   
      msutil.jar   
      上面三个类放在工程下,或classpath里面。我应该用什么驱动才可以呢
      

  5.   

    我安装的java版本是 j2sdk1.4.2 ,但执行java -version 是显示的版本是
    1.5.06-06
    这是什么意思,是不是跟这个有关
    请各位帮帮忙?
      

  6.   

    我安装的java版本是 j2sdk1.4.2 ,但执行java -version 是显示的版本是
    1.5.06-06
    这是什么意思,是不是跟这个有关
    请各位帮帮忙?看你环境变量中path 是哪个jdk版本在前面
      

  7.   

    加上Class.forName(strDriver) 一句后编译都无法通过报什么异常?
      

  8.   

    引用:“加上Class.forName(strDriver) 一句后编译都无法通过。”你在public Connection getConnection()这个方法中,都没有传入strDriver这个参数,当然无法通达编译啦。
      

  9.   

    public Connection getConnection()
    {
    try
    {con = DriverManager.getConnection(url, userName, password);
    }
    catch(SQLException e)
    {
    e.printStackTrace();
    }return con;
    }
    这样写程序怎么知道去要用什么数据库
    把drivers加到里面去
      

  10.   

    public Connection getConnection()
    {
    try
    {con = DriverManager.getConnection(url, userName, password);
    }
    catch(SQLException e)
    {
    e.printStackTrace();
    }return con;
    }
    这样写程序怎么知道去要用什么数据库
    把drivers加到里面去
    *******************************************************DriverManager会根据url着合适的驱动,如果不存在合适驱动的话会抛出异常