JDBC 學習筆記(一)—— JDBC 基礎

1. 什么是 JDBC

JDBC,Java Database Connectivity(Java 數據庫連接),是一組執行 SQL 語句的 Java API。

JDBC,是 Java SE(Java Platform, Standard Edition)標準的一部分。

Java 程序可以通過 JDBC 連接到關系型數據庫,并且使用 SQL(Structured Query Language,結構化查詢語言)完成對數據庫的操作。

我們開發時常用的 ORM 框架(Object Relational Mapping),例如 Hibernate,MyBatis,其本質就是對 JDBC 的一種封裝。

?

?

2. JDBC 驅動和面向接口編程

Java API,就是接口(interface),所以說 JDBC 只給出了接口,沒有提供實現類。

由各個數據庫的廠商提供 JDBC 的實現,這些實現類就是我們口中常說的:驅動程序。

?

JDBC 的編程工作,是需要面向標準的 JDBC API,不需要關心使用的數據庫到底是什么。

使用 Oracle,DB2,還是 MyBatis 對于 JDBC 的編程都沒有影響,這就是面向接口編程。

理論上說,如果需要切換數據庫,只需要換一個驅動程序就可以了,所以說,JDBC 具有跨數據庫的特性。

?

當然實際操作上沒有這么簡單,因為 JDBC 跨數據庫的特性是基于全部使用標準的 SQL 語句,而某些數據庫會有一些只有自己才能用的特殊 SQL 語法。

例如,Oracle 的 rowid、rownum,MySQL 的 limit。

?

3. JDBC 組成和功能

JDBC的總體結構有四個組件:應用程序、驅動程序管理器、驅動程序和數據源。?

?

JDBC 主要有以下三個功能:

  • 建立程序與數據庫的連接。
  • 執行 SQL 語句。
  • 獲得 SQL 語句的執行結果。

?

4. JDBC 和 ODBC

ODBC,Open Database Connectivity(開放數據庫連接),也是一組通過 API 訪問數據庫的技術。

ODBC 先于 JDBC 的出現,JDBC 模仿了 ODBC 的設計。

與 JDBC 相同,ODBC 需要數據庫廠商提供驅動,支持數據庫之間的切換,而 ODBC 負責管理數據庫驅動。

?

相比于 ODBC,JDBC 有以下優勢:

  • JDBC 對于數據庫的操作更加簡單、直觀。
  • JDBC 具有更高的安全性。

?

轉載于:https://www.cnblogs.com/jing-an-feng-shao/p/9201801.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280091.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280091.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280091.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript享元模式

JavaScript享元模式 通過兩個例子的對比來凸顯享元模式的特點:享元模式是一個為了提高性能(空間復雜度)的設計模式,享元模式可以避免大量非常相似類的開銷。 第一實例,沒有使用享元模式,計算所花費的時間和空間使用程度。 要求為&…

mac屏幕截圖_如何在Mac上拍攝屏幕截圖

mac屏幕截圖On a Mac, you can take screenshots with a few quick keyboard shortcuts. But Mac OS X also includes more powerful screenshot tools, too. Here are some of the many ways you can get a screenshot on OS X. 在Mac上,您可以使用一些快速的鍵盤快…

實現 .Net 7 下的數據庫定時檢查

在軟件開發過程中,有時候我們需要定時地檢查數據庫中的數據,并在發現新增數據時觸發一個動作。為了實現這個需求,我們在 .Net 7 下進行一次簡單的演示。PeriodicTimer .Net 6 中新增了 PeriodicTimer 這個類,它可以用來創建一個定…

新手AS常見問題集錦

開發環境 以前開發android的時候可以使用eclipse,雖然現在也能使用eclipse,但是google已經不再支持使用eclipse開發android了。因為google有了自己的IDE---android studio,這個IDE我自己認為安裝的時候比較方便,唯一的缺點就是在下…

js進階 11-6 jquery如何獲取和設置元素的寬高(jquery多方法)

js進階 11-6 jquery如何獲取和設置元素的寬高(jquery多方法) 一、總結 一句話總結:jquery里面多是方法啊,比如jquery對象的寬高。所以取值是方法,賦值就是方法里面帶參數。 1、百度富文本編輯器ueditor如何設置寬高&a…

SparseArray代替HashMap

相信大家都明白,手機軟件的開發不同于PC軟件的開發,因為手機性能相對有限,內存也有限,所謂“寸土寸金”,可能稍有不慎,就會導致性能的明顯降低。Android為了方便開發者,特意在android.util這個包…

也許你曾經讀過他的書

我們愿用“能理能文、才華多元”來形容他。因為熱愛編程和游戲,所以他將愛好變成了職業,并在這條路上持續奔跑;因為熱愛分享,所以他堅持在博客上分享技術觀點并出版了關于 Azure、微軟游戲棧的書籍;因為熱愛挑戰&#…

python測試框架數據生成工具最全資源匯總

xUnit frameworks 單元測試框架frameworks 框架unittest - python自帶的單元測試庫,開箱即用unittest2 - 加強版的單元測試框架,適用于Python 2.7以及后續版本pytest - 成熟且功能強大的單元測試框架plugincompat - pytest的執行及兼容性插件nosetests -…

t30智能插座怎么設置_如何設置ConnectSense智能插座

t30智能插座怎么設置If you like the idea of smart outlets, but wish you had one with more than just one receptacle on it, the ConnectSense Smart Outlet is worth looking into. Here’s how to set it up and instantly get double the fun. 如果您喜歡智能插座的想法…

用鏈表和數組實現HASH表,幾種碰撞沖突解決方法

Hash算法中要解決一個碰撞沖突的辦法,后文中描述了幾種解決方法。下面代碼中用的是鏈式地址法,就是用鏈表和數組實現HASH表。 he/*hash table max size*/ #define HASH_TABLE_MAX_SIZE 40/*hash table大小*/ int hash_table_size0;/*.BH----------------…

安卓操作sqlite3,增刪改查

創建 layout <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"vertical"android:layout_width"match_parent"android:layo…

基于.NetCore開發博客項目 StarBlog - (23) 文章列表接口分頁、過濾、搜索、排序

1前言上一篇留的坑&#xff0c;火速補上。在之前的第6篇中&#xff0c;已經有初步介紹&#xff0c;本文做一些補充&#xff0c;已經搞定這部分的同學可以快速跳過&#xff0c;基于.NetCore開發博客項目 StarBlog - (6) 頁面開發之博客文章列表對標準的WebApi來說&#xff0c;分…

如何在Chrome中保存您當前的所有標簽,以便以后閱讀

Chrome allows you to open tabs from your last browsing session when you open the browser. However, what if you want to save your current set of tabs to re-open at any time? Chrome doesn’t provide a way to do that natively, but there is an easy workaround…

ubuntu 16.04(Windows 10雙系統+grub引導)無法進入tt1~tt6(NVIDIA驅動安裝相關-黑屏,login loop,分辨率)...

目錄 前言回顧最終解決&#xff1a;0.關閉x服務1.禁用nouveau2.加入3.更新4.查找匹配驅動5.選擇推薦版本6.等待安裝后重啟,nvidia-smi查看是否安裝成功,或者lsmod | grep nvidia&#xff0c;成功結果如下7.重啟x服務8.此時還不能進入圖形界面&#xff0c;因為nomodeset還在&…

(備忘)打開office2010總是在配置進度

1、同時按上鍵盤上面的windows鍵和R鍵&#xff0c;出現“運行” 2、輸入“regedit”&#xff0c;回車進入注冊表 3、點擊“HKEY_CURRENT_USER”展開&#xff0c;依次“Software”--“Microsoft”--“Office”--"14.0"--"Word"展開&#xff0c;點擊"Op…

java、oracle對CLOB處理

oracle CLOB字段轉換位VARCHAR 1.實際上處理CLOB字段的時候&#xff0c;直接TO_CHAR&#xff0c;當長度超過4000的時候&#xff0c;會報錯&#xff0c;提示列被截取&#xff1b; CLOB轉varchar2&#xff1a;select to_char(CLOB字段) from table 2.直接使用SUBSTR對CLOB字段進行…

android 更改軟鍵盤_如何在Android的Google鍵盤上更改聲音和振動

android 更改軟鍵盤Tactile feedback from a touch screen keyboard is crucial, in my opinion, but I don’t like sounds when I tap keys. You may not be like me—maybe sounds are your thing, but vibration is annoying. Or maybe you dislike both (you rebel!). The…

『 再看.NET7』看看required屬性有什么不同

還是先看看C#中屬性的這定義&#xff0c;在初始化和訪問上有哪些方式&#xff0c;就能看出required屬性有什么不一樣的地方了。屬性&#xff0c;是封裝字段的&#xff0c;通過get和set訪問器可以很好地驗證數據的有效性。public record Order_00 {public Guid Id { get; set; }…

知識點:Mysql 索引原理完全手冊(1)

知識點&#xff1a;Mysql 索引原理完全手冊(1) 知識點&#xff1a;Mysql 索引原理完全手冊(2) 知識點&#xff1a;Mysql 索引優化實戰(3) 知識點&#xff1a;Mysql 數據庫索引優化實戰(4) Mysql-索引原理完全手冊 一、 介紹二、 索引的原理三、 索引的數據結構四、 聚集索引與輔…

如何將Apple Mail建議用于事件和聯系人

Apple products come preinstalled with an email client that can, on occasion, be quite smart. Today we want to show you another great feature: suggestions for event and contacts. Apple產品預裝了一個電子郵件客戶端&#xff0c;該客戶端有時可能非常聰明。 今天&a…