当前位置: 首页 > article >正文

Mybatis-Mapper代理开发

之前的问题

之前Mybatis的快速入门案列中
获取完sqlSession对象后

 List<User> users = sqlSession.selectList("test.selectAll");

我们用这个代码来执行
其实这个也属于硬编码-用的是我们使用xml文件中的
命名空间(namespace)+指令(id)的形式
字符串的形式,不会自动补全
so我们用一种新的方式-Mapper代理开发

<mapper namespace="test">

    <!--statement-->
<!--    id是指令的唯一标识,returnType是返回类型(对应JavaBean类)-->
    <select id="selectAll" resultType="com.itheima.pojo.User">
        select *
        from tb_user;
    </select>
</mapper>

Mapper代理开发

学习目标

在这里插入图片描述

案列

在这里插入图片描述

目录和接口创建

1.我们的sql映射文件叫:UserMapper
创建一个同名接口
放在同一目录
在这里插入图片描述
为了方便统一管理sql映射文件一般是不放到java包里的
so我们需要在resource里面创建一个和我们接口同名的目录
注意:在resource只能创建目录所以要这样写
在这里插入图片描述
然后把我们的sql映射文件拖入这个文件夹
编译的时候他们就会在同一目录下(和UserMapper接口)
在这里插入图片描述
如图
在这里插入图片描述

namespace的修改

注意改成全路径
原名test改为从com开始的接口名
com.itheima.mapper.UserMapper
在这里插入图片描述

Mapper接口中定义方法

在Mapper接口中定义方法
方法名和SQL映射文件的id一致
参数类型和返回类型也要一致
在这里插入图片描述
注意这里的到底是返回什么
查询多个是返回一个列表
查询一个的话User就够了

编码

        //3.1获取对应UserMapper接口的代理对象
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> users = mapper.selectAll();
        System.out.println(users);

在这里插入图片描述

流程

通过创建的sqlSession获取Mapper代理对象

通过代理对象找到对应的接口(UserMappper)

然后因为同目录下有一个同名的映射文件

我们调用方法selectAll,对应的mapper对象

会找到xml(sql映射)文件的对应的唯一id
获取对应语句

加载sql映射文件细节

在这里插入图片描述
如图
可以从上面的编程下面的Mapper代理方式
在这里插入图片描述


http://www.kler.cn/a/2555.html

相关文章:

  • LabVIEW软件Bug的定义与修改
  • 清理Mac硬盘超大占用:.Spotlight-V100
  • Angular生命周期
  • 功能篇:mybatis中实现缓存
  • 【MySQL】深度学习数据库开发技术:使用CC++语言访问数据库
  • Apache Traffic存在SQL注入漏洞(CVE-2024-45387)
  • 不愧是2023年就业最难的一年,还好有车企顶着~
  • 十大Python可视化工具,太强了
  • gin框架使用websocket实现进入容器内部执行命令
  • GJB 9001C质量管理体系文件构建(2、质量手册编制要点)第9章、第10章
  • 如何利用学生身份申请使用免费的专业版pycahrm(详细 教程)
  • 模拟登入(验证码识别,Cookie)
  • 安装系统所需软件
  • slice()、substring()、substr()三者的区别
  • Windows权限提升 —SQL Server/MSSQL数据库提权
  • Selenium+Pytest自动化测试框架实战,还不会点这里一清二楚,全网最细教程!
  • 基于点云的深度学习方法预测蛋白-配体结合亲和力【Briefings in Bioinformatics, 2022】
  • 【27】Verilog进阶 - 状态机的三种描述方式
  • 安装KVM并创建虚拟机及基本使用
  • vue2图片预览插件
  • KDGX-A光缆故障断点检测仪
  • 【C语言】通讯录的实现(静态版)
  • C++演讲比赛流程管理系统_黑马
  • 这些IT行业趋势,将改变2023
  • 使用Android架构模板
  • 操作系统(1.2)--引论