MyBatis框架学习笔记02:利用MyBatis实现CRUD操作

在第一节课中我们在UserMapper.xml里定义了两个查询语句:findById和findAll,对应的在UserMapper接口里定义了两个抽象方法:findById(int id)和findAll()。

要使用MyBatis执行任何创建、读取、更新和删除(CRUD)操作,您需要创建与该表相对应的普通旧Java对象(POJO)类。此类描述了将“建模”数据库表行的对象。

在UserMapper.xml 的配置文件中, ,命名空间非常重要,不能有错,必须与我们定义的package和接口一致。

一、打开MyBatisDemo项目

二、在映射器配置文件中引入结果映射元素

如果表的列名与实体的属性名不一致,比如表的register_time字段对应实体类的registerTime属性,我们就需要定义resultMap,当然一致时也可以定义。

结果映射元素,四个元素四个结果

运行测试testFindAll(),效果如下:

添加select语句,按姓名查询的映射语句

在接口里定义按姓名查找的映射语句

添加按姓名查询的测试语句

@Testpublic void testFindByName(){String name = "王";List<User> users = userMapper.findByName(name);if(users.size()>0) {users.forEach(user -> System.out.println(users));}else {System.out.println("没有找到姓名为["+name+"]的记录!");}}

运行 testFindByName(),测试结果:

添加模糊查询,可以查询出以name姓开头的所有记录
CONCAT:拼接字符串

运行 testFindByName(),测试结果:

三、插入表记录

1、在UserMapper.xml里增加映射语句 - 插入的insert 语句, useGeneratedKeys=“true” 自动生成id
在接口里面定义中添加一个抽象方法

添加插入测试语句

 @Testpublic void testInsert(){User user = new User();user.setName("王雨涵");user.setAge(20);user.setAddress("龙马潭区长桥路2号2号宿舍");int count =userMapper.insert(user);sqlSession.commit();//提交数据库操作if (count>0){System.out.println("记录插入成功!");System.out.println("插入的新纪录:"+user);}else {System.out.println("记录插入失败!");}}

运行testInsert(),测试结果:

定义更新的映射语句

更新测试语句

运行,测试结果为:

测试遇到问题,在设置参数时发生错误。

运行结果:

2021年3月8日:MyBatis框架学习笔记02:利用MyBatis实现CRUD操作相关推荐

  1. MyBatis框架学习笔记02:使用MyBatis实现CRUD操作

    文章目录 Ⅰ.查询表记录 (Ⅰ).在映射器配置文件里引入结果映射元素 (Ⅱ).添加按姓名查询用户记录功能 1).在UserMapper.xml里添加映射语句 - findByName 2).在User ...

  2. MyBatis框架学习笔记02:利用MyBatis实现CRUD操作

    文章目录 一.打开MyBatisDemo项目 二.查询表记录 (一)在映射器配置文件里引入结果映射元素 (二)添加按姓名查询用户记录功能 1.在UserMapper.xml里添加映射语句 - find ...

  3. 2021年1月4日-Vulnhub-DerpNStink渗透学习

    2021年1月4日-Vulnhub-DerpNStink渗透学习 靶机地址:https://www.vulnhub.com/entry/derpnstink-1,221/ kali地址:192.168 ...

  4. 9月5日关键点检测学习笔记——人体骨骼点检测:自顶向下

    文章目录 前言 一.常用数据集 二.评价体系 1.Bounding box IoU 2.Mask IoU 3.Object keypoint similarity(OKS) 三.Top-down 自顶 ...

  5. mybatis框架--学习笔记(下)

    上篇:mybatis框架--学习笔记(上):https://blog.csdn.net/a745233700/article/details/81034021 8.高级映射: (1)一对一查询: ①使 ...

  6. mybatis框架--学习笔记(上)

    使用JDBC操作数据库的问题总结: (1)数据库连接,使用时创建,不使用时立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能. 设想:使用数据库连接池管理数据库连接. (2) ...

  7. [Spring+SpringMVC+Mybatis]框架学习笔记(四):Spring实现AOP

    上一章:[Spring+SpringMVC+Mybatis]框架学习笔记(三):Spring实现JDBC 下一章:[Spring+SpringMVC+Mybatis]框架学习笔记(五):SpringA ...

  8. 9月6日关键点检测学习笔记——人脸和手部特征点检测

    文章目录 前言 一.干扰因素 1.主动因素 2.固有因素 二.特征点检测 1.PFLD 2.LLCV 三.人脸比对 1.人脸 1:1 2.人脸 1:n 3.人脸 1:N 4.人脸 M:N 四.高清分辨 ...

  9. 9月16日计算机视觉基础学习笔记——认识机器视觉

    文章目录 前言 一.Week 1 homework 1.基本操作 2.滤波 二.从图像处理到计算机视觉 1.反色变换 2.Gamma 变换 3.直方图 & 直方图均衡化 三.计算机视觉的两个步 ...

最新文章

  1. 谷歌为何能持续创新?工程经理亲自揭秘“工程师文化”
  2. 常用的webpack 配置
  3. 教程 | 以太坊智能合约编程之菜鸟教程
  4. 深入浅出Java中的clone克隆方法,写得太棒了!
  5. 字节跳动又一款中重度游戏曝光,它要进军“漫改MMO”领域!
  6. GLog 初始化说明
  7. linux加大ram 内核需要,Linux 5.1内核发布:io_uring接口+支持持久性内存用作RAM
  8. ROS 内外网做双网卡绑定负载分流教程bonding 配置教程
  9. 高校后勤管理系统java代码_java毕业设计_springboot框架的高校后勤信息管理系统...
  10. 《应用时间序列分析:R软件陪同》——第 3 章 一元时间序列数据的拟合及预测 3.1 一些估计和预测方法的基本数学原理...
  11. CIO40: 2020年IT人员如何借机破局
  12. 90% 的前端都会使用 ES6 来简化代码,你都用过哪些?
  13. 业内首发 | 区块链数据服务 - BDS
  14. 2007年全国硕士研究生入学统一考试(英语一)
  15. 校招vivo技术面试总结
  16. Winform 开源控件库( Sheng.Winform.Controls)
  17. Microbiome:稻种的驯化在生态进化上塑造水稻种子的细菌与真菌群落
  18. 【已解决】‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
  19. 【报告分享】2021年移动互联网行业白皮书-七麦数据(附下载)
  20. FireBlue QN9020 QN9021 QN902x 例程 按键 多次触发

热门文章

  1. 用Python玩我的世界(1.环境搭建)
  2. 漏洞修复需要升级打补丁,打补丁准备工作
  3. hadoop启动后jps查不到namenode的解决办法
  4. 和氟西汀类似的备注_氟西汀备注是什么意思 和氟西汀差不多的备注
  5. html left属性,CSS属性参考 | left
  6. php面试 猴子大王,php猴子选大王问题解决方法,猴子大王_PHP教程
  7. GUI线程安全详解(三)
  8. 佛祖保佑,永无 BUG,永不修改 | KEIL 调试系列总结篇
  9. RFID射频卡超市购物结算系统
  10. 手写操作系统之helloOS