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

news2024/10/7 18:21:03

文章目录

    • 一、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 configuration
        PUBLIC "-//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 mapper
        PUBLIC "-//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 mapper
        PUBLIC "-//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 {
    @Test
    public 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.coloradmin.cn/o/1241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何增加 KVM 虚拟机的磁盘大小

KVM 是一种集成到 Linux 内核中的虚拟化技术。您可以使用virsh、virt-manager和GNOME Boxes等工具创建虚拟机并与 KVM 交互。 磁盘空间不足是最常见的 VM 来宾问题之一。在测试新 VM 时,您可能会故意使用较小的磁盘。随着时间的推移,您会累积文件,直到虚拟磁盘几乎已满。以…

C语言笔记

fabs用来求double类型的绝对值&#xff0c;小数点后保留6位#include<math.h> double fabs(double ) labs用来求长整型long整型的绝对值&#xff0c; long cabs(long n); abs用来求整数的绝对值&#xff0c;labs求long long的绝对值#include<stdlib.h> double ret …

初识C++ (二)

初识C 二 上节课输入输出问题的一些补充一. 缺省参数1.1 半缺省参数1.2 全缺省参数二. 函数重载2.1 重载是什么意思&#xff1f;2.2 如何区分重载函数参数类型不同参数个数不同参数顺序不同附加题1附加题22.3 c支持函数重载的原理预处理编译汇编连接总结要以一种很认真的态度去…

深度优先搜索(dfs)和广度优先搜索(bfs)

目录 一、前言 二、关于dfs和bfs有意思的小故事 三、深搜题例 1、小猫爬山链接 2、基本思路 3、代码 &#xff08;1&#xff09;python代码 四、广搜题例 1、武士风度的牛链接 2、基本思路 3、代码 &#xff08;1&#xff09;C代码 &#xff08;3&#xff09;pyth…

现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢?

C/C会不会被时代淘汰&#xff1f;这个问题跳过了一步&#xff0c;关键是这个问题&#xff1a; C/C有哪些其它语言难以代替的特殊之处&#xff1f; 1、对实现细节的控制粒度 一般我们常说&#xff1a;C/C具有较高的执行效率。其实这句话不是特别准确&#xff0c;有时候它们并…

npm报错整理

npm报错整理一、代理1. 因为使用公司的镜像源导致的403 forbidden总结一、代理 1. 因为使用公司的镜像源导致的403 forbidden 在更新脚手架的时候&#xff0c;遇到了403的报错&#xff1a; 遇到问题不要怕&#xff0c;我们根据错误去解决就好。 &#xff08;1&#xff09;首…

【黄啊码】MySQL入门—13、悲观锁、乐观锁怎么用?什么是行锁、页锁和表锁?死锁了咋办?

大家好&#xff01;我是黄啊码&#xff0c;MySQL的入门篇已经讲到第12个课程了&#xff0c;今天我们继续讲讲大白篇系列——数据库锁 目录 从数据库管理的角度对锁进行划分 共享锁也叫读锁或 S 锁 排它锁也叫独占锁、写锁或 X 锁。 意向锁&#xff08;Intent Lock&#xf…

C++库——windows下使用Qt5.15.2+mingw64+msys2编译c++数学库GSL

文章目录准备配置msys2编译GSL准备 下载gsl库的源代码。大家可以到GSL的官网下载gsl的源代码。目前版本为2.7&#xff0c;下载完成后解压缩。 下载msys2。msys2是一套在windows上运行的用于构建库和程序的工具库&#xff0c;下载地址可以使用清华源的下载地址。下载完成后&…

【论文解读】伪装物体检测 Camouflaged Object Detection

文章目录伪装物体检测 Camouflaged Object DetectionSINet v1RF模块&#xff1a;PDC模块&#xff1a;SINet v2特征提取Texture Enhanced Module 纹理增强模块Neighbor Connection Decoder 邻居连接解码器Group-Reversal Attention 组反转注意力总结伪装物体检测 Camouflaged Ob…

计算机毕业设计之java+javaweb的烯烃厂压力管道管理平台

项目介绍 系统权限按管理员和用户这两类涉及用户划分。 (a) 管理员&#xff1b;管理员使用本系统涉到的功能主要有&#xff1a;主页、个人中心、通知公告管理、用户管理、管道信息管理、单位信息管理、管道统计信息管理等功能。 (b) 用户登录进入系统可以对主页、个人中心、通…

2022高频经典前端面试题(html+css+js上篇,含答案)

博主经历过多轮面试&#xff0c;因此想将自己的面试经验以及答题技巧&#xff0c;分享给即将面试找前端工作的同学。 2022高频经典前端面试题分为上中下三篇&#xff0c;分别会有html,css,js,es6,vue,ts,nodejs,以及hr面和反问面试官几个维度去进行&#xff0c;完整的还原面试场…

在 Linux 中使用 tcp 转储命令来分析网络

前言 Tcpdump是用于分析网络和查找相关网络问题的出色工具。它会在数据包经过时捕获数据包&#xff0c;并向您显示网络上正在发生的事情和传入情况。该命令的输出显示在 STDOUT 上&#xff0c;也可以存储在文件中。 感谢开发人员&#xff0c;他们将Tcpdump保留为开源项目。它…

LinkedIn最好工具-领英精灵有哪些批量加好友方法?

领英工具-领英精灵有哪些批量加好友方法 使用领英的人都会使用领英精灵&#xff0c;因为领英精灵是目前本土做得最好的领英工具&#xff0c;具有很多强大的功能。特别是拓展人脉方面&#xff0c;提供了很多批量加好友的方法。刚使用的新手可能不知道如何操作&#xff0c;下面就…

施耐德电气“创新开放日”走进中国软件研发中心 以软件与创新驱动产业“双转型”

来源 | 施耐德电气 2022年10月27日&#xff0c;施耐德电气在位于北京亦庄的中国软件研发中心举办“创新开放日”&#xff0c;充分展示其在中国深化研发的战略布局。当天&#xff0c;施耐德电气展示了该中心成立一周年以来的创新研发成果&#xff0c;并与合作伙伴共话软件发展趋…

【jsdoc-to-markdown】一步步实现js文件的文档生成

文章目录导读开发环境安装Vs code插件&#xff1a;Doxygen Documentation Generator效果优势jsdoc-to-markdown的使用了解 jsdocjsdoc-to-markdown安装创建测试文件example.jsjsdoc-to-markdown使用jsdoc-to-markdown踩坑&#xff01;&#xff01;&#xff01;参考资料导读 这个…

【C++】一文带你吃透string的模拟实现 (万字详解)

&#x1f308;欢迎来到C专栏~~ 模拟实现string (꒪ꇴ꒪(꒪ꇴ꒪ )&#x1f423;,我是Scort&#x1f393;&#x1f30d;博客主页&#xff1a;张小姐的猫~江湖背景快上车&#x1f698;&#xff0c;握好方向盘跟我有一起打天下嘞&#xff01;送给自己的一句鸡汤&#x1f914;&#…

生态流量智能终端机 水电站生态流量多媒体智能终端-视频叠加、数据采集、远程传输

平升电子生态流量智能终端机 水电站生态流量多媒体智能终端是一款集人机交互、视频叠加、4G路由、数据采集、逻辑运算与远程传输功能于一体的多媒体智能终端设备。 此款产品为水电站生态流量监测项目的专用产品&#xff0c;便于监管单位及时掌握水电站的流量下泄情况&#xff…

【Django框架】——19 Django视图 01 路由配置

文章目录一、视图介绍二、路由配置1. 配置URLconf2.编辑项目中urls.py&#xff08;根路由&#xff09;3.创建应用中 urls.py (子路路由)4.路由文件urls.py5.API讲解一、视图介绍 视图就是应⽤用中views.py⽂文件中的函数 视图的第⼀个参数必须为HttpRequest对象&#xff0c;还…

计算多张图片的移位距离

( A, B )---25*30*2---( 1, 0 )( 0, 1 ) 做一个二分类的网络分类A和B&#xff0c;让A和B的训练集中都有多张图片&#xff0c;用一种平均值的办法把多张图片等效成两张图片&#xff0c;统计两张图片的移位距离&#xff0c;并比较移位距离和迭代次数的关系。 设AB训练集都只有两…

Python编程 赋值,逻辑,位运算符

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.赋值运算符 1.基本赋值运算符 2.注意 二.逻辑运算符 1.逻辑运算符使…