日期:2014-05-20  浏览次数:20686 次

JAVA数据库的访问
本人小菜,刚开始研究JAVA,遇到点了难的问题,老是想不明白,希望各位高手能指点指点,不胜感激!

程序主要功能:有一个数据库ctd;其中有一个表名为ctt;通过OBDC桥的方式登陆数据库,并在控制台输出表中的直!
其中,数据库用户名为sa;密码123456;ODBC驱动的用户名和密码为空,代码如下:
import   java.sql.*;
public   class   QueryODBC
{
private   Connection   con;

public   static   void   main(String   args[])
{
QueryODBC   test   =   new   QueryODBC();
Connection   con   =   test.getConnection();
String   sql   =   "select   *   from   ctt "; //查询语句
test.getctdate(con,sql);
}

//建立连接
public   Connection   getConnection()
{
String   url= "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ctd ";
String   userName= "sa ";
String   password= " ";
//Connection   con   =   DriverManager.getConnection(url,userName,password);

try
{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver ");
con   =   DriverManager.getConnection(url,userName,password);
}
catch(SQLException   e)
{
System.out.println( "异常错误 ");
e.printStackTrace();
}
catch(ClassNotFoundException   ex)
{
System.out.println( "数据未找到 ");
ex.printStackTrace();
}

return   con;
}

//建立会话
public   void   getctdate(Connection   con,String   sql)
{
try
{
Statement   st   =   con.createStatement();
ResultSet   rs   =   st.executeQuery(sql);

while(rs.next())
{
String   id   =rs.getString( "客户号 ");
String   name   =rs.getString( "客户姓名 ");
//
System.out.println( "客户号: "+id+ "客户姓名: "+name);
}
st.close();
con.close();
}
catch(SQLException   e)
{
e.printStackTrace();
}
}
}

问题是不能正常建立会话,望各位高手能给予解答,跪求了!

------解决方案--------------------
String url= "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ctd ";jdbcodbc驱动的url是这样写吗?你查一下,我记不清了,我记得你的写法是sqlserver驱动的写法,不是jdbcodbc桥的写法吧
------解决方案--------------------
对哦,用的是sun.jdbc.odbc.JdbcOdbcDriver驱动,结果写了个MS提供的驱动的url写法
要么换驱动类名,要么换url写法