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

Spring -- 使用XML开发MyBatis

在这里插入图片描述

T04BF

👋专栏: 算法|JAVA|MySQL|C语言

🫵 今天你敲代码了吗

文章目录

    • MyBatis XML配置文件开发
      • 配置连接字符串和MyBatis
      • 写Mapper层代码
        • 添加mapper接口
        • 添加UserInfoXmLMapper.xml
      • 操作数据库
        • INSERT
        • DELETE & UPDATE

MyBatis XML配置文件开发

实际上,除了使用注解的方式,MyBatis开发还能使用XML的方式,也就是将SQL语句写在XML配置文件里面

配置连接字符串和MyBatis

# 数据库连接配置
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=false
username: root
password: '051215'
driver-class-name: com.mysql.cj.jdbc.Driver# 配置 mybatis xml 的⽂件路径,在 resources/mapper 创建所有表的 xml ⽂件
mybatis:
mapper-locations: classpath:mapper/**Mapper.xml

image.png

写Mapper层代码

分为两个部分

  1. 方法定义Interface
  2. 方法实现:XXX.xml
添加mapper接口
package org.jwcb.je0725_mybatis_xml.mapper;import org.jwcb.je0725_mybatis_xml.entity.UserInfo;import java.util.List;public interface UserInfoMapper {List<UserInfo> queryAllUser(); 
}

添加UserInfoXmLMapper.xml

MyBatis固定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="org.jwcb.je0725_mybatis_xml.mapper.UserInfoMapper">
</mapper>

image.png
尝试一下执行select操作:

<mapper namespace="org.jwcb.je0725_mybatis_xml.mapper.UserInfoMapper"><select id="queryAllUser" resultType="org.jwcb.je0725_mybatis_xml.entity.UserInfo">select * from userinfo</select>
</mapper>

执行结果:
image.png

  • <mapper>标签:需要指定namespace属性,表示命名空间,值为mapper接口的**全限定类名, **包括全包名.类名
  • <select>查询标签:用来执行数据库的查询操作
    • id:是和interface中定义的方法名一致,表示对接口的具体实现方法
    • resultType:是返回的数据类型,也就是UserInfo

我们会发现,出现了返回的一些值为null的情况,这种情况与上一篇文章一致,是由于数据库列名和java实体类属性名不一致导致的
此时我们同样需要对起来
在XML中:

<mapper namespace="org.jwcb.je0725_mybatis_xml.mapper.UserInfoMapper"><resultMap id="XMLBaseMap" type="org.jwcb.je0725_mybatis_xml.entity.UserInfo"><result column="delete_flag" property="deleteFlag"></result><result column="create_time" property="createTime"></result><result column="update_time" property="updateTime"></result></resultMap><select id="queryAllUser2" resultMap="XMLBaseMap">select * from userinfo</select>
</mapper>

image.png
此时的执行结果就是正确的了

建议将其余的,即使命名一致,也都写上对应关系

同时,上一篇文章提到的起别名/开启驼峰命名一样适用

操作数据库

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

在接口中:

@Mapper
public interface UserInfoMapper {Integer insertUser(@Param("userinfo") UserInfo userInfo);
}

测试用例:
image.png

返回自增ID
XML文件设置 useGeneratedKeys 和 keyProperty 属性

<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">insert into userinfo (username,`password`,age,gender,phone) values (#{userinfo.username},#{userinfo.password},#{userinfo.age},#{userinfo.gender},#{userinfo.phone})
</insert>

此时返回值直接在userinfo.id里面取就行了
image.png

DELETE & UPDATE
<delete id="deleteUser">delete from userinfo where id = #{id}
</delete><update id="updateUser">update userinfo set phone = #{phone} where id = #{id}
</update>
Integer updateUser(UserInfo userInfo);
Integer deleteUser(UserInfo userInfo);

image.png
image.png

感谢您的访问!!期待您的关注!!!

在这里插入图片描述

T04BF

🫵 今天记得敲代码
http://www.lryc.cn/news/409686.html

相关文章:

  • openmv 学习笔记(24电赛笔记)
  • 【C语言】【数据结构】二分查找(数组的练习)
  • Web:Url 编码 -13
  • typescript 引用数据类型
  • OpenCV库学习之cv2.Sobel函数
  • 上传Git 仓库 勤勉git (超详细教程)
  • C/C++基础:宏
  • 「豆包Marscode体验官」AI加持的云端IDE——三种方法高效开发前后端聊天交互功能
  • 一文带你掌握C++虚函数·和多态
  • OpenCV 4.10 + OpenCV_contrib配置教程 仅供参考
  • ClkLog:开源用户行为分析框架,让数据分析更轻松
  • Spring源码学习笔记之@Async源码
  • 面试题:如何验证代码的可靠性
  • 前端开发的十字路口,薪的出口会是AI吗?
  • pdf太大怎么压缩大小?这几种压缩方法操作起来很简单!
  • leetcode-148. 排序链表
  • 16 html网页服务和nginx服务
  • C语言:扫雷游戏实现
  • 算法入门:Java实现排序、查找算法
  • 【初阶数据结构篇】顺序表的实现(赋源码)
  • 移动式气象站:便携科技的天气守望者
  • 软件测试必备 - 14个接口与自动化测试练习网站
  • 基于 HTML+ECharts 实现的数据可视化大屏案例(含源码)
  • vardaccico前端私有库
  • 先用先发!小样本故障诊断新思路!Transformer-SVM组合模型多特征分类预测/故障诊断(Matlab)
  • 学习大数据DAY26 简单数据清洗练习和 Shell 脚本中的数据库编程
  • 开发业务(3)——swoole和聊天室入门开发
  • Linux系统服务——【web,http协议,apache服务和nginx服务】(sixteen day)
  • 100、Python 关于时间日期的一些操作
  • 【精通Redis】Redis命令详解