MyBatis 环境搭建配置全过程【IDEA】

news/2024/5/20 6:03:10/文章来源:https://blog.csdn.net/m0_52861684/article/details/127486698

文章目录

    • 一、MyBatis 介绍
    • 二、MyBatis 环境搭建
      • 1.MyBatis 下载
      • 2.配置 jdk 版本
      • 3.创建 Maven 工程
      • 4.IDEA 连接数据库
      • 5.项目文件构架
      • 6.引入相关依赖
      • 7.命令行创建数据库
      • 8.数据库配置文件
      • 9.核心配置文件
    • 三、入门测试程序
      • 1.创建表准备数据
      • 2.创建 POJO 实体
      • 3.创建映射文件
      • 4.修改核心配置文件
      • 5.编写测试类

一、MyBatis 介绍

MyBatis 是一个支持普通 SQL 查询、存储过程以及高级映射的持久层框架,它消除了几乎所有的 JDBC 代码和参数的手动设置以及对结果集的检索,使用简单的 XML 或注解进行配置和原始映射,将接口和 Java 的 POJO 映射成数据库中的记录,使得 Java 开发人员可以使用面向对象的编程思想来操作数据库

针对 JDBC 编程的劣势,MyBatis 提供了以下解决方案,具体如下:

① 在 SqlMapConfig.xml 中配置数据连接池,使用连接池管理数据库链接;
② MyBatis 将 SQL 语句配置在 MyBatis 的映射文件中,实现了与 Java 代码的分离;
③ MyBatis 自动将 Java 对象映射至 SQL 语句,通过 Statement 中的 parameterType 定义输入参数的类型;
④ MyBatis 自动将 SQL 执行结果映射至 Java 对象,通过 Statement 中的 resultType 定义输出结果的类型。

二、MyBatis 环境搭建

1.MyBatis 下载

官方地址:https://github.com/mybatis/mybatis-3

(1)打开之后往下滑,找到 Download Latest 下载最新版本。

在这里插入图片描述
(2)这里可以看到三个包,第一个是我们要的架包,后两个是不同系统下的源码,我们下载第一个架包。

在这里插入图片描述

2.配置 jdk 版本

File → Project Structure → Project,1处选择你的 jdk 版本,2 处版本与1一致,Apply。

在这里插入图片描述

3.创建 Maven 工程

(1)由于 IDEA 中集成了 Maven,所以我们就不需要下载了,直接使用 IDEA 默认的 Maven 进行项目构建。

(2)打开 IDEA 开发工具,单击 File → new → Project,选择 Maven,点击 Next。

在这里插入图片描述

(3)第一行给你的项目起一个名字吧,第二行选择项目要存放的位置,我这里项目的名字叫 MyProject,可以提前在桌面上创了一个文件夹 My 用来放项目文件。(当然位置自己决定)

在这里插入图片描述
不要忘记点击 finish 完成!

(4)如图创建成功后就是这个样子。

在这里插入图片描述

4.IDEA 连接数据库

① View → Tool Windows → DataBase → 屏幕右侧点加号 → DataSource → MySQL

在这里插入图片描述

② 填写以下内容

在这里插入图片描述

Name 值随便起无所谓,填写你的 MySQL 用户名及密码,Database 处填数据库名,我们刚刚的数据库名叫 mybatis,下面URL路径不用管填了 Database 会自动生成。

③ 点击 Driver:MySQL → Go to driver,选择你的数据库 jar 包,这个包的位置要看你当初把 MySQL 安装在哪个地方了。

④ 点击下面的 Test Connection,是一个测试,如果下面不报错则代表连接成功,最后一步点击 Apply 应用,连接成功后会在 IDEA 右侧显示。

5.项目文件构架

下图是我的项目目录,全部都展开了,大家先按这个构架去创建各种包及文件,名字最好先跟我的一样,避免后面出错。

在这里插入图片描述

项目需要创建的文件我都展开了,target 里面的不用你管是自动生成的!

6.引入相关依赖

将以下依赖代码复制并粘贴到 pom.xml 文件中,什么都不用改,直接复制!

   <dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>compile</scope></dependency></dependencies><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources></build>

在这里插入图片描述

大约粘贴到这个位置,至于我的主题颜色为什么又换成白色的了,hhhhh因为电脑没电了,感JIO眼睛快X了~好了好了言归正传,听我的听我的,下一步赶快去创建一个数据库备用!

7.命令行创建数据库

命令行创建数据库:

create database mybatis;

在这里插入图片描述

8.数据库配置文件

db.properties 文件就是数据库连接的配置文件,在该文件中配置相关参数。

mysql.driver=com.mysql.cj.jdbc.Driver
mysql.username=root
mysql.password=123456bb
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false

在这里插入图片描述

先把我的代码全部复制上,需要你自己修改的地方有三个,1处是你的 MySQL 用户名,2处是你的 MySQL 密码,3处是数据库名,即 mybatis 这是我们刚才创建的那个数据库!

9.核心配置文件

刚刚创建的 MybatisConfig.xml 就是 Mybatis 的核心配置文件。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><properties resource="db.properties"/><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><!--                JDBC 驱动--><property name="driver" value="${mysql.driver}"/><!--                url数据库的 JDBC URL地址。--><property name="url" value="${mysql.url}"/><property name="username" value="${mysql.username}"/><property name="password" value="${mysql.password}"/></dataSource></environment></environments><mappers><!--引入映射文件--><mapper resource="Mapper/UserMapper.xml"/></mappers></configuration>

如果你是跟着我的步骤一步一步来的,那么不需要修改任何地方,可以完全复制。

三、入门测试程序

1.创建表准备数据

use mybatis;
//创建表
create table Users(uid int not null auto_increment primary key,uname varchar(10) not null,uage int not null
);
//插入数据
insert into Users(uid,uname,uage) values(null,'张三',20),(null,'李四',18);

在这里插入图片描述

2.创建 POJO 实体

pojo 包下的 User 类,用于封装 User 对象的属性。

package com.tyut.pojo;public class User {private int uid;private String uname;private int uage;public int getUid() {return uid;}public void setUid(int uid) {this.uid = uid;}public String getUname() {return uname;}public void setUname(String uname) {this.uname = uname;}public int getUage() {return uage;}public void setUage(int uage) {this.uage = uage;}
}

各变量名称与数据库里的保持一致,同样如果你是完全跟着我走的,那可以直接复制了!

3.创建映射文件

Mapper 文件夹下的 UserMapper.xml 文件即映射文件。

<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tyut.pojo.User"><select id="findById" parameterType="int" resultType="com.tyut.pojo.User">select * from users where uid = #{id}</select>
</mapper>    

如果上面配置都是完整跟下来的话,可以直接复制我上面的代码粘贴到你的 UserMapper.xml 文件里,如果文件名或者数据库里面的表名等等不一样的话,可自行修改,注意路径写对。

每次新建一个实体类就要创建一个映射文件,由于创建映射文件不会提供头部声明,复制粘贴起来也很麻烦,所以这里我们可以通过创建一个映射文件模板的方式,新建映射文件。(当然不影响本项目,你可以不创建,只不过为了方便)

具体步骤,File → Settings → Editor → File and Code Templates → 加号

在这里插入图片描述

复制我的代码进去:

<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tyut.pojo.User">
</mapper>    

在这里插入图片描述
别忘了 Apply,下次需要可直接在选项卡中看到 mapperxml!

4.修改核心配置文件

继续打开我们前面已经创建好的 MybatisConfig.xml 文件,现在我们给它配置文件路径,至于刚刚为什么没有配置,是因为这个路径就是映射文件所在的位置,所以我们先把映射文件编写完再返回来给 MybatisConfig.xml 设置路径。

<mappers><!--配置xxxMapper.xml文件的位置--><mapper resource="Mapper/UserMapper.xml"/>
</mappers>

在这里插入图片描述

5.编写测试类

测试类在Test下的 UserTest 中。

package com.tyut.Test;
import com.tyut.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.Reader;
import java.io.IOException;public class UserTest {@Testpublic void userFindByTest() {String resources = "MybatisConfig.xml";Reader reader = null;try {reader = Resources.getResourceAsReader(resources);}catch (IOException e) {e.printStackTrace();}SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);SqlSession session = sqlMapper.openSession();User user = session.selectOne("findById",1);System.out.println("姓名\t年龄");System.out.println(user.getUname()+"\t"+user.getUage());session.close();}
}

运行结果:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_218627.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

將一個react+nodejs聊天軟件前後端項目進行docker打包並運行

文章目录1概述2将react前端打包入docker2.1打包react项目2.2nginx配置2.3创建Docker镜像2.4打包和运行2.5上传dockerhub3将nodejs打包入dockerDockerfile文件.dockerignore 文件打包和运行上传dockerhub1概述 https://gitee.com/chuge325/practise–chat-app-react-nodejs.git…

爱上源码,重学Spring IoC深入

回答&#xff1a; 我们为什么要学习源码&#xff1f; 1、知其然知其所以然 2、站在巨人的肩膀上&#xff0c;提高自己的编码水平 3、应付面试1.1 Spring源码阅读小技巧 1、类层次藏得太深&#xff0c;不要一个类一个类的去看&#xff0c;遇到方法该进就大胆的进 2、更不要一行…

左程云老师算法课笔记( 四)

前言 仅记录学习笔记&#xff0c;如有错误欢迎指正。 啊啊&#xff0c;才发现二被我挤掉了&#xff0c;有空补下&#xff01; 一、图&#xff1a; 图的深度优先遍历&#xff1a;&#xff08;和二叉树的区别就是有环&#xff0c;不能重复打印&#xff09;&#xff08;Queue队…

网课搜题接口-查题校园题库系统

网课搜题接口-查题校园题库系统 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&…

全球名校AI课程库(28)| MIT麻省理工 · 基因组学机器学习课程『Machine Learning for Genomics』

&#x1f3c6; 课程学习中心 | &#x1f6a7; AI生物医疗课程合辑 | &#x1f30d; 课程主页 | &#x1f4fa; 中英字幕视频 | &#x1f680; 项目代码解析 课程介绍 MIT 6.047/6.878是全球顶校麻省理工开设的基因组学与机器学习的交叉专业课程。课程以基因组学为主要应用领域…

智慧城市万亿级蓝海赛道机遇何在?

工商业的发展&#xff0c;为人类居住历史增添了“城市”这一全新的选项。从春秋战国时期的“货市”&#xff0c;到13世纪地中海沿岸星罗棋布的都市&#xff0c;风格迥异的城市为身处不同时代的居民提供了栖居之地。仅在中国&#xff0c;城市就以不到6%的土地面积&#xff0c;维…

个人征信预测

个人征信预测 --数据分析项目报一、项目概述 通过脱敏的现有数据&#xff0c;如&#xff1a;用户基本身份信息&#xff0c;消费行为&#xff0c;银行还款等&#xff0c;进行数据处理特征&#xff0c;选取并建立逾期预测模型&#xff0c;预测用户是否会逾期还款。二、项目概述数…

SSD目标检测网络ONNX推理,为tensorrt推理做准备【附代码】

本篇文章是实现SSD的onnx推理&#xff0c;主要是为后期tensorrt推理打下基础&#xff0c;YOLOv4以及YOLOv5的tensorrt推理可以看我之前的文章。 SSD的代码我这里下载的是b站up主Bubbliiiing的pytorch版SSD&#xff0c;大家可自行下载【我这里就不传代码了&#xff0c;等最近把…

期货开户用心服务每个客户

用心服务每一个客户&#xff01;以信为本&#xff0c;点石成金&#xff01; 蓄之既久&#xff0c;其发必速 如果价格连续多天在—个狭窄的幅度内升降&#xff0c;在图表上形成一幅有如建筑地盘布满地基桩的图景&#xff0c;习惯上称之为密集区&#xff0c;亦即专家所说的技术…

【GraphQL】Node + Postgres + adminer实现demo应用

1、程序目录 在第一级目录下存在三个文件&#xff0c; db.sql用于创建tables和demo数据&#xff0c;可以直接在adminer里登录执行sql语句进行创建&#xff0c;可以看到如下图绿色部分的执行结果 docker-compose.yaml用于为node、postgres和adminer分别创建一个容器&#xff0…

数明SLM27517能驱动MOSFET和IGBT功率开关 低侧栅极驱动器兼容UCC27517

SLM27517 单通道&#xff0c;高速&#xff0c;低侧栅极驱动器器件可以有效地驱动MOSFET和IGBT功率开关。使用设计其固有地最小化击穿电流&#xff0c;可以源汇高峰值电流脉冲转换为电容性负载轨对轨驱动能力非常小传播延迟通常为15ns。可提供4 A电源&#xff0c;5 A接收器12 V …

语音识别 CTC Loss

(以下内容搬运自 PaddleSpeech) Derivative of CTC Loss 关于CTC的介绍已经有很多不错的教程了&#xff0c;但是完整的描述CTCLoss的前向和反向过程的很少&#xff0c;而且有些公式推导省略和错误。本文主要关注CTC Loss的梯度是如何计算的&#xff0c;关于CTC的介绍这里不做…

泛海微告诉你电压检测IC主要用途会是什么呢

泛海微告诉你电压检测IC主要用途会是什么呢&#xff1a; FS61CN3302MR电压检测IC(芯片)是一款高精度,低功耗的电压检测器芯片,并采用了CMOS生产工艺和激光微调技术。XC61C温度漂移特性的影响很小,电压检测精度很高。 ​ ①充电电池配电设备的开关电源一部分。 ②鼠标&#x…

MaxViT:多轴视觉Transformer

论文链接&#xff1a;https://arxiv.org/abs/2204.01697 代码链接&#xff1a;https://github.com/google-research/maxvit 如果进入不了github就直接在这里下载&#xff0c;不过没有权重文件&#xff0c;免费的&#xff1a;https://download.csdn.net/download/weixin_4491103…

THREE.JS实现看房自由(VR看房)

VR看房一、前言二、基础知识三、场景3.1 网络模型3.2 光照3.2.1 环境光3.2.2 平行光3.2.3 点光源3.2.4 聚光灯3.2.5 半球光四、相机4.1 正交相机4.2 透视相机五、渲染器六、贴图纹理6.1 基础介绍6.2 环境贴图6.3 HDR处理七、拓展7.1 坐标系7.2 控制器7.3 自适应7.4 全屏响应7.5…

Vue3官方出的Playground你都用了吗?没有没关系,直接原理讲给你听

相比Vue2&#xff0c;Vue3的官方文档中新增了一个在线Playground&#xff1a; 打开是这样的&#xff1a; 相当于让你可以在线编写和运行Vue单文件组件&#xff0c;当然这个东西也是开源的&#xff0c;并且发布为了一个npm包&#xff0c;本身是作为一个Vue组件&#xff0c;所以可…

Eureka注册中心微服务搭建

1、application.yml server:port: 6001 # 服务端口eureka:instance:hostname: eureka6001.com # eureka服务端的实例名称client:registerWithEureka: false # 服务注册&#xff0c;false表示不将自已注册到Eureka服务中fetchRegistry: false # 服务发现&#xff0c;false表示自…

Unity 加载资源

直接把资源放在unity的目录里是不行的 打包的时候 不会打进去 要想打包到apk里 只有两种选择 1 放到 StreamingAssets 里 – Application.streamingAssetsPath 2 场景里有引用 他会自动打包进apk里 资源放到预制体里 并且预制体没在场景里 也不打包 先安装 https://github.co…

无法找到 Adobe PDF资源文件。“Acrobat PDFMaker“您必须具有”管理员”权限方可安装这些文件...错误怎么解决

在学习和工作中我们经常会碰到将Word转化为PDF的情况&#xff0c;PDF文件的可读性要比Word更好一点&#xff0c;而且打印出来的格式也和PDF文件的排版一致&#xff0c;不会出错。 电脑里安装有 Word 和 Adobe Acrobat DC 软件时&#xff0c;在将Word转为PDF文件时只需要在Word下…

擎创动态 | 1024 这么过,隔壁公司都馋哭了

左手咖啡杯&#xff0c;右手耍魔方 身穿潮流衣&#xff0c;眼戴金丝镜 发型酷帅炫&#xff0c;多才又多艺 百变外观&#xff0c;精致容颜 可盐可甜&#xff0c;又御又萌 技术高超&#xff0c;能力卓越 没错&#xff0c;描述的这种靓仔靓女 就是擎创的中流砥柱——程序员 …