news 2026/8/24 6:54:42

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/8/21 10:39:49

GitHub汉化插件终极指南:5分钟让GitHub说中文

GitHub汉化插件终极指南&#xff1a;5分钟让GitHub说中文 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 还在为GitHub全英文界面烦恼…

作者头像 李华
网站建设 2026/8/24 5:36:48

ncmdump终极指南:3步解锁网易云音乐NCM格式限制

ncmdump终极指南&#xff1a;3步解锁网易云音乐NCM格式限制 【免费下载链接】ncmdump ncmdump - 网易云音乐NCM转换 项目地址: https://gitcode.com/gh_mirrors/ncmdu/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他设备播放而烦恼吗&#xff1f;ncmdump作为专业…

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

Ollydbg下载及安装实战案例:快速搭建用户层调试器

从零开始搭建用户层调试环境&#xff1a;OllyDbg下载、安装与实战入门 你是否曾在逆向分析的门口徘徊&#xff0c;面对一堆术语和工具无从下手&#xff1f; 你是否听说过“动态调试”、“断点跟踪”&#xff0c;却不知道该用什么工具来动手实践&#xff1f; 别担心&#xff…

作者头像 李华
网站建设 2026/8/23 19:09:49

制造业数字化服务商如何助力企业转型?

制造业数字化服务商&#xff1a;转型的催化剂与企业伙伴在当前全球制造业加速向数字化和智能化迈进的时代背景下&#xff0c;数字化服务商已成为推动企业变革的关键力量。回想一下&#xff0c;制造业的数字化转型不仅仅是跟上技术的步伐&#xff0c;更是企业从传统模式中解脱出…

作者头像 李华
网站建设 2026/8/24 4:04:33

Iwara视频下载工具完全指南:从零开始掌握高效下载技巧

Iwara视频下载工具完全指南&#xff1a;从零开始掌握高效下载技巧 【免费下载链接】IwaraDownloadTool Iwara 下载工具 | Iwara Downloader 项目地址: https://gitcode.com/gh_mirrors/iw/IwaraDownloadTool IwaraDownloadTool是一款专为Iwara视频平台设计的开源下载工具…

作者头像 李华
网站建设 2026/8/23 18:36:34

NCM音频格式转换终极指南:轻松解锁网易云音乐加密文件

NCM音频格式转换终极指南&#xff1a;轻松解锁网易云音乐加密文件 【免费下载链接】NCMconverter NCMconverter将ncm文件转换为mp3或者flac文件 项目地址: https://gitcode.com/gh_mirrors/nc/NCMconverter 你是否曾经在网易云音乐下载了喜欢的歌曲&#xff0c;却发现只…

作者头像 李华