MyBatis的xml实现

1.下载插件MyBatisX

2.添加依赖

java 复制代码
<!--Mybatis 依赖包-->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.3.1</version>
		</dependency>
		<!--mysql驱动包-->
		<dependency>
			<groupId>com.mysql</groupId>
			<artifactId>mysql-connector-j</artifactId>
			<scope>runtime</scope>
		</dependency>

3. 配置yml文件

java 复制代码
mybatis:
 mapper-locations: classpath:mapper/*Mapper.xml
 configuration: # 配置打印 MyBatis 执行的 SQL
  log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  map-underscore-to-camel-case: true  #自动驼峰转换
# 配置打印 MyBatis 执行的 SQL

注意

mapper为创建的目录名,自己设置,还有Mapper也可以自己设,但是一定要保持一致

4.创建文件

①创建Mapper文件,首先在java目录下创建mapper目录,在mapper目录下常见UserInfoXNMLMapper文件,其次在resource目录下创建mapper目录,在maaper目录下创建同名的UserInfoXNMLMapper(必须一样),如果不一致,会出现spring找不到的情况,项目无法启动

在UserInfoXNMLMapper文件中加入方法

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();
}

注意

加注解@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">
    <select id="selectAll" resultType="com.example.demo.model.UserInfo">
        select* from userinfo
    </select>
</mapper>

注意

1.mapper标签中的namespace内容是java目录下的UserInfoXNMLMapper文件路径

2.select标签为自己编写的查询语句 ,其中id是UserInfoXNMLMapper中的方法名必须一模一样,resultType为返回数据的类型

3.只有在select才会需要resultType

5.xml文件实现增删查改

①增

方法声明在UserInfoXNMLMapper文件中

java 复制代码
Integer insert(UserInfo userInfo);

在UserInfoXNMLMapper.xml文件中实现,用insert标签

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

注意

1.方法名和id一定要一样

2.useGeneratedKeys="true" keyProperty="id"自主获取id

3.如果出现重命名则需要对象应用 如userInfo.username

②删

方法声明在UserInfoXNMLMapper文件中,根据id删除

java 复制代码
Integer delete (int id);

在UserInfoXNMLMapper.xml文件中实现,用delete标签

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

③改

方法声明在UserInfoXNMLMapper文件中,根据id

java 复制代码
Integer update(int gender,int id);

在UserInfoXNMLMapper.xml文件中实现,用update标签

java 复制代码
<update id="update">
        update userinfo set gender=#{gender} where id=#{id};
    </update>
相关推荐
AI进化营-智能译站18 分钟前
ROS2 C++开发系列17-多线程驱动多传感器|chrono高精度计时实现机器人同步控制
java·c++·ai·机器人
qq_589568104 小时前
springbootweb案例,出现访问 http://localhost:8080/list 一直处于浏览器运转阶段
java·网络协议·http·list·springboot
JAVA面经实录9174 小时前
计算机基础(完整版·超详细可背诵)
java·linux·数据结构·算法
AC赳赳老秦4 小时前
知识产权辅助:用 OpenClaw 批量生成专利交底书 / 软著申请材料,自动校验格式与内容合规性
java·人工智能·python·算法·elasticsearch·deepseek·openclaw
FYKJ_20105 小时前
springboot校园兼职平台--附源码02041
java·javascript·spring boot·python·eclipse·django·php
书源丶6 小时前
三十六、File 类与 IO 流基础——文件操作的「第一步」
java
AI人工智能+电脑小能手6 小时前
【大白话说Java面试题】【Java基础篇】第30题:JDK动态代理和CGLIB动态代理有什么区别
java·开发语言·后端·面试·代理模式
DFT计算杂谈7 小时前
wannier90 参数详解大全
java·前端·css·html·css3
marsh02067 小时前
43 openclaw熔断与降级:保障系统在异常情况下的可用性
java·运维·网络·ai·编程·技术