MyBatis 的XML实现方法

MyBatis 的XML实现方法

在这里插入图片描述

前情提示

关于mybatis的重要准备工作,请看MyBatis 的注解实现方法

创建mapper接口

package com.example.demo.mapper;

import com.example.demo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface UserInfoXMLMapper {
   
    List<UserInfo> selectAll();
    List<UserInfo> selectAll2();
    Integer insert(UserInfo userInfo);
    Integer DeleteByID(Integer id);
    Integer Update(UserInfo userInfo);
    List<UserInfo> selectAllBYOrder(String sort);
}

添加配置

mybatis:
  configuration:
    map-underscore-to-camel-case: true
  mapper-locations: classpath:mapper/**Mapper.xml

mapper-locations: classpath:mapper/**Mapper.xml中的mapper表示resources下的包,Mapper.xml表示mapper下的以Mapper.xml结尾的文件

创建xml文件

resources下创建mapper包,在mapper下创建以Mapper.xml结尾的文件
创建完成之后,在文件中,添加一些代码

<?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">
<mapper namespace="com.example.demo.mapper.UserInfoXMLMapper">
</mapper>

在这里插入图片描述
图中需要填写的是之前创建的mapper接口的全限定类名加方法名

操作数据库

xml中的标签对应前面mapper接口中定义的方法

insert标签

    <insert id="insert">
        insert into userinfo(username,password,age,gender)
        values(#{
   username},#{
   password},#{
   age},#{
   gender})
    </insert>

delete标签

    <delete id="DeleteByID">
        delete from userinfo where id=#{
   id}
    </delete>

select标签

    <select id="selectAll" resultType="com.example.demo.model.UserInfo">
        select * from userinfo
    </select>

这里的resultType也是全限定类名
这里也存在注解中存在的问题,数据格式不同
使用下面的标签即可解决

resultMap标签

    <resultMap id="xmlBaseMap" type="com.example.demo.model.UserInfo">
        <id column="id" property="id"></id>
        <result column="delete_flag" property="deleteFlag"></result>
        <result column="create_time" property="createTime"></result>
        <result column="update_time" property="updateTime"></result>
    </resultMap>
    <select id="selectAll2"  resultMap="xmlBaseMap">
        select * from userinfo
    </select>

update标签

    <update id="Update">
        update userinfo set age=#{
   age} where username=#{
   username}
    </update>

sql标签,include标签

将一些重复率过高的代码通过sql标签包裹起来
使用时通过include来调用

    <sql id="baseSelect">
        select * from userinfo
    </sql>
    <select id="selectAllBYOrder" resultMap="xmlBaseMap">
        <include refid="baseSelect"></include>
        order by id ${
   sort}
    </select>

相关推荐

  1. MybatisXML配置

    2024-01-30 15:10:01       38 阅读
  2. mybatis-config.xml配置

    2024-01-30 15:10:01       30 阅读
  3. mybatisxml语法

    2024-01-30 15:10:01       51 阅读
  4. MyBatis-注解方式实现接口声明方法

    2024-01-30 15:10:01       47 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-30 15:10:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-30 15:10:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-30 15:10:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-30 15:10:01       20 阅读

热门阅读

  1. LarkXR渲染服务器架构升级,探索XR新体验

    2024-01-30 15:10:01       39 阅读
  2. 前端自己整理的学习面试笔记

    2024-01-30 15:10:01       37 阅读
  3. XR虚拍技术:重塑微剧与短剧产业的创新引擎

    2024-01-30 15:10:01       43 阅读
  4. C#关键字ref和out

    2024-01-30 15:10:01       35 阅读
  5. 图的前向星表示2

    2024-01-30 15:10:01       38 阅读
  6. 大模型-文本扩展&聊天机器人

    2024-01-30 15:10:01       37 阅读
  7. 【美团】无人机-大数据开发工程师

    2024-01-30 15:10:01       39 阅读
  8. css 让 width = (100% - 30px)

    2024-01-30 15:10:01       40 阅读
  9. udp(无连接)客户端和服务端代码

    2024-01-30 15:10:01       48 阅读
  10. 快捷键:IDEA 清理无效导入依赖

    2024-01-30 15:10:01       35 阅读
  11. STL之stack 【栈】

    2024-01-30 15:10:01       29 阅读