SprintBoot整合MyBatis简易教程

2024-04-25 23:48

本文主要是介绍SprintBoot整合MyBatis简易教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SprintBoot整合MyBatis简易教程

MyBatis导入及配置

  • 使用Maven管理
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version>
</dependency>
  • 需要在启动主类添加@MapperScan 使得Mapper文件被扫描到
    即添加下面这行代码到启动主类中,com.imoor.dataobject.mapper为mapper所在包
    @MapperScan(basePackages = "com.imooc.dataobject.mapper")
@SpringBootApplication
@MapperScan(basePackages = "com.imooc.dataobject.mapper")
public class SellApplication {public static void main(String[] args) {SpringApplication.run(SellApplication.class, args);}
}
  • 在控制台打印出MyBatis的sql语句
    application.yml配置文件上配置
logging:level:com.imooc.dataobject.mapper:trace

将mapper包下的所有类的日志等级设置为最低的trace等级

MyBatis基本操作

package com.imooc.dataobject.mapper;import com.imooc.dataobject.ProductCategory;
import org.apache.ibatis.annotations.*;import java.util.List;
import java.util.Map;//采用MyBatis操作数据库
public interface ProductCategoryMapper {//使用Map插入数据//注意!!! #{categoryName,jdbcType=VARCHAR} map中的键值需要与categoryName保持一致//即map.put("categoryName","testName")//jdbcType=VARCHAR是规定写法,jdbcType后面的类型一定要全部大写!!!(只有传入Map对象作为参数,jdbcType才是必写的)@Insert("insert into product_category(category_name,category_type) values (#{categoryName,jdbcType=VARCHAR},#{categoryType,jdbcType=INTEGER})")int insertByMap(Map<String,Object> map);//使用对象插入数据//注意!!!  #{categoryName,jdbcType=VARCHAR}    categoryName一定要与ProductCategory类中的属性名称一致//且ProductCategory中属性的get和set方法一定要有@Insert("insert into product_category(category_name,category_type) values (#{categoryName},#{categoryType})")int insertByObject(ProductCategory productCategory);//查询结果只有单条//注意!!! 查询需要返回结果,格式如下,column的值为数据库中的字段名,而property的值为对应类的属性名@Select("select * from product_category where category_type = #{categoryType}")@Results({@Result(column = "category_type",property = "categoryType"),@Result(column = "category_name",property = "categoryName"),@Result(column = "category_id",property = "categoryId"),})ProductCategory findByCategoryType(Integer categoryType);//查询结果有多个//注意!!! 查询需要返回结果,格式如下,column的值为数据库中的字段名,而property的值为对应类的属性名@Select("select * from product_category where category_name = #{categoryName}")@Results({@Result(column = "category_type",property = "categoryType"),@Result(column = "category_name",property = "categoryName"),@Result(column = "category_id",property = "categoryId"),})List<ProductCategory> findByCategoryName(String categoryName);//更新//注意!!! 传多个参数时需要使用@Param映射一下@Update("update product_category set category_name=#{categoryName} where category_type=#{categoryType}")int updateByCategoryType(@Param("categoryName") String categoryName,@Param("categoryType") Integer categoryType);//使用对象更新@Update("update product_category set category_name=#{categoryName} where category_type=#{categoryType}")int updateByObject(ProductCategory productCategory);//删除数据@Delete("delete from product_category where category_type = #{categoryType}")int deleteByCategoryType(Integer categoryType);
}

对应测试代码


package com.imooc.dataobject.mapper;import com.imooc.dataobject.ProductCategory;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;import java.util.HashMap;
import java.util.List;
import java.util.Map;import static org.junit.Assert.*;@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class ProductCategoryMapperTest {@Autowiredprivate ProductCategoryMapper mapper;@Testpublic void insertByMap() {Map<String, Object> map = new HashMap<>();map.put("category_name","fine");map.put("category_type",90);int result = mapper.insertByMap(map);Assert.assertNotEquals(0,result);}@Testpublic void insertByObject(){ProductCategory productCategory = new ProductCategory();productCategory.setCategoryId(30);productCategory.setCategoryName("testName");productCategory.setCategoryType(100);int result = mapper.insertByObject(productCategory);Assert.assertNotEquals(0,result);}@Testpublic void findByCategoryTypeTest(){ProductCategory productCategory = mapper.findByCategoryType(3);Assert.assertNotNull(productCategory);}@Testpublic void findByCategoryNameTest(){List<ProductCategory> resultList = mapper.findByCategoryName("food");Assert.assertNotEquals(1,resultList.size());}@Testpublic void updateByCategoryTypeTest(){int result = mapper.updateByCategoryType("helloTest", 11);Assert.assertEquals(1,result);}@Testpublic void updateByObjectTest(){ProductCategory productCategory = new ProductCategory();productCategory.setCategoryName("worldTest");productCategory.setCategoryType(11);int result = mapper.updateByObject(productCategory);Assert.assertEquals(1,result);}@Testpublic void deleteByCategoryTypeTest(){int result = mapper.deleteByCategoryType(11);Assert.assertNotEquals(0,result);}
}

这篇关于SprintBoot整合MyBatis简易教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/936134

相关文章

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

Mybatis官方生成器的使用方式

《Mybatis官方生成器的使用方式》本文详细介绍了MyBatisGenerator(MBG)的使用方法,通过实际代码示例展示了如何配置Maven插件来自动化生成MyBatis项目所需的实体类、Map... 目录1. MyBATis Generator 简介2. MyBatis Generator 的功能3

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

PyTorch使用教程之Tensor包详解

《PyTorch使用教程之Tensor包详解》这篇文章介绍了PyTorch中的张量(Tensor)数据结构,包括张量的数据类型、初始化、常用操作、属性等,张量是PyTorch框架中的核心数据结构,支持... 目录1、张量Tensor2、数据类型3、初始化(构造张量)4、常用操作5、常用属性5.1 存储(st

Java操作PDF文件实现签订电子合同详细教程

《Java操作PDF文件实现签订电子合同详细教程》:本文主要介绍如何在PDF中加入电子签章与电子签名的过程,包括编写Word文件、生成PDF、为PDF格式做表单、为表单赋值、生成文档以及上传到OB... 目录前言:先看效果:1.编写word文件1.2然后生成PDF格式进行保存1.3我这里是将文件保存到本地后

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

用Java打造简易计算器的实现步骤

《用Java打造简易计算器的实现步骤》:本文主要介绍如何设计和实现一个简单的Java命令行计算器程序,该程序能够执行基本的数学运算(加、减、乘、除),文中通过代码介绍的非常详细,需要的朋友可以参考... 目录目标:一、项目概述与功能规划二、代码实现步骤三、测试与优化四、总结与收获总结目标:简单计算器,设计