日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybatis连接oracle_Mybatis 系列 0:初恋Mybatis

發布時間:2023/12/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis连接oracle_Mybatis 系列 0:初恋Mybatis 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習 Mybatis 之前,我們可以通過比較之前使用 JDBC 操作持久層的代碼,再次重溫一下 JDBC 的噩夢。

首先回憶一下操作 JDBC 的步驟:

口訣:「賈璉欲執事」

賈:加載注冊驅動

璉:獲取連接對象

欲:創建語句對象

執:執行SQL語句

事:釋放資源

測試用例:

測試用例1

測試用例2

好了,回顧了以上兩個例子,使用 JDBC 來操作數據的代碼是不是很噩夢?

代碼不僅又臭又長,而且不易維護,又有 SQL 注入的風險,每次操作都新創建一個 Connection 對象,用完就關閉,而且創建 Connection 的成本非常大(解決方案:使用數據庫連接池 DataSource),加上針對不同的表查詢還要寫不一樣的結果集處理器,等等各種問題。。。

如果每次的 CURD 都要這樣寫,那簡直就是 CRUD copy_boy 了。

那既然使用 JDBC 這么難受,能不能不要它了?

哈哈,不能。原因是,在 Java 中,數據庫存取技術只能通過使用 JDBC 訪問數據庫。

如果沒有 JDBC,會帶來什么問題呢?

0:我們訪問數據庫操作就沒有規范;

1:因為數據庫廠商是不一樣的,不同的數據庫廠商就會執行不同的訪問 DataBase 規則;

2:比如我今天在 A 公司苦逼地寫著代碼,咱們大 A 公司使用的是 MySQL,好不容易學完了如何使用 MySQL 去訪問數據庫,卻遇上了今年的裁員潮。。。歷經千辛萬苦,關燈吃面過后,我來到了 B 公司,B 公司財大氣粗,使用的是 Oracle,作為小白的我,又得重新學習訪問數據庫的方法,這回是 Oracle 的,下回去到 2B 公司,如果 2B 公司使用的是 IBM 的 DB2,那簡直得吐血。。

造成上述問題的根本原因就是各大數據廠商沒有統一的訪問數據庫規則。

這時,SUN 公司站出來,說:我來統一指定所有數據庫的訪問規則,你們各大數據庫廠商必須 follow,否則不支持你們的數據庫服務器。

有了規范之后,針對不同的數據庫服務器,就只需要一套技術即可。

這個規范稱之為 JDBC。

JDBC(Java DataBase Connectivity)是一種用于執行 SQL 語句的 Java API,可以為多種關系數據庫提供統一訪問,它由一組用 Java 語言編寫的類和接口組成。JDBC 提供了一種基準,據此可以構建更高級的工具和接口,使數據庫開發人員能夠編寫數據庫應用程序。(百度百科)

既然我們不能拋棄 JDBC,那有什么方法優化其缺點,成為 CEO,迎娶白富美,走上人生巔峰呢?

盒盒盒。。。盒盒。。想多了。。

還真有,那就是站在巨人的肩膀上,使用他們已經寫好的框架,如:Hibernate、iBatis 和 Mybatis 等(底層都為 JDBC)。

Mybatis 就是我們要重點學習的持久層框架了。

那,Mybatis 是什么呢?

Mybatis 是支持普通 SQL 查詢,存儲過程和高級映射的持久層框架,嚴格上說應該是一個 SQL 映射框架。

幾乎所有的 JDBC 代碼和參數的手工設置以及結果集的處理器都可以交給 Mybatis 完成,而這只需要簡單的 XML 或者注解就可以完成,其前身是 iBatis。

Mybatis 核心為動態代理 MapperProxy。

核心組件有:

SqlSessionFactoryBuilder(構建器):根據配置信息或 Java 代碼來構建 SqlSessionFactory 對象,作用:創建SqlSessionFactory對象。

SqlSessionFactory(會話工廠):好比是 DataSource,線程安全的,在應用運行期間不用重復創建多次,建議使用單例模式,作用:創建 SqlSession 對象。

SqlSession(會話):好比是 Connection,線程不安全的,每次使用開啟新的 SqlSession 對象,使用完正常關閉,默認使用 DefaultSqlSession。提供操作數據庫的增刪改查方法,可以調用操作方法,也可以操作 Mapper 組件。

Executor(執行器):SqlSession 本身不能直接操作數據庫,需要 Executor 來完成,該接口有兩個實現:緩存執行器(缺省)、基本執行器。

MapperStatement:映射語句封裝執行語句時的信息如 SQL、輸入參數、輸出結果。

原理圖

那,什么是框架呢?

軟件框架(software framework),通常指的是為了實現某個業界標準或完成特定基本任務的軟件組件規范,也指為了實現某個軟件組件規范時,提供規范所要求之基礎功能的軟件產品。

簡而言之,框架就是制定一套規范或者規則(思想),大家(程序員)在該規范或者規則下工作。或者說使用別人搭好的舞臺來做編劇和表演。

其實說白了,框架就是一系列 jar 包,就是抄大神的作業,直接拿他們已經封裝好的類和接口過來用就好了。

在 Java 中,我們使用框架或者是別人已經寫好的類的話,一般是直接引入 jar 包,就相當于是我寫好了 Java 源文件,經過編譯之后生成的一系列 class 字節碼文件,這樣也解決了到處 copy,有時還 copy 不全的問題。

java運行

tips:查看官方文檔是學習一門新語言最有效的方法。

系列預告:Mybatis 系列 1:ORM 框架思想以及開發前準備

關注「阿澤學長」

總結

以上是生活随笔為你收集整理的mybatis连接oracle_Mybatis 系列 0:初恋Mybatis的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 激情国产在线 | 东北熟女一区二区三区 | 男女黄床上色视频 | 看成人片 | 亚洲妇女体内精汇编 | 欧美浮力影院 | 国产激情一区二区三区在线观看 | 黄色在线观看免费视频 | 午夜影院入口 | av片亚洲| 波多野结衣国产 | 成人欧美日韩 | 午夜少妇av| 国产艳俗歌舞表演hd | 天天舔天天爽 | 中文在线字幕免费观 | 久久夜色精品国产欧美乱 | 大胸奶汁乳流奶水出来h | 欧美亚洲精品天堂 | 悠悠色综合 | 国产21页| 中文字幕一区二区人妻 | 免费成人在线网站 | 成人77777| 国产免费成人在线视频 | 欧美内谢| 色漫| 天天操操操操 | 亚洲伦理中文字幕 | 吊视频一区二区三区 | 国产精品羞羞答答在线 | 8050午夜一级毛片久久亚洲欧 | 日韩在线视 | 婷婷开心激情网 | 一级性爱视频 | 少妇一级淫免费播放 | 极品美女扒开粉嫩小泬 | 操在线视频 | 鬼眼| 成人免费毛片免费 | 亚洲国产私拍精品国模在线观看 | 日日淫 | 国产日本欧美在线 | 亚洲一区二区美女 | 天天视频污 | 亚洲欧美在线视频免费 | 91久久综合亚洲鲁鲁五月天 | 涩色网| 国产在线视频二区 | 黄色av影院| 日本三级吃奶头添泬 | 色av网| www.亚洲高清| 影音先锋成人资源网 | 精品婷婷色一区二区三区蜜桃 | 成人午夜黄色 | 日韩激情中文字幕 | 国产人妖一区二区三区 | 中文字幕123 | 欧美一级全黄 | 99re6在线视频 | 国产一区网 | 伊朗做爰xxxⅹ性视频 | 午夜黄色剧场 | 日韩视频网| 欧美日韩三区 | 亚洲欧美中文日韩在线v日本 | 国产在线不卡一区 | 日韩欧美国产高清 | 长腿校花无力呻吟娇喘的视频 | 国产乱人乱偷精品视频 | 中文字幕精品久久 | 亚洲av熟女高潮一区二区 | 日韩黄色一区二区 | 亚洲色婷婷一区二区三区 | www.一区二区.com | 亚洲一区视频在线 | 久久视奸 | 在线精品亚洲欧美日韩国产 | 亚洲欧美日韩一区 | 少妇一级淫片免费播放 | 日日碰碰| 亚洲男人的天堂在线 | www.污在线观看 | 秋霞在线观看视频 | 91九色国产在线 | 天天插综合 | 亚洲av日韩av永久无码下载 | 瑟瑟视频免费观看 | 精品少妇一区二区三区免费观看 | 色综合久久久久久 | 伊人一级片 | 国产亚洲欧美日韩精品 | 黄色污网站在线观看 | 国产伦理一区二区三区 | 免费av手机在线观看 | 美女写真福利视频 | 成都4电影免费高清 | 久久在线|