本文为 SSM 框架系列之 MyBatis 第二部分:增删改查操作
其它内容的链接如下:
【1】MyBatis01:初识 MyBatis 与 第一个 MyBaits 程序
【2】MyBatis02:CRUD 操作
【3】MyBatis03:配置解析
【4】MyBatis04:作用域和生命周期
【5】MyBatis05:分页
【6】MyBatis06:日志
【7】MyBatis07:使用注解开发
【8】MyBatis08:ResultMap 的结果集映射
【9】MyBatis09:动态 SQL 与缓存

传送门:

  • 1 CRUD操作
    • 1.1 namespace
    • 1.2 操作步骤
    • 1.3 查(Retrieve)
      • 1.3.1 根据 id 查询用户:直接在方法中传递参数
      • 1.3.2 根据 密码 和 名字 查询用户:使用万能的 Map
    • 1.4 增(Create)
    • 1.5 改(Update)
    • 1.6 删(Delete)
    • 1.7 本章总结

1 CRUD操作

1.1 namespace

变换于原来实现类的 xml 文件中的 namespace 的参数必须是对应 Mapper 接口的完整包名路径。

1.2 操作步骤

  1. 先在 Mapper 接口中写入约束的方法名;
  2. 再对应实现类的 xml 文件写入具体的方法;
  3. 写一个测试类进行测试。

1.3 查(Retrieve)

1.3.1 根据 id 查询用户:直接在方法中传递参数

1)先在 Mapper 接口中写入约束的方法名;

    /***  根据指定 id 号查询对象* @param id* @return*/User selectUserById(int id);

2)再对应实现类的 xml 文件写入具体的方法;

    <select id="selectUserById" parameterType="int" resultType="sharm.pojo.User">select * from mybatis.user where id = #{id}</select>

3)写一个测试类进行测试。

    @Testpublic void testSelectUserById (){// 这里测试的方法的步骤也是死的// 1 首先得到利用工具类得到 session 对象SqlSession session = MyBatisUtils.getSession();// 2 然后利用该方法得到对应的 mapper 对象UserMapper mapper = session.getMapper(UserMapper.class);// 3 直接利用 mapper 的方法User user = mapper.selectUserById(1);System.out.println(user);session.close();}

1.3.2 根据 密码 和 名字 查询用户:使用万能的 Map

1)先在 Mapper 接口中写入约束的方法名;

    /*** 根据密码和名字查询用户* @param map* @return*/User selectUserByNP(Map<String, String> map);

2)再对应实现类的 xml 文件写入具体的方法;

    <select id="selectUserByNP" parameterType="Map" resultType="sharm.pojo.User">select * from mybatis.user where name = #{name} and password = #{password};</select>

3)写一个测试类进行测试。

    @Testpublic void testSelectUserByNP (){// 这里测试的方法的步骤也是死的// 1 首先得到利用工具类得到 session 对象SqlSession session = MyBatisUtils.getSession();// 2 然后利用该方法得到对应的 mapper 对象UserMapper userMapper = session.getMapper(UserMapper.class);// 3 建立一个 Map 对象用于存放名称和密码HashMap<String, String> hashMap = new HashMap<>();hashMap.put("name", "luma");hashMap.put("password", "123456");// 4 直接利用 mapper 的方法User user = userMapper.selectUserByNP(hashMap);System.out.println(user);session.close();}

1.4 增(Create)

1)先在 Mapper 接口中写入约束的方法名;

    /***  在表中插入一个数据* @param user* @return*/void addUser(User user);

2)再对应实现类的 xml 文件写入具体的方法;

    <insert id="addUser" parameterType="sharm.pojo.User">insert into mybatis.user(id, name, password) value (#{id}, #{name}, #{password})</insert>

3)写一个测试类进行测试。

    @Testpublic void testAddUser(){SqlSession session = MyBatisUtils.getSession();UserMapper sessionMapper = session.getMapper(UserMapper.class);User jack = new User(2, "jack", "123456");sessionMapper.addUser(jack);session.commit();session.close();}

1.5 改(Update)

1)先在 Mapper 接口中写入约束的方法名;

    /*** 更新表中的某一个对象* @param user*/void updateUser(User user);

2)再对应实现类的 xml 文件写入具体的方法;

    <update id="updateUser" parameterType="sharm.pojo.User" >update mybatis.user set name=#{name}, password=#{password} where id=#{id}</update>

3)写一个测试类进行测试。

    @Testpublic void testUpdateUser(){SqlSession session = MyBatisUtils.getSession();UserMapper sessionMapper = session.getMapper(UserMapper.class);User jula = new User(2, "luma", "123456");sessionMapper.updateUser(jula);session.commit();session.close();}

1.6 删(Delete)

1)先在 Mapper 接口中写入约束的方法名;

    /*** 删除表中的某一个用户* @param id*/void deleteUser(int id);

2)再对应实现类的 xml 文件写入具体的方法;

    <delete id="deleteUser" parameterType="int" >delete from mybatis.user where id = #{id}</delete>

3)写一个测试类进行测试。

    @Testpublic void testDeleteUser(){SqlSession session = MyBatisUtils.getSession();UserMapper sessionMapper = session.getMapper(UserMapper.class);sessionMapper.deleteUser(2);// 必须提交事务session.commit();session.close();}

1.7 本章总结

  1. 所有的增删改操作都需要提交事务;
  2. 为了规范操作,在SQL的配置文件中,我们尽量将 Parameter 参数和 resultType 都写上;
  3. 一个接口对应一个 xml 文件,一个接口中约束的方法对应一个标签。在标签中,id 为方法名,resultType 为注入的对象类型, parameterType 为该方法需要导入的参数类型。

MyBatis02:CRUD 操作相关推荐

  1. MyBatis02:CRUD操作和配置解析

    MyBatis02:CRUD操作和配置解析 CRUD select 根据id查询用户 接口方法 public interface UserMapper {//查询所有用户List<User> ...

  2. mybatis CRUD操作

    mybatis CRUD操作 select select标签是mybatis最常用的标签之一. select语句有很多属性可以详细的配置每一天sql语句. id 命名空间唯一的标识. 接口中的方法名与 ...

  3. mybatis 一对多_Springboot整合Mybatis实现级联一对多CRUD操作

    在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...

  4. php 命令执行crud_如何使用原始JavaScript执行CRUD操作

    php 命令执行crud by Zafar Saleem 通过Zafar Saleem 如何使用原始JavaScript执行CRUD操作 (How to perform CRUD operations ...

  5. vue.js crud_如何使用VS Code和ADO.NET使用ASP.NET Core执行CRUD操作

    vue.js crud 介绍 (Introduction) In this article we are going to create a web application using ASP.NET ...

  6. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...

  7. 创建包含CRUD操作的Web API接口-第一部

    在这里,我们将创建一个新的Web API项目,它将使用实体框架实现Get,POST.PUT和DELETE方法来实现CRUD操作. 首先,在Visual Studio 2013 for Web expr ...

  8. java中利用框架传入相同的url实现crud操作_还在手写CRUD代码?这款开源框架助你解放双手!

    相信很多朋友在项目中使用的ORM框架都是MyBatis,如果单用MyBatis来操作数据库的话,需要手写很多单表查询的SQL实现.这时候我们往往会选择一个增强工具来实现这些单表CRUD操作,这里推荐一 ...

  9. 第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作、增、删、改、查...

    第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲-elasticsearch(搜索引擎)基本的索引和文档CRUD操作.增.删.改.查 elasticsearch(搜索引擎)基本的索引 ...

最新文章

  1. jq修改iframe html代码,jQuery控制iFrame(实例代码)
  2. FileSystemWatcher使用方法具体解释
  3. 存储过程 psal emp.sal%type是什么意思
  4. python花钱培训值吗-交钱了,学了3天Python编程,我想放弃了......
  5. 51nod 1272 最大距离 O(nlog(n)) , 快排 , 最大连续子串
  6. 五大常用算法之四:回溯法
  7. 【Java基础总结】多线程
  8. JavaWeb工程师知识图谱
  9. 文件上传下载——sz和rz
  10. python定义和调用函数
  11. java excel批量导入数据库数据_java把excel数据批量导入到数据库
  12. 服装行业进销存软件有哪些简单好用又便宜的?
  13. kron matlab_MATLAB中kron命令有什么用途
  14. 省钱兄霸王餐源码uniapp前端
  15. 一个IT男的500强生涯
  16. android自定义相机打开闪光灯,Android 照相机(闪光灯,切换摄像头)
  17. div+css静态网页设计——代码质量好-海贼王(6页) 学生漫画网页设计模板代码 漫画网页制作模板 学生简单动漫网站设计成品
  18. 1,什么是JESD204
  19. 一文看懂区块链架构设计(附知识图谱)
  20. 矩阵乘法可交换的条件,其中的几何意义

热门文章

  1. win10 jdk1.8迅雷下载
  2. 火狐、chrome浏览器过滤网页广告设置过程
  3. 计算机设置u盘启动,bios设置u盘启动_如何进入bios_bios设置图解教程 - u大师
  4. 剑网三修复选择服务器,老玩家回坑剑网三去哪个区服,要注意啥?这有一份终极宝典请查收...
  5. RFID射频卡超市购物结算系统
  6. vue移动端下拉刷新、上拉加载
  7. php生成sn码,php生成唯一随机码
  8. IT人的学习方法论-2,讨论学习的误区
  9. keil STM32中sct 分散加载文件学习
  10. 课5 视频分镜的处理