IDEA使用Maven和MyBatis簡化數據庫連接(配置篇)

目錄:

Maven:簡化項目構建

MyBatis:簡化Jdbc


Maven:是一款項目構建與依賴管理工具,核心作用是自動化項目編譯、打包等流程,并統一管理項目所需的第三方 Jar 包(如 MyBatis 的 Jar 包)。

MyBatis:是一款持久層框架,核心作用是簡化 Java 程序對數據庫的操作(如 SQL 執行、結果映射),解決 JDBC 編程繁瑣的問題。


在實際開發中,二者的配合方式通常是:通過 Maven 的 pom.xml ?文件引入 MyBatis 的依賴,讓 Maven 自動下載并管理 MyBatis 的 Jar 包,開發者則可以專注于使用 MyBatis 編寫數據庫操作代碼。

Maven:簡化項目構建

沒有 Maven
1.?需手動從官網下載第三方 Jar 包(如 MyBatis、Spring 的 Jar 包)。
2.?需手動將 Jar 包復制到項目的 ?lib??目錄,并手動配置構建路徑。
3.?若 Jar 包存在版本沖突或依賴傳遞(如 A 依賴 B,B 依賴 C),需手動排查和下載所有關聯 Jar 包,極易出錯。

有 Maven
1.?只需在項目的 ?pom.xml??文件中,配置依賴的“坐標”(groupId、artifactId、version)。
2.?Maven 會自動從中央倉庫下載 Jar 包,并自動處理依賴傳遞(下載所有關聯 Jar 包)。
3.?版本沖突可通過 Maven 自帶的依賴調解機制解決,無需手動干預。

MyBatis:簡化Jdbc

1. 自動管理數據庫連接(Connection)
?
JDBC 痛點:需手動加載驅動、創建 ?Connection?、手動關閉連接(若忘記關閉會導致連接泄漏),代碼冗余且易出錯。
?
MyBatis 優化:通過 ?mybatis-config.xml??配置數據源(如數據庫 URL、賬號密碼),MyBatis 自動完成驅動加載、?Connection??創建與關閉,還能集成連接池(如 Druid)優化連接復用,開發者無需關注連接細節。
?
2. 消除 SQL 執行的模板代碼(PreparedStatement 相關)
?
- JDBC 痛點:執行 SQL 需手動創建 ?PreparedStatement?、手動設置參數(?setInt?/?setString?)、手動處理結果集(?ResultSet??遍歷封裝),代碼重復且與業務邏輯混雜。
?
- MyBatis 優化:
?
- 開發者只需在 Mapper 接口(或 XML)中定義方法與 SQL,MyBatis 自動創建 ?PreparedStatement?、自動匹配參數(按參數名/位置映射)。
?
- 自動將 ?ResultSet??結果映射為 Java 對象(如 ?User?),無需手動遍歷封裝。
?
3. SQL 與 Java 代碼分離(解耦)
?
- JDBC 痛點:SQL 語句硬編碼在 Java 代碼中(如上述 ?String sql = "..."?),若需修改 SQL,必須修改 Java 代碼并重新編譯,維護成本高。
?
- MyBatis 優化:支持將 SQL 寫在獨立的 Mapper XML 文件中(如 ?UserMapper.xml?),Java 代碼只負責調用接口方法,SQL 修改無需改動 Java 代碼,實現“業務邏輯”與“數據操作語句”的解耦。

一、maven環境配置(已經導入了Maven包):

1.打開系統屬性-->高級-->環境變量,在系統變量中點擊新建填寫變量名為“MAVEN_HOME”,變量值為maven路徑(看到bin目錄但不要點開)。點擊確認。

2.找到系統變量中的“Path”變量點擊編輯,新建一個“%MAVEN_HOME%\bin”點擊確認。

3.打開cmd窗口,輸入“mvn -version”,顯示:

則說明創建成功。

二、配置Maven下載遠程包的路徑:

1.在maven主文件夾下(能看到bin目錄的那個)創建名為“localbar”(名字和地址可以任取,只不過我用的是這個)文件夾。

2.打開config文件夾下的settings.xml配置文件(使用什么工具都可以,記事本也行)在大概46行左右寫入說明后續文件導入路徑:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><localRepository>D:\apache-maven-3.6.0\localbar</localRepository>

3.再在第162行左右輸入:

 <mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror>

配置一個阿里云鏡象提高下載速度和可用性。

三、在IDEA中配置Maven和MyBatis:

1.打開我們的IDEA創建一個新項目,勾選左側的Maven開頭的Generator(生成器)創建一個Maven項目。在Archetype中選則一個后綴為quickstart的選項(全名:org.apache.maven.archetypes:maven-archetype-quickstart),再在GroupId中填寫組名稱:

第一次創建需要下載很多東西,花費時間比較多,要有耐心。

2.加載完畢后,在屏幕最右側有一個大“M”圖標,點擊它。Maven頁面加載出來后,在頁面右上方有一個齒輪模樣的按鍵,點擊它,并點擊Maven Settings:

3.點開后,找到Maven home path:點擊右邊的三個點,把路徑改成我們導入我們導入的Maven路徑。找到User setting file這一行,勾選Override重寫選項,更改路徑為maven-->conf-->setting.xml。此時下面的Local respository會自動更改為之前在xml文件中setting更改的路徑(我的就是maven-->localbar)如果沒有自動更改,可能是配置文件(xml文件)中寫的路徑有問題。

該項目下的目錄:

由此,maven項目的基礎配置就搞定了。

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

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

相關文章

Java 泛型詳解:從基礎到高級應用

目錄 一、泛型的基本概念 為什么需要泛型&#xff1f; 二、泛型類與泛型接口 【1】定義泛型類 【2】定義泛型接口 三、泛型方法 四、泛型通配符 【1】無界通配符&#xff08;?&#xff09; 【2】上界通配符&#xff08;? extends T&#xff09; 【3】下界通配符&am…

嵌入式 Linux 啟動機制全解析:從 Boot 到 Rootfs

&#x1f680; 嵌入式 Linux 啟動機制全解析&#xff1a;從 Boot 到 Rootfs 在嵌入式系統中&#xff0c;Linux 的啟動流程不僅是內核加載的過程&#xff0c;更是 bootloader、設備樹、初始根文件系統、啟動配置文件等多個組件協同工作的結果。不同的文件系統和啟動方式會影響系…

Python 操作Office的PPT、Word、Excel,同時兼容WPS

文章目錄概要一、環境準備1. 安裝必要的Python庫2. 系統要求二、核心實現原理1. 檢測已安裝的Office類型2. 初始化對應的應用程序三、完整代碼實現四、使用示例五、WPS兼容處理詳解1. 形狀和文本框訪問兼容處理2. PPT圖片粘貼兼容處理3. 資源釋放的重要性六、圖片操作實現詳解1…

ISP之DHCPv6-PD(前綴代理)為用戶下發前綴

一、組網需求家庭用戶要使用IPv6地址接入互聯網。為方便用戶接入&#xff0c;運營商使用DHCPv6-PD的方式給家用路由器下發IPv6地址前綴&#xff0c;用戶路由器LAN側不需要手工指定鏈路的IPv6地址前綴&#xff0c;家用路由器可以給用戶終端自動配置IPv6地址和其它網絡參數。本例…

Django全棧班v1.04 Python基礎語法 20250912 上午

rm 刪除命令 注意&#xff1a;刪除操作是不可逆的&#xff0c;一旦刪除就無法撤銷&#xff0c;請謹慎使用。刪除文件&#xff1a; rm file.py遞歸刪除目錄&#xff1a; rm -r demo/強制刪除&#xff1a; rm -f file.py交互式刪除&#xff1a; rm -i *.txt課程定位 “學習Python…

Java 21 虛擬線程高并發落地:中間件適配、場景匹配與細節優化的技術實踐

作為 Java 21 的核心特性,虛擬線程(Virtual Thread)憑借 “用戶態調度”“輕量級資源占用” 的優勢,成為高并發場景下線程模型優化的重要方向。但在實際落地中,不少團隊會陷入 “技術用了卻沒效果” 的困境 ——QPS 提升有限、中間件調用阻塞、CPU 使用率異常升高。 本文…

數據庫在并發訪問時,不同隔離級別下臟讀幻讀問題

數據庫隔離級別并非安裝后就固定&#xff0c;絕大多數主流數據庫&#xff08;如MySQL、PostgreSQL、SQL Server&#xff09;都支持動態調整和運行中自定義&#xff0c;具體調整范圍可分為全局、會話和語句三個層級。 全局級別調整&#xff1a;修改數據庫配置文件&#xff08;如…

JVM從入門到實戰:從字節碼組成、類生命周期到雙親委派及打破雙親委派機制

摘要&#xff1a;本文圍繞 Java 字節碼與類加載機制展開&#xff0c;詳解字節碼文件組成、類的生命周期&#xff0c;介紹類加載器分類、雙親委派機制及打破該機制的方式&#xff0c;還闡述了線程上下文類加載器與 SPI 機制在 JDBC 驅動加載中的應用&#xff0c;幫助深入理解 Ja…

多源最短路(Floyd算法

多源最短路簡介 多源最短路算法用于解決圖中任意兩節點間最短路徑的問題&#xff0c;廣泛應用于交通網絡、社交關系分析、路由優化等場景。與單源最短路&#xff08;如Dijkstra&#xff09;不同&#xff0c;它一次性計算所有節點對的最短距離&#xff0c;適合需要全局路徑規劃的…

【攻防實戰】記一次攻防實戰全流程

那天我向眾神祈禱&#xff0c;最后回答我的卻只有掙扎十年依舊不甘的自己&#xff01;成功究竟是饋贈還是償還。 前言 網絡安全技術學習&#xff0c;承認??的弱點不是丑事&#xff0c;只有對原理了然于?&#xff0c;才能突破更多的限制。 擁有快速學習能力的安全研究員&…

Anaconda配置環境變量和鏡像

Anaconda配置環境變量和鏡像 下載失敗就是開了梯子 Anaconda 作用&#xff1a;包管理&#xff08;集中&#xff0c;有序&#xff09;和環境管理&#xff08;版本切換&#xff09;使用conda命令對虛擬環境創建、刪除自帶python解釋器pip&#xff08;python自帶的包管理工具&…

給定單詞倒排

實現代碼&#xff1a;public static void main(String[] args) {Scanner scanner new Scanner(System.in);// 輸入的字符串String input scanner.nextLine();// 存儲單詞List<String> words new ArrayList<>();// 存儲當前單詞StringBuilder currentWord new S…

IO進程——進程引入、進程函數接口

一、引入1、進程&程序1.1 程序編譯好的可執行的文件存放在磁盤上的指令和數據的有序集合&#xff08;文件&#xff09;程序是靜態的&#xff0c;沒有任何執行的概念1.2 進程一個獨立的可調度的任務執行一個程序所分配的資源的總稱進程是程序執行的一次過程進程是動態的&…

周末游戲推薦:安卓端俄羅斯方塊,經典與創新的結合

前段時間&#xff0c;每到周末我都會給大家推薦一些離線的經典游戲&#xff0c;原本打算將這個傳統一直延續下去。然而&#xff0c;我實在找不到足夠好用且無廣告的游戲了。有些游戲剛開始用的時候還不錯&#xff0c;但用著用著就開始頻繁彈出廣告&#xff0c;這讓我實在不敢向…

《用 Scikit-learn 構建 SVM 分類模型:從原理到實戰的全流程解析》

《用 Scikit-learn 構建 SVM 分類模型:從原理到實戰的全流程解析》 一、引言:為什么選擇 SVM? 在機器學習的眾多算法中,支持向量機(SVM)以其強大的分類能力和良好的泛化性能,在文本分類、人臉識別、醫學診斷等領域廣泛應用。尤其在中小規模數據集上,SVM 往往能提供比…

一文學會CMakeLists.txt: CMake現代C++跨平臺工程化實戰

你能學到什么&#xff1f;朋友們好久不見&#xff0c;我是alibli&#xff0c;好久沒有更新博客了。今天本人將通過構造一個實際的虛擬小項目&#xff0c;來讓你徹底掌握CMake跨平臺工程構建&#xff0c;學會CMakeLists.txt語法。該項目實現了一個簡單的平方、立方的計算程序&am…

高并發場景下限流算法實踐與性能優化指南

高并發場景下限流算法實踐與性能優化指南 在大規模并發訪問環境中&#xff0c;合理的限流策略能保護后端服務穩定運行&#xff0c;避免系統因瞬時高并發導致資源耗盡或崩潰。本文將從原理出發&#xff0c;深入解析幾種主流限流算法&#xff0c;并結合Java和Redis給出完整可運行…

Vue3應用執行流程詳解

精確化的完整執行流程 (以 Vite Vue3 SPA 為例)整個過程可以分為兩部分&#xff1a;首次訪問的“冷啟動”和后續的Vue應用接管。第一部分&#xff1a;首次訪問與頁面加載客戶端&#xff1a;發送請求用戶打開瀏覽器&#xff0c;輸入 URL&#xff08;如 http://localhost:5173&a…

Redis 持久化與高可用實踐(RDB / AOF / Sentinel / Cluster 全解析)

這篇是我把幾套生產環境踩坑與復盤整理成的一份“從 0 到 1 長期可維護”的實踐文。目標是&#xff1a;明確策略、給出默認可用的配置模板、把常見坑一次講透。 適用場景&#xff1a;新項目選型、老項目穩定性加固、從單機遷移到 HA/Cluster、應對數據安全與故障切換要求。目錄…

Linux內核的PER_CPU機制

參考書《Linux內核模塊開發技術指南》 1.原理 在多核CPU的情況下&#xff0c;為了提高CPU并發執行的效率&#xff0c;對于某些不是必須要在核間進行同步訪問的資源&#xff0c;可以為每一個CPU創建一個副本&#xff0c;讓每個CPU都訪問自身的數據副本&#xff0c;而不是通過加鎖…