springboot-mybatis的增删改查

这篇具有很好参考价值的文章主要介绍了springboot-mybatis的增删改查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、准备工作

二、常用配置

 三、尝试

 四、增删改查

1、增加

2、删除

3、修改

4、查询

五、XML的映射方法


一、准备工作

实施前的准备工作:

  1. 准备数据库表

  2. 创建一个新的springboot工程,选择引入对应的起步依赖(mybatis、mysql驱动、lombok)

  3. application.properties中引入数据库连接信息

  4. 创建对应的实体类 Emp(实体类属性采用驼峰命名)

  5. 准备Mapper接口 EmpMapper

SQL文件:emp的sql文件

springboot-mybatis的增删改查,JavaWeb,spring boot,mybatis,后端,java

二、常用配置

#指定mybatis输出日志的位置, 输出控制台
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

# 查询的时候mybatis驼峰命名法
mybatis.configuration.map-underscore-to-camel-case=true

 三、尝试

在Mybatis中提供的参数占位符有两种:${...} 、#{...}

  • #{...}

    • 执行SQL时,会将#{…}替换为?,生成预编译SQL,会自动设置参数值

    • 使用时机:参数传递,都使用#{…}

  • ${...}

    • 拼接SQL。直接将参数拼接在SQL语句中,存在SQL注入问题

    • 使用时机:如果对表名、列表进行动态设置时使用

注意事项:在项目开发中,建议使用#{...},生成预编译SQL,防止SQL注入安全。

 四、增删改查

1、增加

 // 新增
    @Options(useGeneratedKeys = true,keyProperty = "id")  // 返回主键
    @Insert("insert into emp(username, name, gender, image, job, entrydate, " +
            "dept_id, create_time, update_time) " +
            "values (#{userName}, #{name}, #{gender}, #{image}," +
            " #{job}, #{entryDate}, #{deptId}, #{createTime}, #{updateTime})")
    int insert(Emp emp);

        测试

 // 新增
    @Test
    public void empAdd(){

        //创建员工对象
        Emp emp = new Emp();
        emp.setUserName("小明");
        emp.setName("小将");
        emp.setImage("sadasdasd.jpg");
        emp.setGender((short)1);
        emp.setJob(1);
        emp.setEntryDate(LocalDate.of(2000,1,1));
        emp.setCreateTime(LocalDate.now());
        emp.setUpdateTime(LocalDate.now());
        emp.setDeptId(1);

        empMapper.insert(emp);

    }

2、删除

  // 删除
    @Delete("delete from emp where id = #{id}")
    int delete(int id);

        test

 // 删除测试
    @Test
     public void empDelete() {

        var s =  empMapper.delete(17);

        System.out.printf("删除:%s\n",s);

    }

3、修改

  // 修改
    @Update("update emp set username = #{userName}, name = #{name}, gender = 3 where id = 18;")
    void update(Emp emp);

        Test

  // 修改
    @Test
    public  void update(){

        Emp emp = new Emp();

        emp.setName("大卫");
        emp.setUserName("daadasd");
        emp.setGender(2);

        empMapper.update(emp);


    }

4、查询

  // 查询
    @Select("select * from emp " +
            "where name like concat('%',#{name},'%') " +
            "and gender = #{gender} " +
            "and entrydate between #{begin} and #{end} " +
            "order by update_time desc")
    List<Emp> list(String name, Short gender, LocalDate begin, LocalDate end);

        Test

 // 查询
    @Test
    public void search(){


        List<Emp> emp =   empMapper.list("汤姆", (short) 1,LocalDate.of(2000,8,15),LocalDate.of(2023,8,5));
        System.out.println(emp);
        
    }

五、XML的映射方法

  • <sql>:定义可重用的SQL片段

  • <include>:通过属性refid,指定包含的SQL片段

  • <if>

    • 用于判断条件是否成立,如果条件为true,则拼接SQL

    • 形式:

      <if test="name != null"> … </if>
  • <where>

    • where元素只会在子元素有内容的情况下才插入where子句,而且会自动去除子句的开头的AND或OR

  • <set>

    • 动态地在行首插入 SET 关键字,并会删掉额外的逗号。(用在update语句中)​​​​​​​

  • <foreach>​​​​​​​遍历deleteByIds方法中传递的参数ids集合文章来源地址https://www.toymoban.com/news/detail-625380.html

       <foreach collection="集合名称" item="集合遍历出来的元素/项" separator="每一次遍历使用的分隔符" 
             open="遍历开始前拼接的片段" close="遍历结束后拼接的片段">
    </foreach>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.demo.crud.mapper.EmpMapper">

    <!--提取重复代码 -->
    <sql id="commonSelect">select * from emp </sql>


    <!--  查询-->
<!--   resultType单条记录封装的类型 -->
    <select id="list" resultType="com.demo.crud.pojo.Emp">

        <include refid="commonSelect"/>
        <where>
            <if test="name != null">
                name like concat('%',#{name},'%')
            </if>
            order by update_time desc
        </where>

    </select>

     <!--删除操作-->
    <delete id="deleteByIds">
        delete from emp where id in
        <foreach collection="ids" item="id" separator="," open="(" close=")">
            #{id}
        </foreach>
    </delete>


</mapper>

到了这里,关于springboot-mybatis的增删改查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一个简单的增删改查Spring boot项目教程(完整过程,附代码)(从搭建数据库到实现增删改查功能),Springboot学习,Springboot项目,

    这里将会介绍怎么去搭建一个简单增删改查的Springboot项目,认真看完我相信你一定能够学会,并且附有完整代码; 首先要进行增删改查肯定是要有供操作的数据库; 这里我是用的SQLyog来搭建的,随便用什么都可以,只要能确保给项目一个配套的数据库就行; 打开IDEA,创建

    2024年02月15日
    浏览(66)
  • springboot-mybatis的分页查询的接口

    直接查询所有数据即可,剩下的交给分页器 PageHelper.startPage(page, pageSize) ; 是 MyBatis 的一个分页插件(PageHelper)提供的方法调用,用于在数据库查询中实现分页功能。这个方法的作用是告诉 PageHelper 开始对接下来的查询进行分页处理。 具体来说,这个方法做了以下几件事情:

    2024年02月14日
    浏览(30)
  • MyBatis的增删改查

            本章学习MyBatis的基本crud操作。 java程序如下: ①使用map集合传参 ②使用pojo传参 SQL语句如下:  运行结果: ps:如果采用map集合传参,#{} 里写的是map集合的key,如果key不存在不会报错,数据库表中会插入NULL。 ps:如果采用POJO传参,#{} 里写的是POJO类中get方法的方法

    2024年02月08日
    浏览(35)
  • MyBatis 单表的增删改查

    ✅作者简介:2022年 博客新星 第八 。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:SSM 框架从入门到精通 ✨特色专栏:国学周更-心性养成之路 🥭本文内容:MyBatis 单表的增删

    2024年02月21日
    浏览(40)
  • Mybatis案例-商品的增删改查

    JDBC完成: https://blog.csdn.net/meini32/article/details/131981238 1. aim 要完成的功能列表清单: 1. 查询 查询所有数据 查看详情 条件查询 2. 添加 3. 修改 修改全部字段 修改动态字段 4. 删除 删除一个 批量删除 2.环境准备 数据库表tb_brand 实体类Brand 测试用例 安装MyBatis×插件 数据库表: 实

    2024年02月14日
    浏览(36)
  • 化繁为简,MyBatis-Plus 里面的增删改查

    在当前盛行的 SpringBoot 项目中,整合持久层这一块,目前主流的有两种:JPA 和 MyBatis-Plus。至于哪个用的更多一些,这个主要还是看每个公司的技术架构,但硬是要说一个最为常用的,我认为是 MyBatis-Plus,而在这里也是对 MyBatis-Plus 的一个使用进行演示 好了,废话不多说,直

    2024年02月04日
    浏览(34)
  • MyBatis-Plus 基础操作指南:实现高效的增删改查

        大家好,今天我们来聊聊如何使用 MyBatis-Plus(接下来简称为 MP),一个流行的 MyBatis 增强工具,来简化和加速我们的数据库操作。如果你是一位初学者,不用担心,我将带你从头到尾详细了解 MP 的使用方法,特别是如何实现基本的增删改查操作。     在开始详细介绍之

    2024年02月05日
    浏览(35)
  • springboot的增删改查

    一、how2j网站上Category表练习 教程:SpringBoot系列教材 (十七)- CRUD+分页 - Springboot使用Mybatis实现完整的 增删改查 CRUD和分页 (how2j.cn)。之前的练习只实现了查找功能,本次练习在上次练习的基础上增加了增删查找功能以及分页功能。 二、增加CURD方法主要是在CategoryMapper和Ca

    2024年02月14日
    浏览(38)
  • 手摸手2-springboot编写基础的增删改查

    创建controller层 实现 test 表中的添加、修改、删除及列表查询接口(未分页) 添加service层接口 service层实现 添加mapper层 mapper层对应的sql 添加扫描注解,对应sql文件的目录

    2024年02月10日
    浏览(47)
  • Java(二):Spring Boot 项目-文件的增删改查下载

    docker运行mysql 设置MySQL时区 添加修改 /mysql/conf.d/xxx.cnf 文件,并重启 MySQL 查看当前MySQL使用的时区 MySQL建库建表 数据表实体类 注意: 规定参数时区 com/example/user/entity/FileTable.java 查询条件实体类 com/example/user/entity/FileTableCondition.java com/example/user/utils/FileUtil.java mapper user/src/mai

    2024年02月09日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包