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

MyBatis 基本操作 - XML版

目录

配置xml文件

一,查询 - Select

1.1 全列查询

1.2 赋值问题 

二,新增 - insert

2.1 使用对象插入

2.2 获取主键

三,删除 - delete

四,修改 - update


配置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.javaeespringioc.mapper.UserInfoXmlMapper">#增删查改都在这里实现</mapper>

一,查询 - Select

1.1 全列查询

@Mapper
public interface UserInfoXmlMapper {List<UserInfo> queryUserList();
}
    <select id="queryUserList" resultType="com.example.javaeespringioc.controller.UserInfo">select * from userInfo;</select>

1.2 赋值问题 

可以发现,在赋值时,xml 也出现了 deleteFlag,createTime,updateTime 并没有被赋值的问题,出现的原因还是MySQL中的字段名与Java对象中的属性名不相同。

有三种解决方法:1.起别名;2.结果映射;3.添加配置。其中1,3方法与注解版相同就不过多赘述,这里只演示方法二。

    <resultMap id="BaseMap" type="com.example.javaeespringioc.controller.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="queryUserList" resultMap="BaseMap">select * from userInfo;</select>

二,新增 - insert

2.1 使用对象插入

@Mapper
public interface UserInfoXmlMapper {Integer insertUserInfo(UserInfo userInfo);
}
    <insert id="insertUserInfo">insert into userInfo (username, password, age, gender, phone) values (#{username}, #{password}, #{age}, #{gender}, #{phone})</insert>

2.2 获取主键

    <insert id="insertUserInfo" useGeneratedKeys="true" keyProperty="id">insert into userInfo (username, password, age, gender, phone) values (#{username}, #{password}, #{age}, #{gender}, #{phone})</insert>

三,删除 - delete

@Mapper
public interface UserInfoXmlMapper {Integer deleteUserInfo(Integer id);
}
    <delete id="deleteUserInfo">delete from userInfo where id = #{id}</delete>

四,修改 - update

@Mapper
public interface UserInfoXmlMapper {Integer updateUserInfo(UserInfo userInfo);
}
    <update id="updateUserInfo">update userInfo set username = #{username} where id = #{id}</update>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 尚品汇-秒杀成功下单接口、秒杀结束定时任务-清空缓存数据(五十四)
  • html文件指什么
  • 使用k8s搭建mariadb+nginx+wordpress
  • 【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第一篇-原理】
  • 【大模型教程】基于 InternLM 和 LangChain 搭建知识库助手
  • Java后端框架---Spring
  • R18 NES 之SSB-less SCell operation for inter-band CA
  • [ IDE ] SEGGER Embedded Studio for RISC-V
  • C#为任意组件开发登录功能的记录
  • SpringBoot 数据库表结构文档生成
  • mysql mha高可用集群搭建
  • 【多线程】CAS的原理及应用,看这篇文章就够啦
  • Elasticsearch集群的运维与管理
  • Kafka 为什么这么快?
  • 黑客是如何绕过ssh登录目标站点
  • 【mysql】环境安装、服务启动、密码设置
  • leetcode388. Longest Absolute File Path
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • Python利用正则抓取网页内容保存到本地
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • zookeeper系列(七)实战分布式命名服务
  • 阿里云应用高可用服务公测发布
  • 不上全站https的网站你们就等着被恶心死吧
  • 从0到1:PostCSS 插件开发最佳实践
  • 第2章 网络文档
  • 诡异!React stopPropagation失灵
  • 解析带emoji和链接的聊天系统消息
  • 世界上最简单的无等待算法(getAndIncrement)
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 我这样减少了26.5M Java内存!
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 阿里云服务器购买完整流程
  • # include “ “ 和 # include < >两者的区别
  • # 达梦数据库知识点
  • #include到底该写在哪
  • #pragam once 和 #ifndef 预编译头
  • #pragma multi_compile #pragma shader_feature
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (35)远程识别(又称无人机识别)(二)
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (南京观海微电子)——COF介绍
  • (贪心) LeetCode 45. 跳跃游戏 II
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)菜鸟学数据库(三)——存储过程
  • (转)程序员疫苗:代码注入
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • ./configure、make、make install 命令
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .net 反编译_.net反编译的相关问题
  • .NET处理HTTP请求
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [20161101]rman备份与数据文件变化7.txt