当前位置:  技术问答>java相关

一个不用odbc 联sqlserver 2k的小问题,解决马上给分

    来源: 互联网  发布时间:2015-10-12

    本文导语:  我要连接,sqlserver 2k  下载驱动程序解压后,有三个文件,放在c:jdbc 下                c:jdbcmsbase.jar c:jdbcmssqlserver.jar c:jdbcmsutil.jar 并全部加到classpath 中, bean 主要代码如下: Class.forName("com.microsoft.jdbc.sqlserver.SQLSe...

我要连接,sqlserver 2k 
下载驱动程序解压后,有三个文件,放在c:jdbc 下               
c:jdbcmsbase.jar
c:jdbcmssqlserver.jar
c:jdbcmsutil.jar
并全部加到classpath 中,

bean 主要代码如下:

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=abc","sa","123");
            stmt = conn.createStatement();
编译通过,但执行查询的时候报错: No suitable driver
state:00001
code:0

怎么回事呀?

|
将localhost换成ip试试看
从代码上看没有什么错误啊
贴一下你的classpath变量值,是不是这三个文件的绝对路径都在里面了?

顺便给你个成功的例子,对比看看
jdbc驱动设置(非jbuilder的运行环境下,比如cmd环境):
下载一个驱动,安装后将驱动文件(比如sqlserver是3个.jar文件)的绝对路径放入classpath环境变量里面去,最好将驱动就安装到jdk的lib目录里面算了。
这方面设置若有问题参考:http://www.csdn.net/expert/topic/750/750375.xml?temp=.4715387

可运行代码实例:
import java.sql.*;
public class Test {
  public static void main(String[] args) {
    try {
      String address = "jdbc:microsoft:sqlserver://192.168.0.24:1433";
      //驱动类型+目标数据库ip+数据库端口
      String user="sa";//数据库用户密码
      String passwd="";//口令
      String database = "TESTDB";//目标数据库
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//驱动申明
      Connection con = DriverManager.getConnection(address,user,passwd);//建立链接
      con.setCatalog(database);//确定目标数据库
      Statement smt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
      //建立描述,设定结果集支持滚动光标且敏感,不可编辑
      String selCode = "SELECT userId,userName FROM UserTable";//查询语句
      ResultSet rs = smt.executeQuery(selCode);//结果集
      if(rs.last()) {//从第一条往后依次取结果集中的记录
        String userId = rs.getString(1);//等同rs.getString("userId"),即第一个字段数据
        String userName = rs.getString(2);//同上,第二个字段,全部取其为String类型
        //若是中文字段,一般需要转码
        //userName = new String(userName.getBytes("ISO-8859-1"),"gb2312");
System.out.println(userId+":"+userName);//输出此条记录的查询结果
      }
      rs.close();//释放资源
      smt.close();
      con.close();
    }
    catch(Exception e) {
      System.out.println(e);//捕捉异常
    }
  }
}

|
在系统参数的path中加入,这三个文件所在的目录路径c:jdbc

|
你把这三个文件复制到jre/lib/ext目录下试试看

|
classpath加入上述三个文件路径。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Tera Term 每隔一段时间不用,再敲任意键则自动关闭,怎么解决?
  • 解决不用sizeof求出int大小的方法
  • 不用数据库怎么样保存连续几个web页里form中提交的数据?javaBean能解决吗?
  • C语言 解决不用+、-、×、÷数字运算符做加法的实现方法
  • 在linux下,如何获取屏幕分辨率(注:不用QT,也不用gtk/gdk)
  • 简单小代码:不用计算、不用位操作来实现 加 1
  • 如果不用jbuilder中的JDK而用自己安装的?
  • 企业不用开源产品的原因??
  • 线程同步读取变量可不可以不用互斥锁
  • 怎么使redhat8.1的刷新率改了之后不用注消或者重起啊?
  • 不用定时刷新的方法,如何强行刷新网页?用命令实现。 iis7站长之家
  • jb里面不用布局管理器可以吗?
  • STATIC变量不用赋初值?
  • ??我想不用submit提交一个网面??
  • 为什么SkinUtils这个类不用实例和初始化?
  • SCOUNIX启动时如何默认登录(不用在BOOT提示符下回车)
  • 不用JDBC-ODBC连接oracle数据库?
  • 请问RS-232串行编程时为什么不用写驱动?
  • 可以不用java name.class 而是直接编译出可执行文件吗?
  • JSP连接数据库时不用DSN可以吗?还有什么方法
  • 如何使文件名为中文的文件在redhat7.2中正常显示而不用"?"号显示
  • 不用VECTOR用什么?
  • 不用定时刷新的方法,如何强行刷新网页?用命令实现。
  • 如何编程实现(不用shell命令)修改文件的时间


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3