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

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~

相关文章:

  • log4j2远程代码执行漏洞原理与漏洞复现(基于vulhub,保姆级的详细教程)
  • 什么是误差,什么是重构误差,误差与重构误差有什么区别?
  • thinkphp+vue+mysql酒店客房管理系统 b1g8z
  • 慢调用链诊断利器-ARMS 代码热点
  • JavaGUI(但期末速成版)之事件监听和处理
  • 【动画图解】一次理清九大排序算法!面试官问到再也不慌!
  • Centos7在安装Graylog时新安装MongoDB报错端口不监听服务不启动无法运行启动失败
  • el-table 实现行拖拽排序
  • 【C++多线程编程】(五)之 线程生命周期管理join() 与 detach()
  • 【Proteus仿真】【Arduino单片机】蓝牙遥控小车
  • 边缘计算有哪些常用场景?TSINGSEE边缘AI视频分析技术行业解决方案
  • R语言【cli】——cli_warn可以更便捷的在控制台输出警告信息
  • 【计算机网络】八股文 | 第四章
  • C#合并多个Word文档(微软官方免费openxml接口)
  • 代码随想录第三十八天(一刷C语言)|零钱兑换II组合总数和 IV
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【技术性】Search知识
  • android图片蒙层
  • Codepen 每日精选(2018-3-25)
  • Mybatis初体验
  • nodejs:开发并发布一个nodejs包
  • oschina
  • python大佬养成计划----difflib模块
  • Vue 2.3、2.4 知识点小结
  • 从tcpdump抓包看TCP/IP协议
  • 十年未变!安全,谁之责?(下)
  • 使用Gradle第一次构建Java程序
  • 转载:[译] 内容加速黑科技趣谈
  • 交换综合实验一
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • (33)STM32——485实验笔记
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (万字长文)Spring的核心知识尽揽其中
  • .NET Framework与.NET Framework SDK有什么不同?
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • @Autowired注解的实现原理
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [20170705]diff比较执行结果的内容.txt
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [COGS 622] [NOIP2011] 玛雅游戏 模拟
  • [C和指针].(美)Kenneth.A.Reek(ED2000.COM)pdf
  • [Flutter] extends、implements、mixin和 abstract、extension的使用介绍说明
  • [Hadoop in China 2011] 蒋建平:探秘基于Hadoop的华为共有云
  • [kubernetes]控制平面ETCD
  • [MQ]常用的mq产品图形管理web界面或客户端
  • [MySQL复制异常]Cannot execute statement: impossible to write to binary log since statement is in row for
  • [NOIP2005]过河