java企业级信息系统开发学习笔记09 利用MyBatis实现CRUD操作

news2024/11/28 16:33:08

文章目录

  • 一、学习目标
    • 利用MyBatis查询表记录
    • 利用MyBatis插入表记录
    • 利用MyBatis更新表记录
    • 利用MyBatis删除表记录
  • 二、查询表记录
    • 1.打开mybatis项目
    • (一)在映射器配置文件里引入结果映射元素
    • (二)添加按姓名查询用户记录功能
      • 1、添加按姓名查询的映射语句
      • 2、在用户映射器接口里添加按姓名查询用户记录的方法
      • 3、添加按姓名查询用户记录的测试方法
      • 4、测试按姓名查询用户记录
  • 三、插入表记录
    • (一)添加插入映射语句
    • (二)在用户映射器接口添加插入方法
    • (三)在测试类里测试插入方法
  • 四、更新表记录
    • (一)在用户映射器配置文件里添加更新映射语句
    • (二)在用户映射器接口添加更新方法
    • (三)在测试类添加更新记录测试方法
  • 五、删除表记录
    • (一)在用户映射器配置文件里添加删除映射语句
    • (二)在用户映射器接口里添加删除方法
    • (三)在测试类里添加删除记录测试方法
    • (四)运行按编号删除记录测试方法

一、学习目标

利用MyBatis查询表记录

利用MyBatis插入表记录

利用MyBatis更新表记录

利用MyBatis删除表记录

二、查询表记录

1.打开mybatis项目

在这里插入图片描述

  • 上一讲,我们在UserMapper.xml里定义了两个查询语句:findById和findAll,对应地在UserMapper接口里定义了两个抽象方法:findById(int id)和findAll()。

(一)在映射器配置文件里引入结果映射元素

  • 如果表的列名与实体的属性名不一致,比如表的register_time字段对应实体类的registerTime属性,我们就需要定义 resultMap,当然一致时也可以定义。
  • MyBatis里jdbcType与javaType的对应关系
    在这里插入图片描述
  • 在UserMapper.xml文件里创建结果映射元素
    在这里插入图片描述
  • 将UserMapper接口里抽象方法上的注解暂时注释掉
    在这里插入图片描述

(二)添加按姓名查询用户记录功能

1、添加按姓名查询的映射语句

  • 在UserMapper.xml里添加映射语句 - findByName
    在这里插入图片描述

2、在用户映射器接口里添加按姓名查询用户记录的方法

在这里插入图片描述

3、添加按姓名查询用户记录的测试方法

在这里插入图片描述

4、测试按姓名查询用户记录

在这里插入图片描述

三、插入表记录

(一)添加插入映射语句

  • 在UserMapper.xml文件里添加插入映射语句
<insert id="insert" parameterType="User"
        useGeneratedKeys="true" keyProperty="id">
    INSERT INTO t_user(name, age, address)
        VALUES(#{name}, #{age}, #{address})
</insert>

(二)在用户映射器接口添加插入方法

  • 在UserMapper接口里添加insert()方法,方法名insert与插入映射语句里的id值保持一致
    在这里插入图片描述

(三)在测试类里测试插入方法

  • 在测试类TestUserMapper里添加测试方法testInsert()
    在这里插入图片描述
    在这里插入图片描述

四、更新表记录

(一)在用户映射器配置文件里添加更新映射语句

  • 在UserMapper.xml里添加update映射语句
<update id="update" parameterType="User">
    UPDATE t_user SET name = #{name}, age = #{age},
    	address = #{address} WHERE id = #{id};
</update>

(二)在用户映射器接口添加更新方法

  • 在UserMapper接口里添加update()方法
    在这里插入图片描述

(三)在测试类添加更新记录测试方法

  • 在测试类TestUserMapper里添加测试方法testUpdate()
    在这里插入图片描述
    在这里插入图片描述

五、删除表记录

(一)在用户映射器配置文件里添加删除映射语句

  • 在UserMapper.xml文件里添加映射语句deleteById
<delete id="deleteById" parameterType="int">
    DELETE FROM t_user WHERE id = #{id};
</delete>

(二)在用户映射器接口里添加删除方法

  • 在UserMapper接口里添加deleteById()方法,方法名要与删除映射语句的id值保持一致
    在这里插入图片描述

(三)在测试类里添加删除记录测试方法

  • 在测试类TestUserMapper里添加测试方法testDeleteById()
@Test // 测试按编号删除用户记录                                                 
public void testDeleteById() {                                       
    // 查找id为4的用户记录                                                   
    int id = 4;                                                      
    User user = userMapper.findById(id);                             
    // 输出待删除的记录                                                      
    System.out.println("待删记录:" + user);                              
    // 按编号删除用户记录                                                     
    int count = userMapper.deleteById(id);                           
    // 判断删除是否成功                                                      
    if (count > 0) {                                                 
        // 提交数据库操作                                                   
        sqlSession.commit();                                         
        // 提示用户删除成功                                                  
        System.out.println("恭喜,编号为[" + id + "]的记录删除成功~");            
    } else {                                                         
        // 提示用户删除失败                                                  
        System.out.println("遗憾,编号为[" + id + "]的记录删除失败~");            
    }                                                                
}                                                                    

(四)运行按编号删除记录测试方法

  • 运行测试方法testDeleteById(),查看结果
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/607423.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软考——下午题部分,例题一,二,三,六

例题一 11年上半年 病人&#xff0c;护理人员&#xff0c;医生 D 生命体征范围文件 日志文件 病历文件 治疗意见文件 14年上 E1 巴士司机,2 机械师,3 会计,4 主管,5 库存管理系统 D 巴士列表文件 维修记录文件 部件清单 人事档案 14年下 1 客户 2 供应商 D 销售订单表 库存…

基于simulink仿真弹跳球

一、前言 示例可视化了一个从地板上弹起的球。球在撞击地板时变形&#xff0c;保持球的体积恒定。变形是通过修改球的刻度场来实现的。 弹跳球实验有以下几个意义&#xff1a; 1. 研究物体的弹性&#xff1a;弹跳球实验可以帮助我们了解不同物体的弹性特性&#xff0c;包括弹性…

高校全奖PhD招生、大厂全职/实习招聘合集来了!快来拿offer!

本周&#xff0c;招聘小助手从「AI 求职」公众号中整理了来自 6 所高校和 6 家用人单位的「人工智能」相关全奖博士招生、算法实习等招聘信息。 分别来自新加坡国立大学、香港科技大学&#xff08;广州&#xff09;、华盛顿大学、字节跳动、小红书、京东、IDEA研究院等国内外知…

如何通过控制点或地物点生产地方坐标系的倾斜摄影三维模型数据?

如何通过控制点或地物点生产地方坐标系的倾斜摄影三维模型数据&#xff1f; 要生成地方坐标系的倾斜摄影三维模型数据&#xff0c;需要进行以下步骤&#xff1a; 1、收集影像数据 首先需要采集大量的航空影像和地面影像&#xff0c;以构建真实世界中的物体模型。这些影像可以…

Electron+Vue+Vite: 开发实践—初始化项目

运行系统:Apple M1 ,16 GB 开发工具:VSCode NodeJS:18.10 参考:https://github.com/electron-vite/electron-vite-vue.git 文章目录 创建项目构建项目客户端构建网页构建创建项目 npm create electron-vitecd electron-vite-tempsudo yarn installsudo yarn d

DDD与传统的OOA/D有什么区别?

DDD&#xff08;Domain-Driven Design&#xff09;与传统的OOA/D&#xff08;Object-Oriented Analysis and Design&#xff09;有以下几个不同点&#xff1a; 领域驱动设计注重建立一个通用语言&#xff0c;使得业务专家和技术人员之间能够沟通协作&#xff0c;在业务问题的解…

TrueNAS配置虚拟机网卡

TrueNAS支持运行虚拟机&#xff0c;但会出现虚拟机可以访问外网&#xff0c;却不能和主机的TrueNAS通讯。 这时&#xff0c;需要重新配置TrueNAS的网卡设置。 1. 原来的主机网卡配置 我的这台TrueNAS主机有两个以太网卡&#xff0c;目前使用的是enp4s0&#xff0c;IP地址192.1…

CPM-Bee本地部署的实战方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

从零开始学习JavaScript:轻松掌握编程语言的核心技能④

从零开始学习JavaScript&#xff1a;轻松掌握编程语言的核心技能④ 1. JavaScript 表单1.1 JavaScript 表单验证 2. JavaScript 保留关键字3. JavaScript this 关键字4. JavaScript let 和 const4.1 let4.2 const 5.JavaScript JSON6.JavaScript 异步编程7.JavaScript 代码规范…

4.协同工作与发布

目录 1 开发流程 2 人员分配情况 3 不同角色的权限 4 添加项目成员和体验成员 4.1 项目成员 4.1.1 添加 4.1.2 删除与修改权限 4.2 体验成员 4.2.1 添加 4.2.2 删除 5 发布上线 5.1 上传代码 5.2 提交审核 5.3 发布 6 推广 7 查看后台数据 1 …

留学生乱用ChatGPT真的太致命!被认定学术不诚信直接被退学?

01.ChatGPT留学生神器&#xff1f;作业论文全靠它&#xff1f; 近期留学圈内最火热的话题&#xff0c;肯定是关于ChatGPT。 “这个python作业我写不来&#xff0c;让ChatGPT帮我直接生成code就好了。” “论文英文的写不来&#xff0c;ChatGPT直接生成一篇essay&#xff0c;…

Linux - 进阶 使用 LAMP 搭建私有云存储 ( Nextcloud 搭建)

我们用到的私有云存储 >>> nextcloud (非常出名的一款 私有云搭建的应用响应程序 &#xff09; 预备工作 &#xff1a; # 关闭 selinux 及 防火墙 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld # 搭建 LAMP 环境 L &…

上市公司污染排放数据(2007-2022)

随着绿色金融的发展、环境信息披露政策制度的相继出台以及公众环保意识的增强&#xff0c;上市公司环境信息披露引起了学者、机构以及社会公众的广泛关注。本数据收集整理上市公司污染排放数据。 1、数据来源&#xff1a;自主整理 2、时间跨度&#xff1a;2007-2022年 3、区域…

构筑算力时代的全光底座,华为带来了面向F5.5G演进的战略蓝图

1991年&#xff0c;科学家Mark Weiser发表了一片文章《The Computer for the 21st Century》&#xff0c;其中有一句名言&#xff1a; The most profound technologies are those that disappear.They weave themselves into the fabric of everyday life until they areindist…

Executor框架的结构

Executor框架的结构 Executor框架主要由3大部分组成如下。任务。包括被执行任务需要实现的接口&#xff1a;Runnable接口或Callable接口。任务的执行。包括任务执行机制的核心接口Executor&#xff0c;以及继承自Executor的ExecutorService接口。Executor框架有两个关键类实现…

Office Visio 2013安装

哈喽&#xff0c;大家好。今天一起学习的是Visio 2013的安装&#xff0c;这是一个绘制流程图的软件&#xff0c;用有效的绘图表达信息&#xff0c;比任何文字都更加形象和直观。Office Visio 是office软件系列中负责绘制流程图和示意图的软件&#xff0c;便于IT和商务人员就复杂…

【软考系统规划与管理师笔记】第5篇 IT服务规划设计

目录 1概述 2 IT服务规划设计活动 2.1 规划设计的活动 2.2关键成功因素 3服务目录管理 3.1 设计服务目录的目的 3.2服务目录设计活动 3.3服务目录设计关键成功因素 4服务级别协议 5服务需求识别 5.1服务需求识别的目的 5.2服务需求识别的活动 5.3 评估服务的指标…

[MySQL从入门到精通]SQL语句

前言 本期主要的学习目标是SQl语句中的DDL和DML实现对数据库的操作和增删改功能&#xff0c;学习完本章节之后需要对SQL语句手到擒来。 1.SQL语句基本介绍 SQL&#xff08;Structured Query Language&#xff09;是一种用于管理关系型数据库的编程语言。它允许用户在数据库中存…

弄清楚Node.js的功能特性、运行时、组成和发展趋势分析以及与JavaScript的区别

目录 Node.js介绍 Node.js的作用和功能特性 Node.js应用场景 运行时是什么 Node.js的组成 1. V8引擎 2. 本地&#xff08;核心&#xff09;模块 3. 标准库 Node.js的发展趋势 总结 Node.js是一个基于Chrome V8引擎的JavaScript运行时环境&#xff0c;使JavaScript可以…

CAD配置绘图环境

绘图时拥有自己的设置是非常重要的 我们可以用不同的颜色区分线条、用特殊的注释格式使自己理解更方便 这些功能需要我们在绘图之前完成对设计环境的配置&#xff0c;主要体现在图层的设置上 首先新建一个窗口 在命令行输入LA 或者在菜单栏点击图层特性 就能打开图层特性管…