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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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;而不是通过加锁…