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位)一起使用。 | 
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);}
   }
}