热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MyBaits系列(二)MyBatis实现增删改查的两种方式

扩展:MyBatis系列学习汇总文章目录


扩展:MyBatis系列学习汇总





文章目录









        • 一、实体类实现增删改查



          • 1.1、增 > insert

          • 1.2、删 > delete

          • 1.3、改 > update

          • 1.4、查 > select



        • 二、Map实现增删改查









一、实体类实现增删改查



  • 前置条件跟上一篇的一样,这里不在重复,这里只讲实现方式!


1.1、增 > insert

①抽象接口

Integer addUserInfo(User user);

②xml



  • 这里要注意关键字的书写方式

  • like要用飘号来包起来,防止跟关键字引起冲突!

<insert id="addUserInfo" parameterType="com.dbright.pojo.User">
insert into user(name,age,`like`)values(#{name},#{age},#{like} )
insert>

③测试类



  • session.commit(); 这个是提交事务!必须得写,不然语句不会生效!

@Test
public void addUserInfo() {
SqlSession session = MybatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
//造数据
User user = new User();
user.setName("面条");
user.setAge(22);
user.setLike("王者荣耀");
Integer statusNum = mapper.addUserInfo(user);
System.out.println(statusNum);
session.commit();//提交事务
session.close();
}

④执行结果
在这里插入图片描述
在这里插入图片描述


1.2、删 > delete

①抽象接口

Integer deleteUserInfo(int id);

②xml

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

③测试类



  • 删除也需要提交事务才会生效!

@Test
public void deleteUserInfo() {
SqlSession session = MybatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
Integer statusNum = mapper.deleteUserInfo(26);
System.out.println(statusNum);
session.commit();//提交事务
session.close();
}

④执行结果
在这里插入图片描述


1.3、改 > update

①抽象接口

Integer updateUserInfo(User user);

②xml

<update id="updateUserInfo" parameterType="com.dbright.pojo.User">
update user set name = #{name},age = #{age},`like` = #{like} where id = #{id}
update>

③测试类

@Test
public void updateUserInfo() {
SqlSession session = MybatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
//造数据
User user = new User();
user.setId(30);
user.setName("丁大大");
user.setAge(23);
user.setLike("钓鱼");
Integer statusNum = mapper.updateUserInfo(user);
System.out.println(statusNum);
session.commit();//提交事务
session.close();
}

④执行结果



  • 原先:
    在这里插入图片描述



  • 执行后:
    在这里插入图片描述




1.4、查 > select

①抽象接口

List<User> getUserInfo();
User getUserInfoById(int id);
User getUserInfoByIF(@Param("name") String name , @Param("age") Integer age);

②xml

<select id="getUserInfo" resultType="com.dbright.pojo.User">
select * from user
select>
<select id="getUserInfoById" resultType="com.dbright.pojo.User">
select
*
from
user
where
id = #{id}
select>
<select id="getUserInfoByIF" resultType="com.dbright.pojo.User">
select
*
from
`user`
where
`name` = #{name}
and
age = #{age}
select>

③测试类

@Test
public void selectUser() {
SqlSession session = MybatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> users = mapper.getUserInfo();
for (User map: users){
System.out.println(map);
}
session.close();
}
@Test
public void getUserInfoById() {
SqlSession session = MybatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User userInfo = mapper.getUserInfoById(30);
System.out.println(userInfo);
session.close();
}
@Test
public void getUserInfoByIF() {
SqlSession session = MybatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User userInfo = mapper.getUserInfoByIF("丁大大",23);
System.out.println(userInfo);
session.close();
}

④执行结果



  • 数据如下:
    在这里插入图片描述



  • 查询表里所有信息
    在这里插入图片描述



  • 待条件查询
    在这里插入图片描述



  • 多条件查询
    在这里插入图片描述




二、Map实现增删改查



  • 这里不举太多例子了,因为mapper会自动将map中的值根据key对应起来



  • 十分方便,在实际工作中,使用Map查询居多



  • 前提是前后端联调使用的是PostMan或者Yapi等联调工具



  • 如果使用swaager联调,必须使用实体类来进行开发



  • 例子:
    ①接口类



Integer addUserInfo(Map<String,Object> map);

②xml

<insert id="addUserInfo" parameterType="map">
insert into user(name,age,`like`)values(#{name},#{age},#{like} )
insert>

③测试类

@Test
public void addUserInfo() {
SqlSession session = MybatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
//造数据
Map<String,Object> map = new HashMap<>();
map.put("name","面条");
map.put("age","50");
map.put("like","王者荣耀");
Integer statusNum = mapper.addUserInfo(map);
System.out.println(statusNum);
session.commit();//提交事务
session.close();
}

④执行结果
在这里插入图片描述

路漫漫其修远兮,吾必将上下求索!

如果你认为i博主写的不错!写作不易,请点赞、关注、评论加收藏!三连一下!给博主一个鼓励吧~

转载请注明出处哦~



推荐阅读
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 在什么情况下MySQL的可重复读隔离级别会导致幻读现象? ... [详细]
  • FIND_IN_SET() 函数用于检查一个字符串是否存在于由逗号分隔的字符串列表中。其语法为:FIND_IN_SET(str, strlist)。该函数返回一个整数值,表示字符串 str 在字符串列表 strlist 中的位置。如果 str 存在于 strlist 中,则返回值范围从 1 到 N(N 为列表中的元素数量)。若未找到,则返回 0。此函数在处理多值字段时非常有用,例如在查询用户权限或标签匹配等场景中。 ... [详细]
  • Java并发机制详解及其在数据安全性保障中的应用方案 ... [详细]
  • 本文介绍如何通过 Python 的 `unittest` 和 `functools` 模块封装一个依赖方法,用于管理测试用例之间的依赖关系。该方法能够确保在某个测试用例失败时,依赖于它的其他测试用例将被跳过。 ... [详细]
  • importpymysql#一、直接连接mysql数据库'''coonpymysql.connect(host'192.168.*.*',u ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4277。作者:Bob Lee,日期:2012年9月15日。题目描述:给定n个木棍,求可以组成的不同三角形的数量,最多15根木棍。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • Spring框架中枚举参数的正确使用方法与技巧
    本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
author-avatar
手机用户2502892647
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有