Mybatis之增删改查

目录

一、引言

 二、Mybatis——增

举例:添加用户

 三、Mybatis——删

举例:删除用户

 四、Mybatis——改

举例:修改用户

 五、Mybatis——查

六、注意 

END:


一、引言

书接上回,我们在了解完mybatis之后,肯定要知道怎么使用,本文就来详细讲解Mybatis的增删改查事务,还不了解怎么配置mybatis的童鞋可以去这篇文章了解一下通俗易懂讲解javaweb之mybatis-CSDN博客

 二、Mybatis——增

举例:添加用户

图解:xml配置文件中写入

注意:要写在xml文件中的mapper标签内

insert的标签参数:

id为这个映射语句的唯一标识符

parameterType为参数类型

xml中的代码: 

    <insert id="addUser" parameterType="user.User">INSERT INTO USER(username,password,email,tellphone,remark) VALUE(#{username},#{password},#{email},#{tellphone},#{remark})</insert>

测试类的代码: 

    @Testpublic void addUser(){// 创建数据库会话实例sqlSessionSqlSession sqlsession =ssf.openSession();User user = new User("胡英俊","123456","234567dsfgrt","12345657","grthrgfaw");int result = sqlsession.insert("test.addUser",user );sqlsession.commit();System.out.println("影响了:"+result);sqlsession.close();}

 步骤解析:

先创建一个sqlsession对象,再创建一个user对象,int result用来传递影响的行数,通过sqlsession的insert方法,插入user对象,再通过commit方法提交,如果没有commit方法是不会保存插入的哦,虽然result有结果,但是没有保存这次的插入

 三、Mybatis——删

举例:删除用户

xml中的代码:

	<delete id="deleteUserById" parameterType="int">delete from user where id=#{id}</delete>

 delete标签中的也是

id为这个映射语句的唯一标识符

parameterType为参数类型

测试类的代码:

	@Testpublic void testDelete() {// 创建数据库会话实例sqlSessionSqlSession sqlsession =ssf.openSession();// 删除用户sqlSession.delete("test.deleteUserById",18);// 提交事务sqlSession.commit();sqlSession.close();}

 四、Mybatis——改

举例:修改用户

xml中的代码:

  <update id="updateUser" parameterType="com.example.User">  UPDATE user  SET  username = #{username},  password = #{password},  email = #{email},  tellphone = #{tellphone}, remark = #{remark}  WHERE id = #{id}  </update> 

测试类的代码 :

    @Testpublic void updateUser(){// 创建数据库会话实例sqlSessionSqlSession sqlsession =ssf.openSession();User user = new User(5,"胡英俊","123456","234567dsfgrt","12345657","grthrgfaw");int result = sqlsession.update("test.updateUser",user );sqlsession.commit();System.out.println("影响了:"+result);sqlsession.close();}

还是需要commit方法才能成功修改并保存 

 五、Mybatis——查

xml中的代码:

    <select id="findUserById" parameterType="int" resultType="user.User">select * from user where id=#{id}</select>

resultType是查询结果的结果类型 

测试类的代码: 

    @Testpublic void testFindUserById(){SqlSession sqlsession =ssf.openSession();//System.out.println(session);User user = sqlsession.selectOne("test.findUserById", 4);System.out.println(user);System.out.println("用户名字:"+user.getName()+",用户密码:"+user.getPassword());sqlsession.close();}

六、注意 

有几点需要注意的地方:

1.配置文件中的id的属性值,不一定要和方法名一样,但是一定要和sqlsession的参数名一样

2.除了查询语句,增删改都需要进行commit方法提交,不然不会保存在数据库

3.每一个数据表的xml文件都是单独的,不能在这个数据表的xml文件中进行另一个表的操作,并且创建表的xml文件还要在SqlMapConfig.xml文件下添加才行。

END:

好了,以上就是《Mybatis之增删改查》的全部内容了,如果有帮助到你的话,麻烦点赞收藏转发你的支持就是我更新的最大动力,欢迎评论区讨论或者私信留言,我是sharefive,期待你的关注,886~

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu20 安装缺失的字体

在/usr/share/fonts创建文件夹winfonts sudo mkdir winfonts 下载缺失的字体后&#xff0c;复制命令到对应的文件夹。 刷新字体库 sudo mkfontscale sudo mkfontdir sudo fc-cache

技术分享 | 一文带你了解测试流程的体系

软件测试是软件质量保证的关键步骤。越早发现软件中存在的问题&#xff0c;修复问题的成本就越低&#xff0c;软件质量也就越高&#xff0c;软件发布后的维护费用越低。 为了能更好的保障软件质量&#xff0c;在软件测试的实践中&#xff0c;慢慢形成了一些流程用来达到这一目…

由浅入深走进Python异步编程【多进程】(含代码实例讲解 || multiprocessing、异步进程池、进程通信)

写在前面 从底层到第三方库&#xff0c;全面讲解python的异步编程。这节讲述的是python的多线程实现&#xff0c;纯干货&#xff0c;无概念&#xff0c;代码实例讲解。 本系列有6章左右&#xff0c;点击头像或者专栏查看更多内容&#xff0c;陆续更新&#xff0c;欢迎关注。 …

ceph块存储学习

目录 ceph的组件和功能 ceph的数据读写流程 ceph存储池学习 ceph的组件和功能 Ceph OSD&#xff1a;功能是存储数据&#xff0c;处理数据的复制、恢复、平衡数据分布&#xff0c;并将一些相关数据提供给Ceph Monitor,。 Ceph Monitor: 功能是维护整个集群健康状态&…

C语言之初识C语言

文章目录 前言一、什么是C语言二、第一个C语言程序三、数据类型四、变量&#xff0c;常量1、变量1.1 变量的命名1.2 变量的分类1.3 变量的使用1.4 变量的作用域和生命周期2、变量 五、字符串1. 概念2. 求解字符串的长度【strlen】3. 转义字符【含笔试题】 六、注释七、选择语句…

20 Vue3中使用v-for遍历普通数组

概述 使用v-for遍历普通数组在真实开发中还是比较常见的。 基本用法 我们创建src/components/Demo20.vue&#xff0c;代码如下&#xff1a; <script setup> const tags ["JavaScript", "Vue3", "前端"] </script> <template…

网络安全-API接口安全

本文为作者学习文章&#xff0c;按作者习惯写成&#xff0c;如有错误或需要追加内容请留言&#xff08;不喜勿喷&#xff09; 本文为追加文章&#xff0c;后期慢慢追加 API接口概念 API接口&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&…

亚马逊撸货、撸卡怎么做成功率更高?教你解决亚马逊撸货的底层环境

在当前的跨境电商环境下&#xff0c;许多人都在从事亚马逊的撸货、撸卡业务&#xff0c;但亚马逊的风控系统非常严格&#xff0c;因此很容易被封号或订单被取消。为了提高成功率&#xff0c;我们需要采取一些措施和方法。这篇文章就来分享做亚马逊撸货、撸卡如何提高成功率&…

Leetcode—剑指Offer LCR 025.两数相加II【中等】

2023每日刷题&#xff08;六十七&#xff09; Leetcode—LCR 025.两数相加II 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode…

Centos安装Docker及使用

文章目录 配置要求Centos安装Docker卸载docker&#xff08;可选&#xff09;安装docker首先需要大家虚拟机联网&#xff0c;安装yum工具然后更新本地镜像源&#xff1a;然后输入安装docker命令&#xff1a;查看docker的版本 启动docker关闭防火墙接着通过命令启动docker 配置镜…

抖店怎么运营?走通流程是关键!

我是电商珠珠 很多新手在入驻抖店的时候&#xff0c;都不知道前期怎么去运营。 运营的技巧很多&#xff0c;牵扯到很多细节&#xff0c;跑通流程是关键。 所以&#xff0c;今天就来给大家讲讲抖店的几个基本流程&#xff0c;只有将流程跑通了才能去更快的抠细节上的东西。 …

web架构师编辑器内容-创建业务组件和编辑器基本行为

编辑器主要分为三部分&#xff0c;左侧是组件模板库&#xff0c;中间是画布区域&#xff0c;右侧是面板设置区域。 左侧是预设各种组件模板进行添加 中间是使用交互手段来更新元素的值 右侧是使用表单的方式来更新元素的值。 大致效果&#xff1a; 左侧组件模板库 最初的模板…