news 2026/6/22 0:52:40

Mybatis增删改查CURD

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mybatis增删改查CURD

CURD

namespace

namespace 中的包名要和 Dao/Mapper 接口的包名一致!

编程思路

编写接口

UserMapper.java

importjava.util.List;publicinterfaceUserMapper{// 查询全部用户List<user>getUserList();// 根据ID查询用户usergetUserById(intid);// 插入用户intaddUser(user user);// 更新用户intupdateUser(user user);// 删除用户intdeleteUser(intid);}

编写Mapper.xml中的sql语句

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--namespcae=绑定一个对应的Dao/Mapper接口--><mappernamespace="com.cike.dao.UserMapper"><!--<select id="对应UserMapper的方法" resultType="实体类">--><selectid="getUserList"resultType="com.cike.pojo.user"><!--执行SQL-->select * from mybatis.user</select><selectid="getUserById"parameterType="int"resultType="com.cike.pojo.user">select * from mybatis.user where id = #{id}</select><insertid="addUser"parameterType="com.cike.pojo.user">insert into mybatis.user(id, name, pwd) values (#{id}, #{name}, #{pwd})</insert><updateid="updateUser"parameterType="com.cike.pojo.user">update mybatis.user set name=#{name},pwd=#{pwd} where id =#{id};</update><deleteid="deleteUser"parameterType="com.cike.pojo.user">delete from mybatis.user where id =#{id};</delete></mapper>

测试

publicclassUserMapperTest{@Testpublicvoidtest(){//第一步:获得SqlSession对象SqlSessionsqlSession=MybatisUtils.getSqlSession();//执行SQLUserMapperuserMapper=sqlSession.getMapper(UserMapper.class);// 获得对象List<user>userList=userMapper.getUserList();for(user user:userList){System.out.println(user);}// 关闭SqlSessionsqlSession.close();}@TestpublicvoidgetUserById(){SqlSessionsqlSession=MybatisUtils.getSqlSession();UserMappermapper=sqlSession.getMapper(UserMapper.class);user userById=mapper.getUserById(1);System.out.println(userById);sqlSession.close();}/*增删改查需要提交事务*/@TestpublicvoidaddUser(){SqlSessionsqlSession=MybatisUtils.getSqlSession();UserMappermapper=sqlSession.getMapper(UserMapper.class);intres=mapper.addUser(newuser(3,"cike_y","123456"));if(res>0){System.out.println("成功插入"+res+"条数据");}sqlSession.commit();sqlSession.close();}@TestpublicvoidupdateUser(){SqlSessionsqlSession=MybatisUtils.getSqlSession();UserMappermapper=sqlSession.getMapper(UserMapper.class);inti=mapper.updateUser(newuser(1,"admin","123456"));System.out.println(i);if(i>0){System.out.println("成功更新"+i+"条数据");}sqlSession.commit();sqlSession.close();}@TestpublicvoiddeleteUser(){SqlSessionsqlSession=MybatisUtils.getSqlSession();UserMappermapper=sqlSession.getMapper(UserMapper.class);inti=mapper.deleteUser(3);if(i>0){System.out.println("成功删除"+i+"条数据");}sqlSession.commit();sqlSession.close();}}

SELECT

Mapper.xml 中的代码

<selectid="getUserById"parameterType="int"resultType="com.cike.pojo.user">select * from mybatis.user where id = #{id}</select>

接口中的代码

usergetUserById(intid);

测试方法

@TestpublicvoidgetUserById(){SqlSessionsqlSession=MybatisUtils.getSqlSession();UserMappermapper=sqlSession.getMapper(UserMapper.class);user userById=mapper.getUserById(1);System.out.println(userById);sqlSession.close();}

INSERT

Mapper.xml 中的代码

<insertid="addUser"parameterType="com.cike.pojo.user">insert into mybatis.user(id, name, pwd) values (#{id}, #{name}, #{pwd})</insert>

接口中的代码

<insert id="addUser"parameterType="com.cike.pojo.user">insert into mybatis.user(id,name,pwd)values(#{id},#{name},#{pwd})</insert>

测试方法

@TestpublicvoidaddUser(){SqlSessionsqlSession=MybatisUtils.getSqlSession();UserMappermapper=sqlSession.getMapper(UserMapper.class);intres=mapper.addUser(newuser(3,"cike_y","123456"));if(res>0){System.out.println("成功插入"+res+"条数据");}sqlSession.commit();sqlSession.close();}

UPDATE

Mapper.xml 中的代码

<updateid="updateUser"parameterType="com.cike.pojo.user">update mybatis.user set name=#{name},pwd=#{pwd} where id =#{id};</update>

接口中的代码

intupdateUser(user user);

测试方法

@TestpublicvoidupdateUser(){SqlSessionsqlSession=MybatisUtils.getSqlSession();UserMappermapper=sqlSession.getMapper(UserMapper.class);inti=mapper.updateUser(newuser(1,"admin","1234567"));System.out.println(i);if(i>0){System.out.println("成功更新"+i+"条数据");}sqlSession.commit();sqlSession.close();}

DELETE

Mapper.xml 中的代码

<deleteid="deleteUser"parameterType="com.cike.pojo.user">delete from mybatis.user where id =#{id};</delete>

接口中的代码

intdeleteUser(intid);

测试方法

@TestpublicvoiddeleteUser(){SqlSessionsqlSession=MybatisUtils.getSqlSession();UserMappermapper=sqlSession.getMapper(UserMapper.class);inti=mapper.deleteUser(3);if(i>0){System.out.println("成功删除"+i+"条数据");}sqlSession.commit();sqlSession.close();}

注意点

  • 增删改(没有查)需要提交事务
  • sqlSession.close();释放资源
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/21 1:10:16

VBA-JSON解析利器:让Office应用轻松驾驭JSON数据格式

VBA-JSON解析利器&#xff1a;让Office应用轻松驾驭JSON数据格式 【免费下载链接】VBA-JSON 项目地址: https://gitcode.com/gh_mirrors/vb/VBA-JSON 你是否曾经在Excel中处理API返回的JSON数据时感到手足无措&#xff1f;是否在为Access数据库与JSON格式的转换而烦恼&…

作者头像 李华
网站建设 2026/6/21 8:08:00

NCM格式转换完全指南:三步解锁加密音乐文件

NCM格式转换完全指南&#xff1a;三步解锁加密音乐文件 【免费下载链接】NCMconverter NCMconverter将ncm文件转换为mp3或者flac文件 项目地址: https://gitcode.com/gh_mirrors/nc/NCMconverter 你是否曾经遇到过这样的情况&#xff1a;从音乐平台下载的歌曲只能在特定…

作者头像 李华
网站建设 2026/6/21 19:44:28

USB接口引脚功能解析:系统学习信号分配

USB接口引脚功能详解&#xff1a;从USB 2.0到Type-C的信号分配与工程实践你有没有遇到过这样的情况&#xff1f;PCB打样回来&#xff0c;插上Type-C线缆&#xff0c;设备就是不充电&#xff1b;或者高速数据传输时频繁丢包&#xff0c;示波器抓不到有效握手信号。排查一圈后发现…

作者头像 李华
网站建设 2026/6/21 8:51:21

Windows平台PDF处理终极解决方案:三步完成Poppler免编译安装

Windows平台PDF处理终极解决方案&#xff1a;三步完成Poppler免编译安装 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 还在为Windows系统上的PDF…

作者头像 李华
网站建设 2026/6/21 8:21:22

千万别信!留学生名企内推求职陷阱大揭秘

千万别信&#xff01;留学生名企内推求职陷阱大揭秘“所谓‘保录进大厂’&#xff0c;往往是精心设计的‘职业认知降维打击’。”近期&#xff0c;据一份由领先的海归人才发展研究机构发布的年度报告&#xff08;编号&#xff1a;AXHL-2024-04-CP&#xff09;显示&#xff0c;超…

作者头像 李华
网站建设 2026/6/21 9:56:07

WinDbg Preview下载后如何连接内核调试?实战演示

从零开始搭建内核调试环境&#xff1a;WinDbg Preview KDNET 实战全记录你有没有遇到过这样的场景&#xff1f;系统突然蓝屏&#xff0c;错误代码一闪而过&#xff1b;或者自己写的驱动一加载就崩溃&#xff0c;毫无头绪。这时候&#xff0c;普通日志已经无能为力&#xff0c;…

作者头像 李华