当前位置: 首页 > 编程笔记 >

ODBC和JDBC有什么区别

公子昂
2023-03-14
本文向大家介绍ODBC和JDBC有什么区别,包括了ODBC和JDBC有什么区别的使用技巧和注意事项,需要的朋友参考一下

ODBC和JDBC都是客户端应用程序访问服务器端数据库所需的编程接口。基本上,两者都被称为连接数据库的驱动程序,由RDBMS的供应商提供。

以下是ODBC和JDBC之间的重要区别。

序号 ODBC JDBC
1 代表 ODBC代表开放式数据库连接,这从字面上意味着它与所有类型的语言(例如C,C ++,Java等)兼容。 JDBC表示Java数据库连接,即仅与Java语言兼容。
2 介绍 ODBC是Microsoft在JDBC之前于1992年引入的。 JDBC是SUN MicroSystems在ODBC之后于1997年引入的。
3 平台依赖性 ODBC依赖于平台,因为我们只能将ODBC用于Windows平台。 另一方面,JDBC与平台无关,可以用于任何平台。
4 类型 ODBC可以被视为一种过程类型,因为这些驱动程序中的大多数都是使用本机语言(例如C和C ++)开发的,而C和C ++是语言的过程类型。 另一方面,JDBC是纯面向对象的类型驱动程序。
5 性能 与JDBC相比,ODBC的性能更快,因为数据的导入和导出更快且占用大量内存。 另一方面,JDBC的性能比本机ODBC慢,但是JDBC的平台独立性使其可以与任何操作系统(包括Mac和Linux),驱动程序版本或位(32位或64位)一起使用。

ODBC与JDBC的示例

C#中的ODBC连接

using System;
using System.Windows.Forms;
using System.Data.Odbc;
namespace WindowsApplication1{
   public partial class Form1 : Form{
      public Form1(){
         InitializeComponent();
      }
      private void button1_Click(object sender, EventArgs e){
         string connetionString = null;
         OdbcConnection cnn ;
         connetionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=yourdatabasename.mdb;";
         cnn = new OdbcConnection(connetionString);
         try{
            cnn.Open();
            MessageBox.Show ("Connection Open ! ");
            cnn.Close();
         }
         catch (Exception ex){
            MessageBox.Show("Can not open connection ! ");
         }
      }
   }
}

示例

Java中的JDBC连接

import java.sql.*;
class JavaTester{
   public static void main(String args[]){
      try{
         Class.forName("com.mysql.jdbc.Driver");
         Connection con=DriverManager.getConnection(
         "jdbc:mysql://localhost:3306/'yourDBname'","username","userpassword");
         Statement stmt=con.createStatement();
         ResultSet rs=stmt.executeQuery("select * from emp");
         while(rs.next())
         System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3));
         con.close();
      }
      catch(Exception e){ System.out.println(e);}
   }
}
 类似资料:
  • 问题内容: 两者都意味着空间,但是有什么区别吗? 问题答案: 一个是不间断空间,另一个是常规空间。不间断的空格表示该行不应在该点处换行,就像它不会在一个单词的中间换行一样。 此外,正如斯文德(Svend)在其评论中指出的那样,不间断的空间不会崩溃。

  • 本文向大家介绍<%# %> 和 <% %> 有什么区别?相关面试题,主要包含被问及<%# %> 和 <% %> 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 答:<%# %>表示绑定的数据源 <%%>是服务器端代码块  

  • 问题内容: 以下代码之间有什么区别: 和 Python建议采用一种做事方式,但有时似乎不止一种。 问题答案: 一个是函数调用,一个是文字: 使用第二种形式。它更具Python风格,并且可能更快(因为它不涉及加载和调用单独的函数)。

  • 发展至今(2020 年 6 月份),GCC 编译器已经更新至 10.1.0 版本,其功能也由最初仅能编译 C 语言,扩增至可以编译多种编程语言,其中就包括 C++ 。 除此之外,当下的 GCC 编译器还支持编译 Go、Objective-C,Objective-C ++,Fortran,Ada,D 和 BRIG(HSAIL)等程序,甚至于 GCC 6 以及之前的版本还支持编译 Java 程序。但本

  • 但是我可以犯错误, java.sql.sqlException:[Microsoft][ODBC驱动程序管理器]指定的DSN包含线程“main”java.lang.NullPointerException中驱动程序和应用程序异常之间的体系结构不匹配 使用SysWoW64>odbcad32创建数据源im,并将数据源添加到系统DNS。我这样说,就像我在64位系统中遇到的其他问题一样。然而,它仍然对我不

  • 问题内容: MySQL JDBC驱动程序将这两个属性定义为: useServerPrepStmts-如果服务器支持的话,使用服务器端准备好的语句? cachePrepStmts- 驱动程序是否应该缓存客户端准备好的语句的PreparedStatements的解析阶段,是否适合服务器端准备好的语句和服务器端准备好的语句本身的“检查”? 客户端准备好的语句是否可以重用对象? 如果启用,则由于MySQL