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

SSM项目实战-mapper实现

1、SysUserMapper.java

package com.atguigu.schedule.mapper;
import com.atguigu.schedule.pojo.SysUser;
import org.springframework.stereotype.Repository;
@Repository
public interface SysUserMapper {
     SysUser getSysUser(SysUser sysUser);
}

2、ScheduleMapper.java

package com.atguigu.schedule.mapper;
import com.atguigu.schedule.pojo.Schedule;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface ScheduleMapper {
    List<Schedule> getScheduleList(Integer sysUserId);
}

3、mapper/SysUserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace等于mapper接口类的全限定名,这样实现对应 -->
<mapper namespace="com.atguigu.schedule.mapper.SysUserMapper">
    <select id="getSysUser" resultType="SysUser">
        select * from sys_user where username = #{username} and userPwd = #{userPwd}
    </select>
</mapper>

4、mapper/ScheduleMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace等于mapper接口类的全限定名,这样实现对应 -->
<mapper namespace="com.atguigu.schedule.mapper.ScheduleMapper">

    <select id="getScheduleList" resultType="Schedule">
        select * from sys_schedule where uid = #{value}
    </select>
</mapper>

 

在MyBatis中,mapper中的namespace并不是可以随便写的。namespace在MyBatis中起到了唯一标识mapper的作用,它通常与mapper文件的名字相同,并且是全限定名(包含包名)。

在配置文件中定义mapper时,需要指定mapper的namespace,这个namespace应该与mapper文件中的namespace一致。例如,如果mapper文件名为UserMapper.xml,并且位于com.example.mapper包下,那么在配置文件中应该使用如下方式引用该mapper:

<mappers>  
  <mapper resource="com/example/mapper/UserMapper.xml"/>  
</mappers>

而在UserMapper.xml文件中,应该使用如下方式指定namespace:

<mapper namespace="com.example.mapper.UserMapper">  
  <!-- 映射语句 -->  
</mapper>

如果namespace与文件名不一致,将会导致无法正确地加载和使用mapper。因此,建议在定义mapper时,将namespace与文件名保持一致,以确保正确性。

相关文章:

  • 【halcon】halcon 函数文件 以及 脚本引擎如何调用外部函数文件 下篇
  • 基于SSM的图书馆管理系统的设计与实现
  • 目标检测YOLO实战应用案例100讲-基于深度学习的输电线路 鸟巢检测
  • 阿里云虚拟机安装nginx容器步骤
  • 互联网Java工程师面试题·Spring Boot篇·第一弹
  • uniapp开发小程序经验记录
  • python监控cpu程序
  • dockerfile与docker-compose解释及对比
  • C++12.4
  • mysql主从复制-redis集群扩容缩容、缓存优化(缓存更新策略、穿透,击穿,雪崩)、mysql主从搭建、django实现读写分离
  • 「Qt Widget中文示例指南」如何创建一个计算器?(二)
  • [ROS2] --- ROS diff ROS2
  • Python 3 使用 write()、writelines() 函数写入文件
  • SQL Server对象类型(8)——4.8.约束(Constraint)
  • 个人硬件测试用例入门设计
  • 跟我学c++高级篇——动态反射之二动态列表
  • python动态圣诞下雪图
  • C-语言每日刷题
  • MySQL基础『数据类型』
  • echarts 地图
  • 这个“超强致癌细菌”,宝宝感染率高达40%,预防却很简单
  • 220名“特朗普币”持有者花1.48亿美元,获邀与特朗普共进晚餐
  • 旭辉控股集团主席林中:债务重组是活下来的前提,自营开发业务收缩至少数核心城市
  • 青海规范旅游包车行为:不得引导外省籍旅游包车违规驻地运营
  • 上海国际电影节特设“今日亚洲”单元
  • 教育部基础教育教指委:稳步推进中小学人工智能通识教育