news 2026/4/18 5:43:51

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/3/15 21:30:18

【Open-AutoGLM核心技术剖析】:从虚拟化到AI推理的全栈实现路径

第一章&#xff1a;Open-AutoGLM云手机的技术演进与核心定位 Open-AutoGLM云手机作为新一代基于大模型驱动的虚拟移动设备平台&#xff0c;融合了自动化推理、云端渲染与边缘计算等前沿技术&#xff0c;致力于为开发者和企业提供高可用、可扩展的智能终端服务。其核心架构依托于…

作者头像 李华
网站建设 2026/4/16 17:02:06

ncmdump终极指南:快速解锁网易云音乐加密格式的完整解决方案

ncmdump终极指南&#xff1a;快速解锁网易云音乐加密格式的完整解决方案 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐的NCM加密格式而困扰吗&#xff1f;ncmdump工具为您提供了一站式的音乐格式转换解决方案。无…

作者头像 李华
网站建设 2026/3/24 16:00:58

3分钟搞定网易云NCM格式解密:终极音频解放指南

3分钟搞定网易云NCM格式解密&#xff1a;终极音频解放指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的歌曲无法在其他播放器正常使用而困扰&#xff1f;NCM格式的加密机制让音乐文件失去了应有的灵活性。…

作者头像 李华
网站建设 2026/4/18 0:51:25

Open-AutoGLM Web部署难题全解析,99%开发者都会忽略的关键细节

第一章&#xff1a;Open-AutoGLM Web部署概述Open-AutoGLM 是一个基于 AutoGLM 架构的开源自动化代码生成工具&#xff0c;支持通过 Web 界面进行交互式开发与模型调用。其 Web 部署方案旨在为开发者提供低门槛、高可用的服务接口&#xff0c;便于集成至现有开发流程或作为独立…

作者头像 李华
网站建设 2026/4/18 5:01:05

MySQL使用入门学习

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、数据库概述数据库&#xff1a;数据库管理系统&#xff1a;关系型数据库SQL分类SQL通用语法二、SQL分类DDLDDL表操作创建修改删除添加数据三、数据类型总结前…

作者头像 李华