MyBatis--Mapper代理开发和MyBatisX插件使用

2023-11-05 14:51

本文主要是介绍MyBatis--Mapper代理开发和MyBatisX插件使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 一、Mapper代理开发
    •     1、定义mapper接口
    •     2、设置mapper接口全限定名
    •     3、定义接口里面的方法
    •     4、修改sql映射文件为包扫描方式
    •     5、编码
    • 二、mybatisx插件的安装
    •     1、下载
    •     2、使用

一、Mapper代理开发

    1、定义mapper接口

定义与sql映射同名的mapper接口,将映射文件和mapper接口放在同一个包目录下。
1.配置sql映射文件
在resources下新建一个xml文件,将以下内容复制进去。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper"><select id="selectBlog" resultType="Blog">select * from Blog where id = #{id}</select>
</mapper>

修改id,类型,以及你的sql语句
在这里插入图片描述
2.定义mapper接口,这个接口方法名一定要和你的映射文件名对应,后续执行sql语句才能找到。
我这里mapper映射文件名称是UserMapper.xml,所以我需要定义一个叫UserMapper的接口。
在这里插入图片描述
3.将UserMapper借口和UserMapper.xml放置在同一个包目录下。
现在我的UserMapper借口在com.mybatis.mapper包下,而UserMapper.xml映射文件在resources包下。显然两个文件不在一个包目录下。
在这里插入图片描述
你可以把两个文件拖到一个包下,这是一种方法。只是这种方法复用性不好,对后期代码维护不友好。当然有其他办法,就是在resources目录下建一个和UserMapper相同目录的包,比如我这里就是com/mybatis/mapper,注意要用斜线,不能用点,但是建好包之后他会自动转化成为点,不用担心。然后把UserMapper.xml拖进去就行了。
在这里插入图片描述
那怎么证明他两在同一个包目录下呢?只需要编译后,在对应包目录下就可以看见两个在同一个目录下。
在这里插入图片描述
到现在定义mapper接口就成功了。

    2、设置mapper接口全限定名

这里mapper接口里面的全限定名就是前面定义的名称空间,也就是说一定需要和你sql映射文件中对应sql语句的namespace属性相同。
在这里插入图片描述

    3、定义接口里面的方法

接口里面定义的方法名要和sql映射文件的id属性相同,返回类型要和resultType类型相同。
在这里插入图片描述
在这里插入图片描述

    4、修改sql映射文件为包扫描方式

将mybatis-config.xml的sql映像修改为

	<!--    加载sql映射文件-->
<mappers>
<!--        <mapper resource="com.mybatis.mapper.UserMapper.xml"/>--><package name="mapper接口的包名,例如我的是com.mybatis.mapper"/>
</mappers>

    5、编码

步骤和MyBatis代码大致相同,只有第执行sql语句不同(MyBatis编码参考另一篇博客)
大致步骤如下:
1.创建一个对应的数据库的实体类,我数据库里面存放的是用户信息,所以我定义了一个User类。
2.将以下代码放在你的测试类或者自己定义的类里面
第一行主要用于获取驱动以及连接路径(我们在第二步配置核心文件里面已经配置了)
第二行就是把数据库的资源加载到一个字节输入流里面
第三行建立一个sqlSessionFactory对象,用于后面sql语句的执行

    String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

3.获取SqlSession对象,用来执行sql语句

	        SqlSession sqlSession = sqlSessionFactory.openSession();

4.执行sql

	//mapper代理就第三步和MyBatis不同UserMapper mapper = sqlSession.getMapper(UserMapper.class);List<User> users = mapper.selectAll();

5.释放资源

package com.mybatis.demo;import com.mybatis.mapper.UserMapper;
import com.mybatis.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 java.io.InputStream;
import java.util.List;public class MyBatis002 {public static void main(String[] args) throws Exception {
//        1.加载核心配置文件,获取sqlSessionFactory对象String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//        2.获取SQLSession对象SqlSession sqlSession = sqlSessionFactory.openSession();
//        3.执行sql
//        List<User> user = sqlSession.selectList("mybatis.selectAll");
//        mapper代理就第三步和MyBatis不同UserMapper mapper = sqlSession.getMapper(UserMapper.class);List<User> users = mapper.selectAll();System.out.println(users);//        4.释放资源sqlSession.close();}
}

在这里插入图片描述

二、mybatisx插件的安装

    1、下载

在这里插入图片描述
在这里插入图片描述

然后点击apply,就可以了。如果点击后没有效果,就重新启动idea试一下。

    2、使用

如果出现蓝色或者红色小鸟,说明插件安装成功。
在这里插入图片描述
使用的时候主要有两个功能:
1.实现接口和sql映射文件的跳转。比如我需要找UserMapper的sql映射文件,只需要点一下红色小鸟就行了。如果需要找到映射文件对应的接口,只需要点一下蓝色小鸟。
在这里插入图片描述
在这里插入图片描述
2.定义接口时自动生成对应名称sql映射文件。
如我需要生成一个selectByuserName()方法,只需要点击Alt+enter,点击create statement。
插件可以自动给你生成sql映射文件框架,只需要你写里面的sql语句。
在这里插入图片描述
在这里插入图片描述
OK,mapper代理开发和mybatisx插件使用就介绍完了。

这篇关于MyBatis--Mapper代理开发和MyBatisX插件使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/chenxingxingxing/article/details/123515716
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/350591

相关文章

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Pydantic中Optional 和Union类型的使用

《Pydantic中Optional和Union类型的使用》本文主要介绍了Pydantic中Optional和Union类型的使用,这两者在处理可选字段和多类型字段时尤为重要,文中通过示例代码介绍的... 目录简介Optional 类型Union 类型Optional 和 Union 的组合总结简介Pyd

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

Mybatis 传参与排序模糊查询功能实现

《Mybatis传参与排序模糊查询功能实现》:本文主要介绍Mybatis传参与排序模糊查询功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、#{ }和${ }传参的区别二、排序三、like查询四、数据库连接池五、mysql 开发企业规范一、#{ }和${ }传参的