首页 > 其他分享 >MyBatis笔记03------XXXMapper.xml文件解析

MyBatis笔记03------XXXMapper.xml文件解析

时间:2022-11-04 21:57:07浏览次数:49  
标签:xml 03 sno 接口 XXXMapper 标签 ------ 属性

SQL映射文件的配置解析

  当我们写好mapper(dao)层接口时,然后在对应的XXXMapper.xml文件中写业务逻辑对应的SQL映射语句,通过这个文件中可以实现CRU操作,那么下面说明如何编写这个.xml文件。

一、.xml文件的内容

1、头文件内容(固定)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

2、简单的CRUD操作

<mapper namespace="com.dao.StuMapper">
    <select id="queryAll" resultType="stu">
     <!--查询-->
        select * from stu;
    </select>
    <select id="queryByKey" parameterType="int" resultType="com.pojo.Stu">
     <!--in根据主键查询-->
        select * from stu where sno=#{sno};
    </select>
    <insert id="insert" parameterType="com.pojo.Stu">
        <!--增加-->
        insert into stu value(#{sno},#{sname},#{sage},#{saddress},#{spwd});
    </insert>
    <update id="upd" parameterType="com.pojo.Stu">
        <!--更新-->
        update stu set sname=#{sname},sage=#{sage},saddress=#{saddress},spwd=#{spwd}
        where sno=#{sno};
    </update>
    <delete id="del" parameterType="int">
        <!--删除-->
        delete  from stu where sno=#{sno};
    </delete>
</mapper>

显而易见:1、配置SQL映射语句,首先使用<mapper>标签,其中namespace属性代表命名,它的属性值是.xml文件对应的XXXMapper(dao)

                      接口的完整包名接口名

               2、<select>标签:实现查询功能                            <update>标签:  实现更新功能

                    <insert>标签:   实现插入功能                             <delete>标签;   实现删除功能

二、select、insert、update、delete标签的配置

1、这四个标签是完成CRUD操作的

2、这四个标签主要都有id属性,paramType属性,resultType属性(这三个属性常用)

id属性:属性值是对应的XXXMapper接口中的方法名,属性值一定要与方法名一模一样!!!是必须写的

paramType属性:属性值是对应的XXXMapper接口中方法对应的参数类型,当接口中的方法的参数是Map集合,那么它的属性值是map(小写的)

resultType属性: 属性值是对应的XXXMapper接口中方法的返回类型

注意:在MyBatis中开启了事务,但是自动提交事务默认为false,所以我们需要手动提交事务,这样对应的操作才会对数据库生效!!!所以像增加、更新、删除操作都需要手动提交事务

手动提交事务:sqlSession.commit();//sqlSession是一个引用,是连接数据库的对象

开启提交事务默认为true:sqlSessionFactory.openSession(true);//sqlSessionFactory是一个引用,是SqlSessionFactory的对象,

 

标签:xml,03,sno,接口,XXXMapper,标签,------,属性
From: https://www.cnblogs.com/hytstruggle/p/16848431.html

相关文章

  • 线上问题如何复盘?
    https://www.cnblogs.com/imyalost/p/16651708.html昨天知识星球社群里有同学问了一个问题:线上问题如何复盘?从流程、分析和后续措施落地有哪些好的建议?从质量保障的角度......
  • 软件需求与分析课堂测试 –结构化建模分析1
    今天在系主任课上的测试,题目是:住户到一门市办理业务,若进户及更户要求,可在一门市直接办理,以更新物业管理基本信息,其他业务需求要制作管理签报,连同各种相关材料送管理处处理......
  • 软件需求与分析课堂测试 –结构化建模分析2
    3、绘制系统功能架构图;   4、绘制系统一层数据流图。  ......
  • 代码运行截图
    1.importorg.testng.annotations.Test;importjava.io.File;importjava.io.IOException;publicclasscreateFile{publicstaticvoidmain(String[]args){}......
  • day13.0
    finalizeprotected修饰的JVM的垃圾回收器调用执行时机:当一个java对象即将被垃圾回收器回收的时候,垃圾回收器负责调用finalize()方法finalize()方法实际上是一个时机,垃......
  • luffy项目(二)
    今日内容概要关于环境变量的问题路飞后台配置之封装logger路飞后台配置之封装全局异常路飞后台配置之二次封装response路飞数据库配置User模块User表配置,开放medi......
  • 文件操作以及IO流原理及流的分类
    文件1、什么是文件?文件是我们保存数据的地方。2、文件流文件在程序中是以流的形式来操作的。流:数据在数据源(文件)和程序(内存)之间经历的路径输入流:数据从数据源(文件)到......
  • 满汉楼
    程序框架图功能实现12用户登录3餐桌状态4订座//自己在view中的写法if(diningTable.getId()!=null&&diningTable.getState()!="就餐"){St......
  • P8796 [蓝桥杯 2022 国 AC] 替换字符
    题面给定一个仅含小写英文字母的字符串\(s\)和\(m\)次操作,每次操作选择一个区间\([l_i,r_i]\)将\(s\)的该区间中的所有字母\(x_i\)全部替换成字母\(y_i\),问所......
  • docker开启远程访问
    服务器端开启docker远程访问vi/lib/systemd/system/docker.serviceExecStart=/usr/bin/dockerd-Hfd://--containerd=/run/containerd/containerd.sockExecS......