import java.sql.*;
public class DBConnection
{
private Connection conn;
public DBConnection()
{
this.connect();
}
public boolean connect()
{
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:414;DatabaseName=Register_Login";
String user="sa";
String password="";
conn=DriverManager.getConnection(url,user,password);
}catch(Exception e){
System.out.println("connect db error:"+e.getMessage());
return false;
}
return true;
}
public static void main(String args[])
{
try{
DBConnection db=new DBConnection();
db.connect();
}catch(Exception e){
e.printStackTrace();
}
}
}
运行结果:
connect db error:com.microsoft.jdbc.sqlserver.SQLServerDriver
connect db error:com.microsoft.jdbc.sqlserver.SQLServerDriver

解决方案 »

  1.   

    com.microsoft.jdbc.sqlserver.SQLServerDriver 没有驱动包吧。
      

  2.   

    你用的数据库sql吧端口是1433吧还有就是把jdbc.rar包导入,这样应该可以了。
      

  3.   

    java连接sql貌似要下载专门的驱动,好像是微软为java开发的jdbc驱动,不知道是不是,LZ再搜搜吧。
      

  4.   

    catch(Exception e){
    System.out.println("connect db error:"+e.getMessage());
    return false;

    别用e.getMessage())
    直接e.printStackTrace()!!!!!!大家更好找错误。可能的原因:
    1.jdbc没引入或引入错误
    2.没打补丁
    3.URL错误(现在的端口不是默认端口,可能还有别的)
    4.用户名密码错误
      

  5.   

    是驱动加载出现异常   你用解压包打开方式看看是不是驱动字符串出现错误  可能是com.microsoft.sqlserver.jdbc.SQLServerDriver因为有些驱动包是不同的,看你的是2000数据库驱动,要是不行的话看一下端口  打开SQLServer 配置管理器进行设置  默认是1433 所有都应该设为1433 
      

  6.   

    端口是414吗?如果没有修改,sqlserver的默认端口是1433
      

  7.   

    加载驱动失败,你加载一下jar包试试!
      

  8.   

    我刚刚试着去掉System.out.println("connect db error:"+e.getMessage());语句,运行后只显示Process completed.是否OK?
      

  9.   

    e.getMessage()改为e.printStackTrace()后运行结果如下
    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 DBConnection.connect(DBConnection.java:12)
        at DBConnection.<init>(DBConnection.java:7)
        at DBConnection.main(DBConnection.java:26)
    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 DBConnection.connect(DBConnection.java:12)
        at DBConnection.main(DBConnection.java:27)
    falseProcess completed.
      

  10.   

    java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver 驱动jar包没有引入工程或引入错误或版本不对。另外sqlserver 据说还要打补丁
    总之就是jdbc驱动包不对。
      

  11.   

    你用的sql server 2000,就要上网下载sql server 2000的驱动包,有三个的。然后添加进你的项目中。
      

  12.   

    添加 额外 jar包 就可以了
      

  13.   

    添加驱动包有很多种,看你用的是什么工具
      如果是MyEclipse 你就选中工程名单击右键选中Build Path 然后选中Add External 找到你驱动包
    选中 再点击打开就加进来了
      

  14.   

    我现在的情况变成了:Error establishing socket.请问url中用TCP/IP的端口号还是tomcat的端口号
      

  15.   

    你在命令提示符里输入  netstat -a 找一下看有没有1433的端口
      

  16.   

    没有 但我在SQLSERVER中设置了啊
      

  17.   

    怎么解决的啊 我的是2008 也出现这个问题 这样写Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    conn = DriverManager.getConnection
    ("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=football;",user,pwd);有错java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.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 infrastruture.DBConnection.getConnection(DBConnection.java:21)
    at infrastruture.DBConnection.main(DBConnection.java:38)
     和楼主一样的错 这样写Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                conn = java.sql.DriverManager.getConnection("jdbc:odbc:FootBall")就对着 但是查询的时候不能进行模糊查询啊