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

有关sqlserver连接的问题,高手请务必进来!!!!!

    来源: 互联网  发布时间:2015-09-27

    本文导语:  我在sqlserver中建立一个数据库sfa,然后在数据源(ODBC)中添加了这个数据库 而且在library中,我也导入了mssqlserver的数据连接驱动。 数据库连接的源程序如下: import java.io.*; import java.sql.*; import java.util.*; import com.m...

我在sqlserver中建立一个数据库sfa,然后在数据源(ODBC)中添加了这个数据库
而且在library中,我也导入了mssqlserver的数据连接驱动。

数据库连接的源程序如下:
import java.io.*;
import java.sql.*;
import java.util.*;
import com.microsoft.jdbc.sqlserver.SQLServerDriver;

public class DataBase {
 private String strUrl = null;
 private String strUser = null;
 private String strPwd = null;
 private Connection dbCon = null;
 private Statement stmt = null;
  
 public static void main(String[] args) {
    DataBase database = new DataBase();
    int i = database.dbConnection("jdbc:odbc:sfa", "sa", "wwd");
    System.out.println(i);
}

 public int dbConnection(String strUrl, String strUser, String strPwd) {
    this.strUrl = strUrl;
    this.strUser = strUser;
    this.strPwd = strPwd;
    
   try {
       //Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
   } catch(ClassNotFoundException e) {
       System.err.print("ClassNotFoundException:");
       System.err.println(e.getMessage());
       return 0;
   }

   try {
       dbCon = DriverManager.getConnection(strUrl, strUser, strPwd);
   } catch(SQLException ex) {
       System.out.println("SQLException:" + ex.getMessage());
       return -1;
   }
   return 1;
  }
}
报错信息如下:
java.lang.NoClassDefFoundError: com/microsoft/jdbc/base/BaseDriver
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:130)
at myfirst.DataBase.dbConnection(DataBase.java:37)
at myfirst.DataBase.main(DataBase.java:26)
Exception in thread "main" 

但是将Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")改为Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")之后,数据库就可以连接成功。
想请教各位高手,是何原因?

|
jdbc连接SQL Server 不通过JDBC-ODBC桥

发布日期:2002-7-12  发 布 者:51jsp.net   
首先到微软的网站下载jdbc for sqlserver的driver

地址是:  Microsoft SQL Server 2000 Driver for JDBC
(http://www.microsoft.com/downloads/release.asp?releaseid=38312)

然后下载安装到要安装的目录中,假设安装目录为d:javaforsql
安装后要在classpath中添加d:javaforsqllibmsbase.jar;d:javaforsqllibmssqlserver.jar;d:javaforsqllibmsutil.jar
然后可以进行一个简单的实验
首先注册驱动器,使用sqlserver jdbc驱动的别名:com.microsoft.jdbc.sqlserver.SQLServerDriver

程序为
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
然后要设置连接
String url="jdbc:microsoft:sqlserver://yourserver:port;DatabaseName=yourdatabase"
Connection conn= DriverManager.getConnection(url,"uername","password"); 
实验一下,成功了吧!





|
楼主,你既然使用驱动了,干嘛要设置和使用数据源jdbc:odbc:sfa?
数据源是用于使用jdbc-odbc桥的连接方式的阿
我给你个连接数据库的简单样本:
jdbc驱动设置(非jbuilder的运行环境下,比如cmd环境):
下载一个驱动,安装后将驱动文件的绝对路径放入classpath环境变量里面去,最好将驱动就安装到jdk的lib目录里面算了。
这方面设置若有问题参考:http://www.csdn.net/expert/topic/750/750375.xml?temp=.4715387
JBuilder连接数据库的jdbc驱动设置:
1.在tools->configre libraries->new->键入name->add->选择驱动文件。不妨设置在User Home下面
2.tools->enterprise setup->database Drier->add->选择刚才新建的
3.tools->database pilot->file->new->键入:url和Driver
4.双击->输入数据库的用户名和密码

可运行代码实例:
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类型
        System.out.println(userId+":"+userName);//输出此条记录的查询结果
      }
      rs.close();//释放资源
      smt.close();
      con.close();
    }
    catch(Exception e) {
      System.out.println(e);//捕捉异常
    }
  }
}

|
楼主,你既然使用驱动了,干嘛要设置和使用数据源jdbc:odbc:sfa?
数据源是用于使用jdbc-odbc桥的连接方式的阿
我给你个连接数据库的简单样本:
jdbc驱动设置(非jbuilder的运行环境下,比如cmd环境):
下载一个驱动,安装后将驱动文件的绝对路径放入classpath环境变量里面去,最好将驱动就安装到jdk的lib目录里面算了。
这方面设置若有问题参考:http://www.csdn.net/expert/topic/750/750375.xml?temp=.4715387
JBuilder连接数据库的jdbc驱动设置:
1.在tools->configre libraries->new->键入name->add->选择驱动文件。不妨设置在User Home下面
2.tools->enterprise setup->database Drier->add->选择刚才新建的
3.tools->database pilot->file->new->键入:url和Driver
4.双击->输入数据库的用户名和密码

可运行代码实例:
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类型
        System.out.println(userId+":"+userName);//输出此条记录的查询结果
      }
      rs.close();//释放资源
      smt.close();
      con.close();
    }
    catch(Exception e) {
      System.out.println(e);//捕捉异常
    }
  }
}

|
我发邮件给你了

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












  • 相关文章推荐
  • 有关LINUX的问题,大家都进来看看!!!!
  • 会gtk的进来看看,有关字符转换的
  • 有关jsp调用servlet的问题,请大家进来看看。
  • 请教:有关JCreatorPro2.5的问题,用过的都请进来看一下吧~~~
  • 紧急!一个有关CVS的非常重要的问题!所有人熟悉CVS的都进来看看吧!
  • 本人菜鸟, 请各位大虾帮帮忙,进来交流交流,有关我毕设的一些疑问?
  • 还是有关ftp client和list的问题,您进来看看,也许会呢:)我不在乎分数的
  • ​有关Docker的八个令人难以置信的事实
  • 有关内码转换(跟HttpServletRequest有关)
  • 求有关png图像处理的libpng库的有关中文资料
  • 大家推荐一下有关LINUX7有关的网络编程的书。最好是比较全面的!比较经典的。
  • 求教有关smartupload的问题,有关就给分!!
  • 有关KDevelop-3.0.4-0.1.i386.rpm的有关软件包
  • 有关在sco unix5.0.4下有关网卡设置的问题(非常急,高分相送)
  • 有关snmp的一个很菜,但是困扰了我很久的问题,有关工作原理的,望大家赐教
  • 有关KDevelop编程的资料
  • 有关集群与数据同步
  • 请教有关英文简历方面的词句!
  • 有关报表打印(在JAVA,WEB下应用)急用!
  • 请各位大哥告知JAVA中消息机制的有关资料,拜托!
  • 有关cocoon的问题??
  • 有关jbuilder
  • 我想看看有关Linux和Unix的源码,有什么好的建议
  • 有关J2ME的帮助文档!
  • 100分求助 能不能提供一些有关图像分割的算法和实现代码!谢谢
  • 在哪里可以弄到有关tomcat配置方面的资料?
  • Helper! 有关Jbuilder使用问题???
  • 有关swing的问题,请高手回答


  • 站内导航:


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

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

    浙ICP备11055608号-3