关于用jdbc桥连接数据库的问题 这里面最可能出错的地方应该是stmt=conn.createStatement()这一行,不妨在这行前面打印一下conn,看看是不是null。如果不是这一行,可以在代码中多加几处打印语句,先看程序执行到哪里了,逐步缩小范围,直到找到出现问题的那一行 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有处理SQLException异常吗?try{ Class.forName("..... conn= DriverManager.getConnection(url,user,password); stmt=conn.createStatement(); //ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select * from web_repository_class"; ResultSet rs=stmt.executeQuery(sql); }catch(Exception e){ //例外处理} class_name和class_no是不是和表里面的命名一样? 异常已经进行了处理,这个信息好像是输出的一场信息,我用自己的一场代码执行则此信息被覆盖了 catch(SQLException sqle) { out.println(sqle.getMessage()+"=sqle"); } catch(Exception e) { out.println(e.getMessage()+"=e"); } finally { out.print("sdsdsdsdsdsds"); try { if(conn!= null) { conn.close(); } if(stmt!=null); { stmt.close(); } } catch(SQLException sqle) { out.println(sqle.getMessage()+"=finally"); } }**********************************************************************************以下是我写的单独测试程序,结果出错import java.sql.*;public class testSql{ public testSql() { } public void testSql_aa() { Connection con = null; System.out.println("ghghghghghghghg"); try {//Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver"; String sConnStr = "jdbc:odbc:webserver";//String strurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=webserver"; con = DriverManager.getConnection(sConnStr,"webuser","qwerty"); Statement stmt = con.createStatement(); String sql = ""; sql = "select * from web_repository_class"; ResultSet rs=stmt.executeQuery(sql);// System.out.println("sss"); if(rs.next()) { System.out.println(rs.getString("class_name")); } }!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! catch(SQLException sqle)//错误信息出在这里!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! { System.err.println(sqle.getMessage()+"=sql"); } catch(Exception e) { System.err.println(e.getMessage()+"=e"); } finally { try { if(con != null) { con.close(); } } catch(SQLException sqle) { System.err.println(sqle.getMessage()+"=finaly"); } } } public static void main(String[] args) { testSql createTableApp = new testSql(); createTableApp.testSql_aa(); //createTableApp.testSql(); //createTableApp.insertData(); } }**************************************************************出错信息:ghghghghghghghg//这是我的输出No suitable driver=sql//这是一次里外引起的结果 我又写了一个例子,是另外一种结果 public void testSql_aa() { Connection con = null; System.out.println("ghghghghghghghg"); try {/*//Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver"; String sConnStr = "jdbc:odbc:webserver";//String strurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=webserver"; con = DriverManager.getConnection(sConnStr,"webuser","qwerty"); Statement stmt = con.createStatement(); String sql = ""; sql = "select * from web_repository_class"; ResultSet rs=stmt.executeQuery(sql);// System.out.println("sss"); if(rs.next()) { System.out.println(rs.getString("class_name")); }*/Connection MyConn=null;Statement stmt=null;String mysql="";ResultSet rs=null;String MM_bbgl_DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";String MM_bbgl_USERNAME = "webuser";String MM_bbgl_PASSWORD = "qwerty";String MM_bbgl_STRING = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=webserver";Class.forName(MM_bbgl_DRIVER);MyConn = DriverManager.getConnection(MM_bbgl_STRING,MM_bbgl_USERNAME,MM_bbgl_PASSWORD);stmt = MyConn.createStatement();mysql="select * from web_repository_class";rs = stmt.executeQuery(mysql); String name="name=";if(rs.next()) name=name+rs.getString("class_name");System.out.println(name); } catch(SQLException sqle) { System.err.println(sqle.getMessage()+"=sql"); } catch(Exception e) { System.err.println(e.getMessage()+"=e"); } finally { try { if(con != null) { con.close(); } } catch(SQLException sqle) { System.err.println(sqle.getMessage()+"=finaly"); } } }****************************************************************信息:C:\j2sdk1.4.1\bin>java testSqlghghghghghghghg[Microsoft][SQLServer JDBC Driver][SQLServer]无法打开登录 'webserver' 中请求的数据库。登录失败。=sql 怪异:我改成如下形式竟然可以了String MM_bbgl_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";String MM_bbgl_USERNAME = "webuser";String MM_bbgl_PASSWORD = "qwerty";String MM_bbgl_STRING ="jdbc:odbc:webserver";Class.forName(MM_bbgl_DRIVER);conn = DriverManager.getConnection(MM_bbgl_STRING,MM_bbgl_USERNAME,MM_bbgl_PASSWORD);stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);为什么? 前者是通过jdbc直接来访问数据库,可能是你的url有问题所以没有找到你要访问的数据库,后者你是通过jdbc-odbc桥来访问,看看你的odbc配置,看看它和前者有什么不同!我的观点是,其实两者都可以成功访问,但是你第一个设置错了,第二个对了 重新启动你的web服务和数据库服务 MS的SQL SERVER驱动程序下载下来后要安装! import java.sql.*;public class testSqlserverJdbc{ public testSqlserverJdbc() { } public void testSql_aa() { Connection con = null; try { Connection MyConn=null; Statement stmt=null; String mysql=""; ResultSet rs=null; String MM_bbgl_DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; String MM_bbgl_USERNAME = "webuser"; String MM_bbgl_PASSWORD = "qwerty";String MM_bbgl_STRING = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=webserver"; Class.forName(MM_bbgl_DRIVER);MyConn = DriverManager.getConnection(MM_bbgl_STRING,MM_bbgl_USERNAME,MM_bbgl_PASSWORD);stmt = MyConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); mysql="select * from web_repository_class"; rs = stmt.executeQuery(mysql); String name="name="; if(rs.next()) name=name+rs.getString("class_name"); System.out.println(name); } catch(SQLException sqle) { System.err.println(sqle.getMessage()+"=sql"); } catch(Exception e) { System.err.println(e.getMessage()+"=e"); } finally { try { if(con != null) { con.close(); } } catch(SQLException sqle) { System.err.println(sqle.getMessage()+"=finaly"); } } } public static void main(String[] args) { testSqlserverJdbc createTableApp = new testSqlserverJdbc(); createTableApp.testSql_aa(); //createTableApp.testSql(); //createTableApp.insertData(); } }[Microsoft][SQLServer JDBC Driver][SQLServer]无法打开登录 'webserver' 中请求的数据库。登录失败.为什么?请帮忙 我也的很奇怪,sql server 2000企业版也不能连上。而标准版就行了。//你看看你的数据库用jb的数据库连接工具失败。//有可能是你的数据库设定的登陆方式不对。 可否有人把连接JDbc的方法给贴出来,从安装到配置,谢谢!不是用桥的方法 ★★★★★如何在单点登录环境下使用Web服务?★★★★★ 数据库连接池配置方法的选择? html中的li怎样排版 帮我看哈上传什么错,请各位指教 大虾来给我讲点基础的 用连接池吗? 急盼高手:struts1.2中ActionErrors的问题! 关于spring的jpetstore 怎样用JDBC连接PostgreSQL? jbuilder9和struts1.1的问题? 如何让EJB返回数据库查询结果集? jbuilder新手问题
try{
Class.forName(".....
conn= DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();
//ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from web_repository_class";
ResultSet rs=stmt.executeQuery(sql);
}catch(Exception e){
//例外处理
}
catch(SQLException sqle)
{
out.println(sqle.getMessage()+"=sqle");
}
catch(Exception e)
{
out.println(e.getMessage()+"=e");
}
finally
{
out.print("sdsdsdsdsdsds");
try
{
if(conn!= null)
{
conn.close();
}
if(stmt!=null);
{
stmt.close();
}
}
catch(SQLException sqle)
{
out.println(sqle.getMessage()+"=finally");
}
}
**********************************************************************************
以下是我写的单独测试程序,结果出错
import java.sql.*;
public class testSql
{
public testSql()
{
}
public void testSql_aa()
{
Connection con = null;
System.out.println("ghghghghghghghg");
try
{
//Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:webserver";
//String strurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=webserver";
con = DriverManager.getConnection(sConnStr,"webuser","qwerty");
Statement stmt = con.createStatement();
String sql = "";
sql = "select * from web_repository_class";
ResultSet rs=stmt.executeQuery(sql);
// System.out.println("sss");
if(rs.next())
{
System.out.println(rs.getString("class_name"));
}
}
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
catch(SQLException sqle)//错误信息出在这里
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
{
System.err.println(sqle.getMessage()+"=sql");
}
catch(Exception e)
{
System.err.println(e.getMessage()+"=e");
}
finally
{
try
{
if(con != null)
{
con.close();
}
}
catch(SQLException sqle)
{
System.err.println(sqle.getMessage()+"=finaly");
}
}
} public static void main(String[] args)
{
testSql createTableApp = new testSql();
createTableApp.testSql_aa();
//createTableApp.testSql();
//createTableApp.insertData();
}
}
**************************************************************
出错信息:
ghghghghghghghg//这是我的输出
No suitable driver=sql//这是一次里外引起的结果
public void testSql_aa()
{
Connection con = null;
System.out.println("ghghghghghghghg");
try
{
/*
//Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:webserver";
//String strurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=webserver";
con = DriverManager.getConnection(sConnStr,"webuser","qwerty");
Statement stmt = con.createStatement();
String sql = "";
sql = "select * from web_repository_class";
ResultSet rs=stmt.executeQuery(sql);
// System.out.println("sss");
if(rs.next())
{
System.out.println(rs.getString("class_name"));
}
*/
Connection MyConn=null;
Statement stmt=null;
String mysql="";
ResultSet rs=null;
String MM_bbgl_DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String MM_bbgl_USERNAME = "webuser";
String MM_bbgl_PASSWORD = "qwerty";
String MM_bbgl_STRING = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=webserver";
Class.forName(MM_bbgl_DRIVER);
MyConn = DriverManager.getConnection(MM_bbgl_STRING,MM_bbgl_USERNAME,MM_bbgl_PASSWORD);
stmt = MyConn.createStatement();
mysql="select * from web_repository_class";
rs = stmt.executeQuery(mysql);
String name="name=";
if(rs.next())
name=name+rs.getString("class_name");
System.out.println(name);
}
catch(SQLException sqle)
{
System.err.println(sqle.getMessage()+"=sql");
}
catch(Exception e)
{
System.err.println(e.getMessage()+"=e");
}
finally
{
try
{
if(con != null)
{
con.close();
}
}
catch(SQLException sqle)
{
System.err.println(sqle.getMessage()+"=finaly");
}
}
}
****************************************************************
信息:
C:\j2sdk1.4.1\bin>java testSql
ghghghghghghghg
[Microsoft][SQLServer JDBC Driver][SQLServer]无法打开登录 'webserver' 中请求的数
据库。登录失败。=sql
String MM_bbgl_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
String MM_bbgl_USERNAME = "webuser";
String MM_bbgl_PASSWORD = "qwerty";
String MM_bbgl_STRING ="jdbc:odbc:webserver";
Class.forName(MM_bbgl_DRIVER);
conn = DriverManager.getConnection(MM_bbgl_STRING,MM_bbgl_USERNAME,MM_bbgl_PASSWORD);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
为什么?
我的观点是,其实两者都可以成功访问,但是你第一个设置错了,第二个对了
public class testSqlserverJdbc
{
public testSqlserverJdbc()
{
}
public void testSql_aa()
{
Connection con = null;
try
{
Connection MyConn=null;
Statement stmt=null;
String mysql="";
ResultSet rs=null;
String MM_bbgl_DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String MM_bbgl_USERNAME = "webuser";
String MM_bbgl_PASSWORD = "qwerty";
String MM_bbgl_STRING = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=webserver";
Class.forName(MM_bbgl_DRIVER);
MyConn = DriverManager.getConnection(MM_bbgl_STRING,MM_bbgl_USERNAME,MM_bbgl_PASSWORD);
stmt = MyConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
mysql="select * from web_repository_class";
rs = stmt.executeQuery(mysql);
String name="name=";
if(rs.next())
name=name+rs.getString("class_name");
System.out.println(name);
}
catch(SQLException sqle)
{
System.err.println(sqle.getMessage()+"=sql");
}
catch(Exception e)
{
System.err.println(e.getMessage()+"=e");
}
finally
{
try
{
if(con != null)
{
con.close();
}
}
catch(SQLException sqle)
{
System.err.println(sqle.getMessage()+"=finaly");
}
}
} public static void main(String[] args)
{
testSqlserverJdbc createTableApp = new testSqlserverJdbc();
createTableApp.testSql_aa();
//createTableApp.testSql();
//createTableApp.insertData();
}
}
[Microsoft][SQLServer JDBC Driver][SQLServer]无法打开登录 'webserver' 中请求的数
据库。登录失败.
为什么?请帮忙
//你看看你的数据库用jb的数据库连接工具失败。
//有可能是你的数据库设定的登陆方式不对。
不是用桥的方法