news 2026/8/7 23:03:46

MyBatis XML的方式来实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MyBatis XML的方式来实现

使用这种方式的时候我们需要在配置文件中配置 mybatis xml 的文件路径:

这里需要注意的是:resources文件夹之下的这个mapper文件夹的名字要和配置文件中classpath后端mapper的名字要保持一致。
同时以上述的配置信息为例,mapper文件夹之下的xml文件一定是要以Mapper为结尾。

在xml文件中编写SQL语句

@Mapper public interface UserInfoMapperXML { List<UserInfo> selectAll(); }
<mapper namespace="com.example.mybatis.mapper.UserInfoMapperXML"> <select id="selectAll" resultType="com.example.mybatis.model.UserInfo"> select * from user_info; </select> </mapper>

上面的接口的名字和所在的路径要和xml文件中的相对应,接口中声明的方法名也要和xml文件中的id值相对应。
xml文件中的resultType表示这个方法返回的结果中的数据元素是什么类型,本案例就是UserInfo类型。

测试代码

接下来我们生成测试类来运行一下我们的代码:

@Test void sellectAll() { System.out.println(userInfoMapperXML.selectAll()); }

新增数据

Integer insertUser(UserInfo userInfo);
<insert id="insertUser"> insert into user_info (username,password,age) VALUES(#{username},#{password},#{age}) </insert>

XMl传入参数的方式和用注解的方式是一样的:

@Test void insertUser() { UserInfo userInfo=new UserInfo(); userInfo.setPassword("12345678"); userInfo.setUsername("user1"); userInfo.setAge(18); userInfoMapperXML.insertUser(userInfo); }

我们也可以获取到自增的id

获取自增id

Integer insertUser2( @Param("Userinfo") UserInfo userInfo);
<insert id="insertUser2" useGeneratedKeys="true" keyProperty="id"> insert into user_info (username,password,age) VALUES(#{Userinfo.username},#{Userinfo.password},#{Userinfo.age}) </insert>
@Test void insertUser2() { UserInfo userInfo=new UserInfo(); userInfo.setPassword("12345"); userInfo.setUsername("user3"); userInfo.setAge(18); Integer result=userInfoMapperXML.insertUser2(userInfo); System.out.println("影响行数:"+result+",id:"+userInfo.getId()); }

更新数据

接下来我们把id为12的用户的密码改为123456:

Integer updateUser(String newpassword,Integer id);
<update id="updateUser"> update user_info set password=#{newpassword} where id=#{id} </update>
@Test void updateUser() { userInfoMapperXML.updateUser("123456",12); }


删除数据

我们把以id为12的数据删除为例:

Integer deleteUser(Integer id);
<delete id="deleteUser"> delete from user_info where id=#{id} </delete>
@Test void deleteUser() { userInfoMapperXML.deleteUser(12); }


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/6 6:40:50

灵遁者:我对于探索的热爱,从来没有减少过

我对于探索的热爱&#xff0c;从来没有减少过。探索生命&#xff0c;这是自人类诞生以来&#xff0c;一直在拼命解读的课题。所以关于生命&#xff0c;我们思考得再多&#xff0c;也远远不够。 灵遁者&#xff0c;赞3这是一个需要创新的时代&#xff0c;但更是一个需要“消化”…

作者头像 李华
网站建设 2026/8/7 15:24:55

右值引用和移动语义

作用&#xff1a;C11中引用了右值引用和移动语义&#xff0c;可以避免无谓的复制&#xff0c;提高了程序性能。 1. 什么是左值、右值 可以从2个角度判断&#xff1a; 左值可以取地址、位于等号左边&#xff1b; 而右值没法取地址&#xff0c;位于等号右边。 int a 6; a可…

作者头像 李华
网站建设 2026/8/7 22:07:29

基于PLC的智能路灯控制系统的设计

第二章 传感器原理及应用 基于路灯照明的特点&#xff0c;我们需要通过采集周围光照强度及地面压力信号&#xff0c;来完成所需的智能路灯控制的功能&#xff0c;因此本章分别对光学传感器及压力传感器进行了详细的介绍。 2.1 光学传感器 2.1.1 光电效应简介 首先&#xff0c;我…

作者头像 李华
网站建设 2026/8/7 21:26:54

ZooKeeper:enableACL和requireClientSASLAuth

目录标题 &#x1f9e0; 一、ZooKeeper 的两个安全维度&#x1f3af; 二、访问控制&#xff08;ACL&#xff09;1&#xff09;什么是 ACL&#xff1f;2&#xff09;ACL 相关的 Scheme&#xff08;核心&#xff09;3&#xff09;是否开启 ACL &#x1f510; 三、客户端认证&…

作者头像 李华
网站建设 2026/8/7 1:06:43

为什么K8s 1.24 的容器时间调整会影响宿主机的时间啊?

目录标题一、核心真相&#xff08;先给结论&#xff09;✅ Linux 中&#xff1a;二、为什么容器“有时能改时间&#xff0c;有时不能”&#xff1f;&#x1f511; 决定因素不是 K8s&#xff0c;而是 Linux capability三、那为什么在 K8s 1.24 更容易出现&#xff1f;四、K8s 1.…

作者头像 李华