我现在用的是SQL Server2008,现在我用纯Java驱动方式,想连接数据库,然后就出现如下提示
无法找到驱动类
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:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at S2jsp.sg.ch03.ConnectionManager.GetConnection(ConnectionManager.java:26)
        at S2jsp.sg.ch03.FirstLevelTitleDBJava.main(FirstLevelTitleDBJava.java:25)
Exception in thread "main" java.lang.NullPointerException
        at S2jsp.sg.ch03.FirstLevelTitleDBJava.main(FirstLevelTitleDBJava.java:26)
Java Result: 1那么从哪下载相应的JDBC驱动程序呢,下载后怎样引入的工程中呢,还有JDBC驱动类名称和数据库连接字符串是怎么写呢,请回答一下

解决方案 »

  1.   

    建议你用Mysql,占内存小,又是小公司开发常用数据库
      

  2.   

    下载地址http://www.microsoft.com/downloads/details.aspx?FamilyID=99b21b65-e98f-4a61-b811-19912601fdc9&displaylang=zh-cn
    安装和使用:http://blog.csdn.net/net_lover/archive/2009/02/04/3861362.aspx
      

  3.   

    现在其他问题解决了,我也成功导入了,现在问题就是怎样写数据库连接字符串,我的服务器名称是MICROSOF-AF5E7B,导入的是sqljdbc.jar,数据库名称是news
      

  4.   

    在微软官网下载了sqljdbc_2.0.1803.100_chs.exe驱动程序包,解压后得到两个jar包,选择支持JDK1.6的sqljdbc4.jar,它可以连接到 SQL Server 2008,但不完全支持 SQL Server 2008 中新引入的数据类型或其他功能。
      

  5.   

    连接的写法:
    jdbc:sqlserver://hostip:port;databaseName=数据库名称;user=用户名;password=密码;
      

  6.   

    我用了这个连接方法,又出现如下问题了
    com.microsoft.sqlserver.jdbc.SQLServerException: 端口号 port 无效。
            at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:170)
            at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:580)
            at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841)
            at java.sql.DriverManager.getConnection(DriverManager.java:582)
            at java.sql.DriverManager.getConnection(DriverManager.java:185)
            at S2jsp.sg.ch03.ConnectionManager.GetConnection(ConnectionManager.java:27)
            at S2jsp.sg.ch03.FirstLevelTitleDBJava.main(FirstLevelTitleDBJava.java:25)
    java.lang.NullPointerException
            at S2jsp.sg.ch03.FirstLevelTitleDBJava.main(FirstLevelTitleDBJava.java:26)
      

  7.   

    你的端口号是多少?怎么看着这错误像是你直接把port这4个字母当端口。
    应该写成你实际的sql server的运行端口吧
      

  8.   

    public static Connection getConn() {
    Connection conn = null;
    try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=CYZ";
    String USER = "sa"; // 根据你自己设置的数据库连接用户进行设置
    String PASSWORD = "123"; // 根据你自己设置的数据库连接密码进行设置
       conn = DriverManager.getConnection(URL, USER, PASSWORD);
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return conn;
    }
      

  9.   

    恩,现在端口号应该写对了,但又有这样的错误com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'sa'.
    难道数据库中没有sa这个超级用户吗,我创建数据库的时候没创建用户,那么怎么创建呢
      

  10.   

    默认的有sa,是在登录sqlserver时不要选择windows默认登录,而是混合认证的那个
      

  11.   

    安装了sql server 开始程序里应该有SQL Server Management吧
    通过这个管理工具可以建立登陆用户
    1.创建使用 Windows 身份验证用户
    2.创建使用 SQL Server 身份验证
    你要不会 就照着下面这个教程来
    http://space.itpub.net/16436858/viewspace-503156
      

  12.   

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;public class DBCon {

    private static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private static String url="jdbc:sqlserver://localhost:1433;databasename=xxDB";
    private static String user="sa";
    private static String pwd="sa";

    public static Connection getConnection(){
    try {
    Class.forName(driver);
    Connection con=DriverManager.getConnection(url, user, pwd);
    System.out.println("OK");
    return con;
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return null;
    }

    public static void closeConnection(Connection con){
    if(con!=null){
    try {
    con.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }

    public static void closeStatement(Statement stm){
    if(stm!=null){
    try {
    stm.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }

    public static void closeResultSet(ResultSet rs){
    if(rs!=null){
    try {
    rs.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }

    public static void main(String[] args) {
    getConnection();
    }
    }]根据实际情况改下url用户名密码
      

  13.   

    常用的语法是Class.forName();,当然还有其他方式。
      

  14.   

    我用了这种方法登录,但是还是不行,现在出现了下面的错误提示,我只给出第一行:
    com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'sa'. Reason: The account is disabled.
    我现在感觉是不是我的SQL Server2008的问题,我的是Enterprise Evaluation版的,不知道是怎么回事?