当前位置: 首页 > news >正文

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();释放资源
http://www.cnnetsun.cn/news/183885.html

相关文章:

  • GitHub汉化插件终极指南:5分钟让GitHub说中文
  • ncmdump终极指南:3步解锁网易云音乐NCM格式限制
  • Ollydbg下载及安装实战案例:快速搭建用户层调试器
  • 制造业数字化服务商如何助力企业转型?
  • Iwara视频下载工具完全指南:从零开始掌握高效下载技巧
  • NCM音频格式转换终极指南:轻松解锁网易云音乐加密文件
  • Anything-LLM:3分钟打造属于你的智能文档聊天机器人
  • BetterGI完整使用指南:从零开始掌握原神自动化
  • 基于Gin+Vue的前后端分离权限管理系统设计与实现
  • 参数碾压GPT-4o!HINDSIGHT重构AI Agent记忆架构,准确率提升38%!
  • DLSS Swapper终极教程:三分钟学会游戏性能优化
  • NCMconverter音频转换工具:解锁网易云音乐格式限制的实用方案
  • 哔哩下载姬完整指南:三步搞定8K视频无水印下载
  • QtScrcpy终极指南:跨平台Android投屏控制完全手册
  • GitHub中文插件:一键告别英文界面烦恼!
  • Vue-Office快速上手:3步搞定Web端Office文档预览
  • Vetur中自定义Vue2标签支持配置:从零实现
  • 为什么你的电脑需要一款窗口置顶工具?3个关键场景揭秘
  • 5分钟精通Android投屏:QtScrcpy跨平台控制实战手册
  • 网易云音乐格式转换工具仿写创作指南
  • PlantUML Editor:文本驱动的高效UML图表绘制解决方案
  • 从启动文件到驱动层:Keil生成Bin文件全过程解析
  • 联想游戏本性能调优终极指南:从基础优化到专业定制
  • DLSS Swapper终极指南:快速提升游戏性能的完整方案
  • Iwara视频下载终极指南:从零开始掌握批量下载技巧
  • Open-AutoGLM插件对比评测:为何它碾压其他AI编程工具?
  • 【Open-AutoGLM论文深度解析】:揭秘自动化大模型生成背后的黑科技
  • Iwara视频下载终极解决方案:告别加载烦恼,实现高效离线收藏
  • 【AI工程化新突破】:智普Open-AutoGLM的5大关键技术解析
  • 【大模型私有化首选方案】:Open-AutoGLM本地部署的10个关键避坑点