MyBatis 的XML实现方法

MyBatis 的XML实现方法

MyBatis 的XML实现方法

前情提示

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

创建mapper接口

java 复制代码
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);
}

添加配置

java 复制代码
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结尾的文件

创建完成之后,在文件中,添加一些代码

java 复制代码
<?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标签

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

delete标签

java 复制代码
    <delete id="DeleteByID">
        delete from userinfo where id=#{id}
    </delete>

select标签

java 复制代码
    <select id="selectAll" resultType="com.example.demo.model.UserInfo">
        select * from userinfo
    </select>

这里的resultType也是全限定类名

这里也存在注解中存在的问题,数据格式不同

使用下面的标签即可解决

resultMap标签

java 复制代码
    <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标签

java 复制代码
    <update id="Update">
        update userinfo set age=#{age} where username=#{username}
    </update>

sql标签,include标签

将一些重复率过高的代码通过sql标签包裹起来

使用时通过include来调用

java 复制代码
    <sql id="baseSelect">
        select * from userinfo
    </sql>
    <select id="selectAllBYOrder" resultMap="xmlBaseMap">
        <include refid="baseSelect"></include>
        order by id ${sort}
    </select>
相关推荐
₍˄·͈༝·͈˄*₎◞ ̑̑码9 小时前
MyBatis操作数据库
数据库·mybatis
干到60岁退休的码农18 小时前
13.构建登录接口响应数据
java·spring boot·mybatis
SQL-First布道者2 天前
我为什么把 MyBatis 从项目中删了?
java·spring·tomcat·mybatis·mybatis plus·spring jdbc
爱折腾的编程老炮2 天前
潮玩品牌自建抽盒机小程序——商城 + 抽盒 + 一番赏 + 会员 + 社区,一套代码怎么搭
spring boot·小程序·vue·mybatis·uniapp
kakawzw2 天前
mybatis源码笔记1——JDBC和整体架构
java·mybatis
Java小白笔记3 天前
MySQL 8.0 常用内置函数用例
数据库·mysql·mybatis
勿忘,瞬间3 天前
Mybatis高阶
java·数据库·mybatis
大梦想家a3 天前
新能源汽车共享充电桩收费管理系统的设计与实现(SpringBoot+MyBatis-Plus+Vue,前后台分离完整源码)
spring boot·汽车·mybatis
计算机学姐3 天前
基于SpringBoot的高校爱心慈善管理系统
java·vue.js·spring boot·后端·spring·tomcat·mybatis
大梦想家a3 天前
基于 Spring Boot 的物流运单管理系统后端设计与实现(JWT + MyBatis-Plus + MySQL)
spring boot·mysql·mybatis