最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

技術(shù)干貨:MyBatis框架如何解決JDBC編程劣勢?

2022-06-07 16:26 作者:云和數(shù)據(jù)何老師  | 我要投稿

JDBC是Java程序?qū)崿F(xiàn)數(shù)據(jù)訪問的基礎(chǔ),JDBC的劣勢主要有以下幾個(gè)方面。

(1)數(shù)據(jù)庫連接創(chuàng)建、釋放頻繁會(huì)造成系統(tǒng)資源浪費(fèi),從而影響系統(tǒng)性能。

(2)SQL語句在代碼中硬編碼,造成代碼不易維護(hù)。在實(shí)際應(yīng)用的開發(fā)中,SQL變化的可能性較大。在傳統(tǒng)JDBC編程中,SQL變動(dòng)需要改變Java代碼,違反了開閉原則。

(3)用PreparedStatement向占位符傳參數(shù)存在硬編碼,因?yàn)镾QL語句的where條件不一定,可能多也可能少,修改SQL需要修改代碼,造成系統(tǒng)不易維護(hù)。

(4)JDBC對結(jié)果集解析存在硬編碼(查詢列名),SQL變化導(dǎo)致解析代碼變化,造成系統(tǒng)不易維護(hù)。

MyBatis框架支持普通SQL查詢、存儲(chǔ)過程以及高級(jí)映射的持久層框架,它消除了幾乎所有的JDBC代碼和參數(shù)的手動(dòng)設(shè)置以及對結(jié)果集的檢索,使用簡單的XML或注解進(jìn)行配置和原始映射,將接口和Java的POJO映射成數(shù)據(jù)庫中的記錄,使得Java開發(fā)人員可以使用面向?qū)ο蟮木幊趟枷雭聿僮鲾?shù)據(jù)庫。

MyBatis框架是一個(gè)ORM(Object/Relation Mapping,即對象關(guān)系映射)框架。所謂的ORM就是一種為了解決面向?qū)ο笈c關(guān)系型數(shù)據(jù)庫中數(shù)據(jù)類型不匹配的技術(shù),它通過描述Java對象與數(shù)據(jù)庫表之間的映射關(guān)系,自動(dòng)將Java應(yīng)用程序中的對象持久化到關(guān)系型數(shù)據(jù)庫的表中。ORM框架的工作原理可以通過一張圖來展示。


針對JDBC編程的劣勢,MyBatis提供了以下解決方案,具體如下。

問題一:數(shù)據(jù)庫鏈接創(chuàng)建、釋放頻繁會(huì)造成系統(tǒng)資源浪費(fèi),從而影響系統(tǒng)性能。
解決方案:在SqlMapConfig.xml中配置數(shù)據(jù)鏈接池,使用連接池管理數(shù)據(jù)庫鏈接。

問題二:SQL語句在代碼中硬編碼,造成代碼不易維護(hù)。在實(shí)際應(yīng)用的開發(fā)中,SQL變化的可能較大。在傳統(tǒng)JDBC編程中,SQL變動(dòng)需要改變Java代碼,違反了開閉原則。

解決方案:MyBatis將SQL語句配置在MyBatis的映射文件中,實(shí)現(xiàn)了與Java代碼的分離。

問題三:使用preparedStatement向占位符傳參數(shù)存在硬編碼,因?yàn)镾QL語句的where條件不一定,可能多也可能少,修改SQL需要修改代碼,造成系統(tǒng)不易維護(hù)。

解決方案:MyBatis自動(dòng)將Java對象映射至SQL語句,通過Statement中的parameterType定義輸入?yún)?shù)的類型。

問題四:JDBC對結(jié)果集解析存在硬編碼(查詢列名),SQL變化導(dǎo)致解析代碼變化,造成系統(tǒng)不易維護(hù)。

解決方案:MyBatis自動(dòng)將SQL執(zhí)行結(jié)果映射至Java對象,通過Statement中的resultType定義輸出結(jié)果的類型。


技術(shù)干貨:MyBatis框架如何解決JDBC編程劣勢?的評論 (共 條)

分享到微博請遵守國家法律
昌图县| 团风县| 阳谷县| 营口市| 清涧县| 康马县| 孝昌县| 长丰县| 柏乡县| 高邮市| 静乐县| 鹤庆县| 丹江口市| 上饶市| 大理市| 宜黄县| 靖江市| 城步| 堆龙德庆县| 定日县| 云霄县| 滦平县| 子长县| 浠水县| 勐海县| 宜阳县| 璧山县| 大埔县| 东阳市| 重庆市| 三亚市| 德令哈市| 隆昌县| 绍兴市| 虞城县| 左权县| 黄梅县| 扶沟县| 兰西县| 大城县| 息烽县|