news 2026/5/1 9:50:56

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/5/1 5:47:10

《无界流痕——182首意诗歌集》序言

豆包版序言&#xff1a;《无界流痕——182首意诗歌集》序言提笔写这篇序言时&#xff0c;窗台上的绿萝又抽了新叶&#xff0c;像我笔底那些没说完的句子——一晃眼&#xff0c;与诗歌相撞的日子&#xff0c;竟已走了二十年。曾在深夜的台灯下把烟蒂摁灭在稿纸旁&#xff0c;让月…

作者头像 李华
网站建设 2026/5/1 6:48:06

大象万镜:“昨天的梦,今天是路标”

《雨巷的邮差》 雨滴在瓦片上写诗 “未寄出的星期三” 邮差扛着空麻袋走过 袋口漏出半片枫叶 “收件人已改名” 他嘀咕&#xff0c;把落叶夹进未拆的信封 我追上去&#xff0c; 他转身时&#xff0c;雨停了 信封里&#xff0c;全是我的名字 在风里翻飞成蝶 7、《图书馆的窃听…

作者头像 李华
网站建设 2026/5/1 5:49:30

基于PLC控制的运料小车系统设计

摘 要 20世纪60年代以来&#xff0c;随着科学技术的进步和微电子行业的快速发展&#xff0c;可编程控制技术也处于快速发展阶段&#xff0c;在工业自动化控制领域中得到了广泛的运用。可编程控制器&#xff08;PLC&#xff09;拥有可靠性高和操作简便等特点&#xff0c;已经成…

作者头像 李华
网站建设 2026/5/1 8:39:42

【收藏】一文掌握AI Agent:2025年从理论到落地的技术全貌

AI Agent是将大模型与工具、记忆、执行系统结合的智能体&#xff0c;具有自主决策、持续学习、多模态交互、工具集成和多智能体协作五大特征。其技术架构包含感知、决策、执行、记忆和反馈优化六大模块。AI Agent改变了从"告诉机器怎么做"到"告诉机器想要什么&q…

作者头像 李华
网站建设 2026/5/1 6:12:26

强化学习REINFORCE求最优策略的代码实现

理论基础&#xff1a;注意&#xff1a;1. 策略的输出要加对数&#xff0c;因此net输出必须softmax&#xff0c;将输出限制为正数。2. 这里选择action不是greedy地选择最优action&#xff0c;而是按照概率分布选择action->exploration。3. 策略更新使用的是梯度上升&#xff…

作者头像 李华