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

Mapper代理开发

MyBatis快速开发icon-default.png?t=N176https://blog.csdn.net/weixin_51882166/article/details/129204439?spm=1001.2014.3001.5501

使用Mapper代理方式完成

定义与SQL映射文件同名的Mapper接口 ,将Mapper接口和SQL映射文件放置同一目录结构

新建接口和包:

 

 将Mapper接口和SQL映射文件放置同一目录结构

右键重写编译:

 

运行后点击:

 

查看Mapper接口是否是和SQL映射文件在同一目录结构:

 

 

 

 

设置SQL映射文件的namespace属性为Mapper接口的全限定名

 

在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持类型参数和返回值类型一致。

 按照上面的信息在Mapper定义方法:

因为修改了UserMapper.xml文件的路径,所有在mybatis-config.xml文件里需要重新填写路径:

 

 

 编码

通过SqlSession的getMapper方法获取Mapper接口代理对象

调用对应方法完成sql执行

完整代码:

import mapper.UserMapper;
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 pojo.User;import java.io.IOException;
import java.io.InputStream;
import java.util.List;public class MyBatisDemo2 {public static void main(String[] args) throws IOException {//加载mybatis核心配置文件,获取sqlSessionFactory对象String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//获取sqlsession对象执行sql语句SqlSession sqlSession = sqlSessionFactory.openSession();//执行sql
//        List<User> users = sqlSession.selectList("test.selectAll");//获取UserMapper接口代理对象UserMapper userMapper = sqlSession.getMapper(UserMapper.class);List<User> users = userMapper.selectAll();System.out.println(users);//释放资源sqlSession.close();}
}

查看运行结果:

如果Mapper接口名称与SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载。

执行后再次执行代码运行后:

运行后成功执行查询。

 

http://www.lryc.cn/news/20566.html

相关文章:

  • 为什么在连接mysql时,设置 SetConnMaxIdleTime 没有作用
  • 嵌入式开发利器
  • Qt 的QString类的使用
  • django项目部署(腾讯云服务器centos)
  • 计算机网络笔记、面试八股(一)——TCP/IP网络模型
  • 51单片机入门 - 简短的位运算实现扫描矩阵键盘
  • Mr. Cappuccino的第45杯咖啡——Kubernetes之部署SpringBoot项目
  • vscode在远程服务器提交git的时候无需每次都要输入账号密码的配置
  • 【Spring 基础】
  • 2023年全国最新机动车签字授权人精选真题及答案5
  • 5138: 数字游戏
  • 阅读笔记9——DenseNet
  • PowerAutomation获取邮件附件并删除这个邮件方法
  • websocket报错集锦-不断更新中
  • Spring Cloud Nacos源码讲解(七)- Nacos客户端服务订阅机制的核心流程
  • 【华为OD机试模拟题】用 C++ 实现 - 对称美学(2023.Q1)
  • Go语言内存管理详解-学习笔记
  • Geospatial Data Science (4): Spatial weights
  • JUC-Synchronized相关内容
  • 【c++】文件操作(文本文件、二进制文件)
  • 带你了解IP报警柱的特点
  • 一步步教你电脑变成服务器,tomcat的花生壳设置(原创)
  • Python 卷积神经网络 ResNet的基本编写方法
  • 【索引】什么是索引
  • 【算法刷题】动态规划算法题型及方法归纳
  • PolarDB数据库的CSN机制
  • 使用kubeadm 部署kubernetes 1.26.1集群 Calico ToR配置
  • Servlet笔记(11):Servletcontext对象
  • EM算法是什么
  • C++---线性dp---方格取数(每日一道算法2023.2.25)