springboot 2.x整合mybatis实现增删查和批量处理方式

目录
  • springboot 2.x整合mybatis实现增删查和批量处理
    • 1.添加依赖
    • 2.添加配置文件
    • 3.Application.class添加扫描
    • 4.创建Mapper
    • 5.创建provider实现类
  • Springboot整合mybatis(注解而且能看明白版本)
    • 1.环境配置
    • 2.整合Mybatis

springboot 2.x整合mybatis实现增删查和批量处理

话不多说,直接上代码:

1.添加依赖

       <!--mybatis数据库整合-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <!-- MySQL的JDBC驱动包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--引入第三方数据源-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.6</version>
        </dependency>

2.添加配置文件

#---------------------
# mybatis配置
#---------------------

#设置数据源(默认数据源是com.zaxxer.hikari.HikariDataSource)
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#数据库登录账号
spring.datasource.username=root
#数据库登录密码
spring.datasource.password=123456
#数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/customer?useUnicode=true&characterEncoding=utf-8
#驱动(会自动检测配置,可以注释掉)
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#设置需要被扫描的包
#mybatis.type-aliases-package=java.com.example.demo
#打印sql语句(一般用于本地开发测试)
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

3.Application.class添加扫描

(路径为自己项目package的路径)

@SpringBootApplication
@ServletComponentScan
@MapperScan("com.example.mapper") //mybatis包扫描
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

4.创建Mapper

@Mapper
public interface DemoMapper {

    //增
    @Insert("INSERT INTO demo(name,age)VALUES(#{name},#{age})")
    @Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id") //获取插入后自动生成的主键,keyProperty对应类属性名,keyColumn对应数据库字段名
    int add(Demo demo);

    //删
    @Delete("DELETE FROM demo WHERE id=#{id}")
    boolean deleteById(int id);

    //查
    @Select("SELECT * FROM demo WHERE id=#{id}")
    Demo findById(int id);
    @Select("SELECT * FROM demo WHERE login=#{login} AND password=#{password}")
    Demo findByObject(@Param("login") String login,@Param("password") String password);

    //改,注意:需要指定参数映射@Param,如不指定,可按下面的方法执行
    @Update("UPDATE demo SET name=#{name} WHERE id =#{id}")
    boolean updateById(@Param("name") String name,@Param("id") int id);
    @Update("UPDATE demo SET name=#{name} WHERE id =#{id}")
    boolean update_2ById(Demo demo);

    //批量增
    @InsertProvider(type = LoginProvider.class,method = "insert")
    int insert(@Param("demoList")List<Demo> demoList);

    //批量删
    @DeleteProvider(type = LoginProvider.class,method = "delete")
    boolean delete(@Param("demoList")List<Demo> demoList);

    //批量查
    @Select("SELECT * FROM demo")
    List<Demo> find();
    @SelectProvider(type = LoginProvider.class,method = "find2")
    List<Demo>find2(@Param("demoList")List<Demo> demoList);

    //批量改
    @UpdateProvider(type = LoginProvider.class,method = "update")
    boolean update(@Param("demoList")List<Demo> demoList);

}

5.创建provider实现类

为注解@UpdateProvider、@InsertProvider、@DeleteProvider、@SelectProvider返回可执行SQL语句,需注意:要添加@Param注解,指定映射参数

public class LoginProvider {

    public String insert(@Param("demoList")List<Demo> demoList){
        StringBuilder builder=new StringBuilder();
        builder.append("INSERT INTO demo(name,age)VALUES");
        String message="(''{0}'',{1})";
        int i=1;
        for (Demo demo : demoList) {
            String s = MessageFormat.format(message, demo.getName(), demo.getAge());
            builder.append(s);
            if (i==demoList.size()){break;}
            builder.append(",");
            i++;
        }
        return builder.toString();
    }

    public String delete(@Param("demoList")List<Demo> demoList){
        StringBuilder builder=new StringBuilder();
        builder.append("DELETE FROM demo WHERE id IN (");
        int i=1;
        for (Demo demo : demoList) {
            builder.append(demo.getId());
            if (i==demoList.size()){break;}
            builder.append(",");
            i++;
        }
        builder.append(")");
        return builder.toString();
    }

    public String find2(@Param("demoList")List<Demo> demoList){
        StringBuilder builder=new StringBuilder();
        builder.append("SELECT * FROM demo WHERE id IN (");
        int i=1;
        for (Demo demo : demoList) {
            builder.append(demo.getId());
            if (i==demoList.size()){break;}
            builder.append(",");
            i++;
        }
        builder.append(")");
        return builder.toString();
    }

    public String update(@Param("demoList")List<Demo> demoList){
        StringBuilder builder=new StringBuilder();
        builder.append("INSERT INTO demo(id,name,age)VALUES");
        String message="({0},''{1}'',{2})";
        int i=1;
        for (Demo demo : demoList) {
            String s = MessageFormat.format(message, demo.getId(), demo.getName(), demo.getAge());
            builder.append(s);
            if (i==demoList.size()){break;}
            builder.append(",");
            i++;
        }
        builder.append("on duplicate key update id=VALUES(id),age=values(age),name=VALUES(name)");
        return builder.toString();
    }
}

Springboot整合mybatis(注解而且能看明白版本)

Springboot整合Mybatis实现一个最基本的增删改查功能,整合的方式有两种一种是注解形式的,也就是没有Mapper.xml文件,还有一种是XML形式的,我推荐的是使用注解形式,为什么呢?因为更加的简介,减少不必要的错误。

1.环境配置

对于环境配置我是用了一张表来展示,版本之间差异不大,你可以基于其他版本进行测试。

这就是我的基本的环境。下一步我们一步一步来整合一波

2.整合Mybatis

第一步:数据库新建Person表

这个表结构很简单,也就是三个字段id、name、age。并以id为主键且递增。

第二步:新建Springboot项目

这个比较简单,这里先给出一个最终的目录结构:

第三步:导入相关依赖

OK,我们只需要加上这些依赖即可。在我们的pom文件。

第四步:更改application.yml配置文件

我们只需要把application.properties文件改为yml格式即可。此时添加相关配置

这里的配置有点多,不过还是一个最基本的配置都在这。

第五步:新建dao包,在dao包下新建Person类

这个类是和我们数据库中的Person类一一对应的。

第六步:新建mapper包,在mapper新建PersonMapper类

在这个类中,我们实现基本的增删改查功能接口:

这就是最基本的一个增删改查操作的接口。

第七步:新建service包,在service包创建PersonService接口

第八步:在service包下创建PersonServiceImpl接口实现类

第九步:编写controller层

第十步:在启动主类添加扫描器

第十一步:测试

在浏览器输入相应的路径即可。OK。大功告成。只要你按照上面的步骤一步一步来,就一定OK。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 最全MyBatis核心配置文件总结(需要收藏)

    前言 上一篇我们通过将MyBatis和传统JDBC,DBUtils,以及Hibernate作了简单的对比,并且列举了一个非常简单的demo,今天这篇主要介绍一下MyBatis的全局配置文件的使用 configuration mybatis-config.xml文件的头部格式我们就不说了,直接从属性开始介绍,configuration为最顶层节点,其余所有的属性都必须嵌套在configuration内,MyBatis配置文件的顶层节点如下: <properties></properties

  • 详解Mybatis核心配置文件

    Mybatis核心配置文件 记录在mybatis核心配置文件中,常用的配置选项: 下边是之前的配置选项: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"

  • Java Mybatis框架增删查改与核心配置详解流程与用法

    目录 Mybatis简介 Mybatis开发步骤: Mybatis的映射文件概述 Mybatis的增删改查操作 MyBatis的核心配置文件概述 MyBatis核心配置文件层级关系 MyBatis常用配置解析 Mybatis相应API 原始JDBC操作 原始jdbc操作(查询数据) 原始jdbc操作(插入数据) 原始jdbc操作的分析原始jdbc开发存在的问题如下: ①数据库连接创建.释放频繁造成系统资源浪费从而影响系统性能 ②sql 语句在代码中硬编码,造成代码不易维护,实际应用sql变化的可

  • SpringBoot整合mybatis-plus进阶详细教程

    目录 前言 wapper介绍 : 条件构造器 AbstractWrapper 一.什么是AbstractWrapper 二.QueryWrapper(LambdaQueryWrapper) 1.QueryWrapper用法示例 2.LambdaQueryWrapper用法示例 三.UpdateWrapper(LambdaUpdateWrapper) 1.UpdateWrapper用法示例 2.LambdaUpdateWrapper用法示例 mybatis-plus的插件 一.分页插件 1.配置分

  • SpringBoot整合mybatis-plus快速入门超详细教程

    目录 前言 mybatis-plus 简介 mybatis-plus 优点 相关链接 mybatis-plus实例 1.示例项目结构 2.数据库准备 3.pom.xml: 4.application.yml 5.User.java 6.UserMapper.java 7.UserServiceImpl.java 8.测试类 mybatis-plus的crud: 1.insert操作: 2.select操作: 3.update操作: 4.delete操作: 总结 前言 mybatis-plus 简

  • MyBatis-Plus简介和快速入门教程

    目录 一.MyBatis-Plus简介(来自官网) 二.快速开始 三.通用CRUD 3.1 insert(插入操作) 3.2 updateById(更新操作) 3.3 查询操作--各种select 3.4 删除操作--各种delete 附加1:如果表名或者表中属性的名称与我们实体类的名称不同解决方法 一.MyBatis-Plus简介(来自官网) MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做修改,为简化开发.提高效率而生. 特性: 无侵入

  • springboot 2.x整合mybatis实现增删查和批量处理方式

    目录 springboot 2.x整合mybatis实现增删查和批量处理 1.添加依赖 2.添加配置文件 3.Application.class添加扫描 4.创建Mapper 5.创建provider实现类 Springboot整合mybatis(注解而且能看明白版本) 1.环境配置 2.整合Mybatis springboot 2.x整合mybatis实现增删查和批量处理 话不多说,直接上代码: 1.添加依赖 <!--mybatis数据库整合--> <dependency> &l

  • 一小时迅速入门Mybatis之增删查改篇

    目录 一.说明 二.开搞 2.1 数据库表 2.1 创建实体类 2.2 创建接口 2.3 创建XML 2.5 测试类 2.6 唠唠 一.说明 这二篇涉及到映射Java实体类.面向接口编写Mybatis.增删查改示例 怎么引入jar包,怎么配置数据库看上一篇哦~ 二.开搞 2.1 数据库表 上一篇好像丢了数据库创建语句 -- 主键自增 DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` bigint(20) NOT NULL AUTO_I

  • springboot多模块化整合mybatis,mapper自动注入失败问题及解决

    目录 springboot多模块化整合mybatis,mapper自动注入失败 问题 解决 springboot mapper注入失败的一种原因 具体情况是 解决办法 springboot多模块化整合mybatis,mapper自动注入失败 问题 启动类添加@MapperScan或@ComponentScan,mapper类添加@Mapper或@Repository ==> Consider defining a bean of type 'com.ten.mapper.UserMapper'

  • SpringBoot详解整合MyBatis过程中可能遇到的问题

    尽量不要用 jUnit 提供的单元测试 提一个要求尽量使用SpringBoot 提供的测试类进行测试,能够自动扫描组件以及使用容器中的bean对象 还有如果有组件 中存在注入对象的话,那么必须在SpringBoot容器中取出 这个组件,进而使用注入的对象的功能!!! 今天有个错误,花了很长时间来解决,最后发现是一个很低级很基础的错误! 这是mapper接口,使用@mapper 相当于将接口的代理对象注册进入bean中,但是上下文中找不到(其实是正常) 因为 @Mapper 这个注解是 Mybat

  • spring 整合 mybatis 中数据源的几种配置方式(总结篇)

    因为spring 整合mybatis的过程中, 有好几种整合方式,尤其是数据源那块,经常看到不一样的配置方式,总感觉有点乱,所以今天有空总结下. 一.采用org.mybatis.spring.mapper.MapperScannerConfigurer 其实逆向工程也是这种方式 1.数据源配配置文件 2.DAO文件 package com.jdd.mapper; import com.jdd.pojo.Employee; import java.util.List; public interfa

  • SpringBoot整合Mongodb实现增删查改的方法

    目录 一.什么是MongoDB 二.在Window10上安装MongoDB 三.配置MongoDB服务 四.启动服务 五.SpringBoot整合MongoDB 一.什么是MongoDB MongoDB与我们之前熟知的关系型数据库(MySQL.Oracle)不同,MongoDB是一个文档数据库,它具有所需的可伸缩性和灵活性,以及所需的查询和索引. MongoDB将数据存储在灵活的.类似JSON的文档中,这意味着文档的字段可能因文档而异,数据结构也会随着时间的推移而改变.文档模型映射到应用程序代码

  • 使用springboot整合mybatis-plus实现数据库的增删查改示例

    1.准备数据库中的表及表中的数据 /* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.6.11 : Database - mp ********************************************************************* */ /*!40101 SET NAMES utf8 */; /*!40101 SET SQL_MODE=''*/; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQ

  • SpringBoot整合Mybatis简单实现增删改查

    目录 前言 第一:创建MySQL数据库 第二:创建SpringBoot项目,引入需要的依赖包 第三:创建程序目录和配置核心application.xml文件 第四:依次编写Entity.Dao.Service.Controller层,还有创建mapper.xml文件 第五:测试结果(这里我用的postman来进行接口测试) 第六:总结 前言 为什么要学SpringBoot和Mybatis呢,我觉得作为一个合格的后端程序员增删改查(CRUD)肯定是要会的,而且是最基本的一项技能,不然怎么完成给你分

  • SpringBoot整合Mybatis与thymleft实现增删改查功能详解

    首先我们先创建项目 注意:创建SpringBoot项目时一定要联网不然会报错 项目创建好后我们首先对 application.yml 进行编译 #指定端口号server: port: 8888#配置mysql数据源spring:  datasource:    driver-class-name: com.mysql.cj.jdbc.Driver    url: jdbc:mysql://localhost:3306/nba?serverTimezone=Asia/Shanghai    use

随机推荐