纯Java代码用建立ODBC数据源的方法连接SQLServer2008,连接失败提示信息“sun.jdbc.odbc.JdbcOdbcDriver

数据源已经建立并配置好了,并且测试成功。运行Java程序后,提示信息是
“数据库加载失败sun.jdbc.odbc.JdbcOdbcDriver”
Java代码如下:
package shujuku;
import java.sql.*;
public class JDBConnection {
private final String url="jdbc:odbc:sqlconnet";
private final String userName="sa";
private final String password="741852";
private Connection con=null;
//加载驱动
static {
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception ex){
System.out.println("数据库加载失败"+ex.getMessage());
}
}
//链接数据库
public boolean creatConnection(){
try{
con=DriverManager.getConnection(url,userName,password);
con.setAutoCommit(true);
// System.out.println("连接成功");
}
catch(SQLException e){
System.out.println(e.getMessage());
System.out.println("creatConnectError!");
}
return true;
}

package com.Dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;

public class DbHelper {
private static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String URL="jdbc:sqlserver://localhost;databasename=db_Blog";
private static final String UID="sa";
private static final String PWD="sasa";
public static Connection getConnection(){
Connection con=null;
try {
Class.forName(DRIVER);
con=DriverManager.getConnection(URL,UID,PWD);
System.out.println("连接数据库成功");
} catch (Exception e) {
e.printStackTrace();
System.out.println("sb");
}
return con;

}
public static void main(String []p){
getConnection();
}

public static Result runSelectSql(String sql){
Connection con=null;
PreparedStatement pst=null;
ResultSet res=null;
Result result=null;
try {
con=getConnection();
pst=con.prepareStatement(sql);
res=pst.executeQuery();
result=ResultSupport.toResult(res);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}finally{
try {

} catch (Exception e2) {
e2.printStackTrace();
// TODO: handle exception
}

}
return result;
}

public static Result runSelectSql(String sql,Object[] params){
Connection con=null;
PreparedStatement pst=null;
ResultSet res=null;
Result result=null;
try {
con=getConnection();
pst=con.prepareStatement(sql);
for(int i=0;i<params.length;i++){
pst.setObject(i+1,params[i]);
}
res=pst.executeQuery();
result=ResultSupport.toResult(res);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}finally{
try {

} catch (Exception e2) {
e2.printStackTrace();
// TODO: handle exception
}

}
return result;
}
public static boolean runInset(String sql,Object[] params){
boolean flag=false;
Connection con=null;
PreparedStatement pst=null;
try {
con=getConnection();
pst=con.prepareStatement(sql);
for(int i=0;i<params.length;i++){
pst.setObject(i+1,params[i]);
}
int a=pst.executeUpdate();
if(a>0){
flag=true;
}
else{flag=false;}
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}finally{
try {

} catch (Exception e2) {
e2.printStackTrace();
// TODO: handle exception
}

}
return flag;
}

}
这是以前我们课上写的 你看看追问

我用的不是Microsoft提供的JDBC驱动,而是sun公司的ODBC数据源建立的连接,

追答

这样啊,这我倒是没接触过了,不过只要是链接驱动总没多大区别的,你们老师没给你们样板事例么,或者你百度下,应该可以的

追问

知道问题出在哪里了,是JDK版本太高的问题,jdk8的版本删除了odbc桥,所以不能使用这种方法连接数据库了,只能换低版本的,或者使用其他连接方式。不过还是谢谢你的热心回答

温馨提示:内容为网友见解,仅供参考
无其他回答

为什么用eclipse和sql server2008连接,sql server2008中sa登录成功了...
[Microsoft][ODBC SQL Server Driver][SQL Server]用户‘sa’登陆失败。原因:未与信任SQL Server连接相关联 该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(例如 sa )进行连接,解决方法如下 设置允许SQL Server身份登录 (基本上这个很有用)...

java与SQLSERVER 2008连接时无法注册驱动
你这个是桥连接还是第三方连接,如果是桥连接要在odbcad32里面配置好连接,测试成功。如果是第三方连接就要在Eclipse里面写好相应的连接,再去操作java类。想你这种错,如果是第三方连接,那么就看你的sqlserver的jar包导入到lib里面没有。或者是测试你的driver是不是正确!

sql server 创建ODBC数据源时出错, SQL State:HYT00 SQL server 错误:0...
将登录超时设置为一个较大的数字 如果用户使用程序访问SQL Server,那么可修改连接字符串中的连接超时(Connect Timeout)属性的值。

如何使用java动态创建ODBC数据源
jdbc数据库连接:1.加载驱动Class.forName(“xxxDriver”)2建立连接:Connection conn= DriverManager.getConnection(url,user,password);(url是连接地址ip端口号和数据库实例名,user用户名,password密码)3获取statement对象:Statement stmt=conn.createStatement();4通过Statement执行Sql语句:stmt.executeQ...

我用JAVA连接数据库 为什么用这个可以连接sun.jdbc.odbc.JdbcOdbcDriver...
这个是连接myeclipse自带的jdbc,而你要连接com.microsoft.jdbc.sqlserver.SQLServerDriver ,需要在工程中添加SQL server的驱动。

连接SQL Server ODBC数据源是说连接不成功 在创建新的数据源 单击下一...
一,JDBC-ODBC桥的方法,这种方法最简单了。1,新建一个数据库,为student吧,再在其中新建一张表命名为info,添加一些数据(方便观察效果),下面我们配置数据源 开始---控制面板---管理工具---数据源---添加---选中“SQL Server”---完成 把默认的数据库改为student。点“下一步”---完成---...

SQL2008连接ODBC问题
题。通常的提示是“……无法打开连接,连接失败"。 如果这一步有问题,应该检查以下选项。 1 检查远程服务器是否启动了sql server 2000服务。如果没有,则启动。 2 检查服务器端有没启用Tcp\/IP协议,因为远程连接(通过因特网)需要靠这个协议。检查方法是,在服务器上 打开开始菜单->程序->Microsoft SQL Server->...

...com.microsoft.jdbc.sqlserver.SQLServerDrive
用java程序连接数据库时需把数据库驱动导入到你的java工程中,你连接SQLserver数据库而没有导入sql的驱动包所以出现这个错误 解决办法 1 去网上下一个SQLserver的驱动包 2 用jdbc:odbc连,就不会出现这个问题了

SQL Server2008登陆时出现错误..错误号10061
我和你出现同样的问题,就是因为设置了ODBC的数据源,我搞了好久也没有搞定。最后系统还原到设置ODBC之前,一连数据库,结果没问题。你有没有别的解决的方法,我现在要急用ODBC数据源连接SQL数据库呢。

如何建立Java程序与SQL数据库的连接?
两种方式:1、JDBC-ODBC连接,也叫桥连接。驱动字符串:sun.jdbc.odbc.JdbcOdbcDriver连接字符串:JDBC:ODBC:数据源名称 2、JDBC,也叫直连接需要驱动包,并且要将驱动包复制到:JDK安装路径\\jre\\lib\\ext\\下,或通过IDE将驱动包加载到程序的构建路径中。常用的数据库的连接方式:1)Microsoft SQLServer...

相似回答