首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

痛苦的一天 完全没有连接上 数据库 望高手解答 多谢了

2011-12-15 
痛苦的一天 完全没有连接上 数据库 望高手解答 谢谢了package myclassimport java.sql.*public class Jd

痛苦的一天 完全没有连接上 数据库 望高手解答 谢谢了
package myclass;

import java.sql.*;

public class Jdbc{ 
  public Connection getConnection() 
  { 
  String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
  String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=stuDB";
  Connection con=null;
  Statement st;
  ResultSet rs;
  try {  
  Class.forName(driver); 
  con=DriverManager.getConnection(url,"sa","");
  }
  catch(ClassNotFoundException ex){  
  System.out.println("DriverError");  
  ex.printStackTrace();  
  }  
  catch(SQLException ex){  
  System.out.println( "Connection error");  
  ex.printStackTrace();  
  }  

  return con ;  

  }
 
}
-----
package myclass;

import java.sql.*;

public class Jdbctest{
Jdbc con=new Jdbc();
  voiddispaly(){

try{
Connection cn = con.getConnection();
String sql="Select * from SC";
Statement s = cn.createStatement();
ResultSet rs = s.executeQuery(sql);
while(rs.next()){
System.out.print(rs.getString(1));
System.out.print(rs.getString(2));
System.out.print(rs.getString(3));

}
}
catch(SQLException ce){
System.out.print(ce);
}

}


public static void main(String [] args){
Jdbctest jt = new Jdbctest();
jt.dispaly();
}
  }
------
报错
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
Connection errorat com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)
at myclass.Jdbc.getConnection(Jdbc.java:15)
at myclass.Jdbctest.dispaly(Jdbctest.java:10)
at myclass.Jdbctest.main(Jdbctest.java:30)
Exception in thread "main" java.lang.NullPointerException
at myclass.Jdbctest.dispaly(Jdbctest.java:12)
at myclass.Jdbctest.main(Jdbctest.java:30)
----
我是在 eclipse 下写的代码 3个驱动也装在了D:\apache-tomcat-5.5.23\common\lib下 但是就是连接不上去 找了一天了 没找到 我用的是SQL2000 我基本上都是用最新的补丁了
请问大家 这个问题是出在那里啊 谢谢了

[解决办法]
我也遇到同样的错误,关注中,希望高手来解答!
[解决办法]
装了三个驱动,还要打sp3或sp4补丁~
[解决办法]
确定装了补丁的话(运行了解压后的setup.bat文件),服务器端口配置都没有错的话,要是还不行,你就直接把那三个驱动包导入
到eclipse中右击工程名-->build path-->config build path-->libraies-->add jrefile(你的那三个驱动包)
[解决办法]
加驱动,有时候ms提供的驱动不行的话尝试下第三方的驱动。
然后给sql打补丁
------解决方案--------------------


Class.forName(driver).newInstance();
给你的接口开辟空间
Statement st =null; 
 ResultSet rs = null;
最后关闭资源:
 

[解决办法]
这个是没有打补丁的问题,或者你打了,但是没有成功!
1.路径问题:
你必须配置你的classpath路径否则他在编译时会抱错
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at Test.main(Test.java:11) 
你的路径应该是这样配置:你可以在在安装jdbc驱动后看那里的帮助文档(是英文的);
//这里指在xp系统下
 classpath = ,;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;
可千万不要写错哟!
 2.sp补丁包问题:
如果你在编译时出现下列问题 那么你需要下载并安装sp3补丁包
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis
hing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Test.main(Test.java:14) 
3.权限问题
如果你出现类似这样的问题
类实例化成功!
slkdjf
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'king' 登录失败。
原因: 未与信任 SQL Server 连接相关联。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at Testj.main(Testj.java:14)

原困是未设置SQL SERVER登录认证模式为混合认证模式,因为SQL SERVER默认安装后认证模式为WINDOWS认证模式,从而导致出错。
解决方法:启动SQLSERVER企业管理器,选择要进行认证模式设置的服务器。右击该服务器,在弹出菜单中选择属性,SQL SERVER将
弹出属性对话框在属性对话框中选择安全性选项,在身份验证处选择“SQL Server和Windows”,然后确定。

热点排行
Bad Request.