news 2026/4/16 11:55:55

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/4/13 2:11:36

AI诗歌集《大象万镜》诗歌摘录:边缘之镜 · 温润的共情

14. 【边缘之镜 温润的共情】天桥下的流浪汉&#xff0c;用粉笔在地上画了一扇窗。窗子里&#xff0c;有面包&#xff0c;有炉火&#xff0c;还有一个不会漏雨的屋顶。我们匆匆走过&#xff0c;投下硬币&#xff0c;仿佛在为自己赎买从那扇窗前转身离去的权利。15. 【艺术之镜…

作者头像 李华
网站建设 2026/4/16 11:03:30

评估体系:从点击率到AI引用价值的新度量标准

传统指标的失效与新指标的建立 在传统SEO时代&#xff0c;核心评估指标围绕流量和点击&#xff1a;页面排名、有机流量、点击率、跳出率、页面停留时间等。这些指标在生成式AI时代大多失去了意义&#xff0c;因为用户不再通过点击链接访问内容&#xff0c;而是直接在AI的回答中…

作者头像 李华
网站建设 2026/4/3 6:13:20

收藏!RAG与知识图谱协同推理:构建不会“胡说八道“的企业级问答系统

文章核心内容是关于RAG与知识图谱(KG)在企业智能问答系统中的融合策略。作者分析了单用RAG易产生幻觉、单用KG覆盖有限的短板&#xff0c;提出三种融合策略&#xff1a;先RAG后KG(广度发现、深度验证)、先KG后RAG(结构化答案自然化表达)和并行融合(结果综合评判)。文章还详细介…

作者头像 李华
网站建设 2026/4/15 8:49:51

系统是 Legacy BIOS 启动,不是 UEFI

目录标题系统是 Legacy BIOS 启动&#xff0c;不是 UEFI一、为什么这么判断&#xff1f;二、你刚才那条命令哪里不对&#xff1f;三、正确的操作方式&#xff08;重点&#xff09;✅ 1️⃣ 正确生成 grub 配置文件✅ 2️⃣ 确认 grub 是 BIOS 版本&#xff08;建议检查&#xf…

作者头像 李华