springBoot集成Mybatis

Mybatis源码解析之SpringBoot集成mybatis-spring-boot-starter分析 Mybatis源码解析之核心类分析 Mybatis源码解析之初始化分析 Mybatis源码解析之执行流程解析 Mybatis源码解析之数据库连接和连接池 Mybatis源码解析之事务管理 Mybatis源码解析之缓存机制(一):一级缓存 Mybatis源码解析之缓存机制(二):二级缓存 Mybatis源码解析之插件机制 Mybatis源码解析之mapper接口的代理模式 Mybatis源码解析之D... 阅读详情

1.添加依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.huawei.springboot</groupId>
    <artifactId>springBoot-mybatis</artifactId>
    <version>1.0-SNAPSHOT</version>


    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

        <dependency><!--MVC,AOP的依赖包-->
            <!--在parent中已经设置了version,这里就不需要设置,spring会自动设置合适的version-->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
            <scope>true</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <!--添加mysql数据库驱动依赖包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!-- 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>2.0.0</version>
        </dependency>
        <!--
                MyBatis提供了拦截器接口,我们可以实现自己的拦截器,
                将其作为一个plugin装入到SqlSessionFactory中。
                Github上有位开发者写了一个分页插件,我觉得使用起来还可以,挺方便的。
                Github项目地址: https://github.com/pagehelper/Mybatis-PageHelper
             -->
        <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.2.1</version>
        </dependency>

    </dependencies>

    <build>
        <finalName>spring-web</finalName>
        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <!--fork :  如果没有该项配置,devtools不会起作用,即应用不会restart -->
                        <fork>true</fork>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

2.添加配置文件

########################################################
###datasource
########################################################
#后面加的一长串是为了解决乱码
spring.datasource.url = jdbc:mysql://localhost:3306/springboot?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = Root@123
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10

3.创建持久化bean

package com.huawei.beans;

public class Student {
    private Integer id;
    private String name;

    public Student() {
    }

    public Student(String name) {
        this.name = name;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Student{" + "id=" + id + ", name='" + name + '\'' + '}';
    }
}

4.创建dao

package com.huawei.mapper;

import com.huawei.beans.Student;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface StudentMapper {

    @Select("select * from student where name = #{name}")
    public List<Student> likeName(String name);

    @Select("select *from student where id = #{id}")
    public Student getById(long id);

    @Select("select name from student where id = #{id}")
    public String getNameById(long id);
}

5.创建service

package com.huawei.service;

import com.huawei.beans.Student;
import com.huawei.mapper.StudentMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class StudentService {

    @Autowired
    private StudentMapper studentMapper;

    public List<Student> likeName(String name) {
        return studentMapper.likeName(name);
    }


}

6.创建controller

package com.huawei.controller;

import com.github.pagehelper.PageHelper;
import com.huawei.beans.Student;
import com.huawei.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class StudentController {
    @Autowired
    StudentService studentService;

    @RequestMapping("/likeName")
    public List<Student> likeName(String name){
        PageHelper.startPage(1,2);
        return studentService.likeName(name);
    }
}

7.创建分页配置bean

package com.huawei.config;

import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

@Configuration
public class MyBatisConfiguration {

    @Bean
    public PageHelper pageHelper() {
        System.out.println("MyBatisConfiguration.pageHelper()");

        PageHelper pageHelper = new PageHelper();
        Properties p = new Properties();
        p.setProperty("offsetAsPageNum", "true");
        p.setProperty("rowBoundsWithCount", "true");
        p.setProperty("reasonable", "true");
        pageHelper.setProperties(p);
        return pageHelper;
    }


}

8.创建启动类

package com.huawei;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.huawei.*")
public class App
{
    public static void main( String[] args )
    {
        SpringApplication.run(App.class, args);
    }
}

运行:

问题:

分页版本是4.2.0时,会导致第一次分页成功,第二层抛出异常的问题,使用4.2.1就可以解决问题

9.使用insert获取自增长ID

在mapper中添加insert方法

 @Insert("insert into student(name) values(#{name})")
 @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
 public void save(Student student);

添加service

 public void addStudent(Student student) {
     studentMapper.save(student);
 }

添加controller

    @RequestMapping("/save")
    public Student save(){
        Student student = new Student("mn");
        studentService.addStudent(student);
        return student;
    }

【SpringBoot3】Spring Boot 3.0 集成 Mybatis Plus MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 阅读详情

相关推荐

Springboot 集成Mybatis

MyBatis 是一个灵活且强大的数据持久化框架,它允许开发者控制 SQL 执行并提供了多种映射功能。与 Spring Boot 集成后,能够利用 Spring Boot 的自动配置和便利性,简化配置和开发过程。通过以上步骤,你可以快速地将 MyBatis 集成到 Spring Boot 项目中,充分发挥两者的优势,提高开发效率和系统的可维护性。

lay_lu的博客 3241

Mybatis之Mybatis plugin的安装

我们先来了解一下什么是Mybatis plugin 提供Mapper接口与配置文件中对应SQL的导航 编辑XML文件时自动补全 根据Mapper接口, 使用快捷键生成xml文件及SQL标签 ResultMap中的property支持自动补全,支持级联(属性A.属性B.属性C) 快捷键生成@Param注解 XML中编辑SQL时, 括号自动补全 XML中编辑SQL时, 支持参数自动补全(基于@Para...

席同学的博客 767

springboot集成mybatis原理剖析

前言:本文主要基于springboot项目,从springboot的拓展角度来分析mybatis是如何与springboot集成的。 1、首先搭建springboot集成mybatis环境 1.1、maven pom文件依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apac...

iMChenJiaMing的博客 2345

(2019最新)IntelliJ IDEA安装mybatis插件

Free Mybatis plugin这款插件, 是免费的, 不用破解!!!! 下载后,重启就好了 (如果,该贴完美解决你的问题,请点一个赞

毛兔记录:工作小技巧、遇到的一些典型bug、问题汇总、小知识。 1万+

springboot集成mybatis

在test文件中,先测试是否能联通数据库,可以自己在数据库中插入一个数据,然后测试时查询全部,看看能否将自己插入的。需要的一些数据,也可以不建,直接将这些数据放在application.properties文件下,不过格式得转换。在services下新建接口UserLoginServicesI和类UserLoginServicesImpl。输入用户名和密码,点击登录,如果数据库中存在该账号,则跳转到success页面,如果账号不存在,则显示用户名不存在,请先注册。张三已经注册成功,当然也可以实现登录了!

代码蒋的博客 909

mybatis集成篇(二)--Springboot集成mybatis

随着Spring框架越来越成熟,推出的Springboot使用也越来越广,Mybatis随其自然地适配Springboot。

YaYicho的博客 1253

Spring Boot 集成MyBatis

Spring Boot 集成MyBatis在配置MyBatis前,我们先配置一个druid数据源。Spring Boot 集成druiddruid有很多个配置选项,使用Spring Boot 的ConfigurationProperties我们可以很方便的配置druid。创建DataSourceConfig如下:/** * 数据源 * * @author liuzh * @since 201

偶尔记一下 - mybatis.io 35万+

MybatisPlugin crack 完美破解

我真不想收费的,毕竟这是开源的,但是最低好像是2分,对不起各位了

SpringBoot集成MyBatis

SpringBoot 1. SpringBoot集成MyBatis 1.1 添加mybatis依赖,MySQL驱动 1.2 使用MyBatis提供的逆向工程生成实体Bean,映射文件,DAO接口 1.2.1 配置文件GeneratorMapper.xml 1.2.2 插件 1.2.3 成功生成映射文件,DAO接口,实体Bean 1.2.4 总结: 1.3 SpringBoot集成MyBatis测试 1.4 扫描DAO的注解——有两种@Mapper和@MapperScan() 1.5 问题:Ja

m0_67391377的博客 1万+

Mybatis Plugin插件,提供多种版本,内附说明

该Mybatis Plugin插件主要是可以直接从mapper跳到dao,或者从dao跳到mapper,当然还有其他功能,此资源包含多个版本,内附详细说明,建议使用正版

mybatis_log_plugin_2020idea.jar

从idea2020之后,之前的MyBatis Log Plugin都不发使用。能使用的插件也开始收费。所以为了能够继续使用IDEA2020。自己适配了一下之前的插件,使其兼容2020.经过测试。正常运行

SpringBoot集成Mybatis 【图文教程】

本文介绍了SpringBoot与MyBatis集成开发的基本流程。SpringBoot简化了应用配置,MyBatis提供了灵活的SQL操作能力。集成步骤包括:添加依赖(SpringBoot和MyBatis starter)、配置数据源、创建实体类、Mapper接口与XML映射文件,以及实现Service层和Controller层。通过注解方式实现自动注入,最终构建了一个完整的用户管理REST API,包含查询、新增、修改和删除功能。这种组合既保持了开发效率,又确保了数据库操作的灵活性。

深耕 Java 后端与企业级软件架构设计,专注微服务、分布式系统、大模型 AI 应用架构落地。 1327

免费测试国外大模型Claude 3.7 Sonnet API:无需api key(秘钥)

Claude 3.7 Sonnet是Anthropic公司推出的第三代Claude系列AI模型中的中规模版本(2024年发布),在性能与效率间实现平衡。该模型基于改进的Transformer架构,支持128K上下文窗口,擅长复杂推理、数学计算和创意写作,在GSM8K数学基准测试中准确率达92%。其采用"宪法AI"伦理框架,通过多轮对抗训练减少有害输出,同时新增多模态理解能力(可解析图片/图表内容)。Claude 3.7 Sonnet是Anthropic推出的高效轻量级大模型,主打快速响应与成本优化。

Explinks的博客 1497

springboot 集成mybatis_Spring Boot集成Mybatis笔记

在学校做实训项目,计划使用spring cloud尝试部署一下微服务,结果不小心在springboot集成mybatis的配置这里花掉了不少时间,觉得还是有必要记录一下,先写配置过程,再写这样配置的原因和思路,用以分享和讨论1.新建project,点击Spring Initializr选项,如果网络不太好可以选择custom并输入http://start.spring.io/ ,点击next...

weixin_39610678的博客 74

表面声波滤波器——叉指换能器设计实战:从关键参数到结构选型

本文深入探讨了表面声波滤波器核心部件叉指换能器的实战设计流程。从目标驱动出发,详细解析了如何根据中心频率确定关键参数指宽,并权衡叉指对数对带宽和插入损耗的影响。文章进一步介绍了通过变迹加权优化频率响应,并对比了梯形结构与纵向耦合谐振滤波器等主流结构选型的适用场景与优缺点,为工程师提供从理论计算到仿真验证的完整设计指南。

weixin_29216353的博客 104

【VisionMaster】图像源模块之本地图像

图像采集之图像源

zhy29563 6960

SpringBoot集成Mybatis

背景Mybatis是一个半自动化的ORM(对象关系映射)框架,它通过XML或注解的方式将Java对象和SQL语句进行映射,从而实现对数据库的增删改查操作。Mybatis ORM简介基本概念:Mybatis简化了数据访问层的开发,通过映射配置文件或注解将Java对象与数据库表进行映射,实现了对象关系映射。优点:Mybatis提供了灵活的SQL编写方式,支持动态SQL,易于与Spring等框架集成,同...

Diligence is the mother of success. 1152

Matlab实现POD本征正交分解数据降维模型

近年来,随着大数据时代的到来,各种复杂的工程问题产生了海量的高维数据,如何有效降维、提取数据中的关键信息成为了众多领域中的重要问题。在传统的数据降维方法中,PCTFA(主成分分析)是一种典型的统计方法,然而对于流体动力学等非线性问题,PCTFA在处理时可能失去部分物理意义,难以捕捉到系统的复杂性。在降维过程中,POD提取的主要特征通常是一组复杂的正交基函数,如何将这些结果有效地转化为直观且易于理解的物理意义,特别是在实际应用中,对该特征的理解和分析,依然是一个重要的课题。本项目的扩展性也得到了有效体现。

优质创作者: 人工智能技术领域 对于有一定基础的 MATLAB和Python带具体需求都可以详谈 MATLAB和Python可以提供代码调试服务加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢 1216

springboot如何集成mybatis呢?

springboot集成mybatis的方法分享

qq_25073223的博客 369

在国产麒麟系统上,用Postfix和Dovecot手搓一个内部邮件服务器(附Foxmail配置)

本文详细介绍了在国产麒麟系统上使用Postfix和Dovecot搭建内部邮件服务器的完整流程,包括系统准备、核心配置、安全加固及客户端适配。针对国产环境的特殊需求,提供了依赖包适配、配置差异和Foxmail客户端配置的实用解决方案,助力企业实现高效内部协作。

weixin_33722405的博客 371

VS2022+Qt6保姆级环境配置指南:从插件安装到项目互通全流程

本文提供VS2022与Qt6深度整合的全流程指南,涵盖环境配置、插件安装、项目互通等关键步骤。详细解析编译器版本匹配、跨IDE协作方案及效能优化技巧,帮助开发者高效搭建C++界面设计开发环境,实现软件项目无缝互通。

zero1的博客 733

springboot之集成mybatis-plus

本文介绍了SpringBoot项目集成MyBatis-Plus的详细步骤。首先对比了MyBatis和MyBatis-Plus的优缺点,重点突出MyBatis-Plus在CRUD操作、条件构造器等方面的优势。然后详细说明了集成过程:1)引入相关依赖;2)配置数据源;3)设置Mapper扫描;4)创建Mapper接口;5)编写Service层;6)定义Controller测试接口。文章还特别强调了分模块部署时的配置注意事项和注解使用的要点。最后通过测试验证了集成的有效性,为开发者提供了完整的MyBatis-Pl

nvkdnx的博客 1167

用AnythingLLM搭建私人RAG知识库:从入门到实战调优指南

大型语言模型虽然知识渊博,但无法触达私有文档中的具体内容,这正是检索增强生成(RAG)技术的核心价值所在。RAG通过先将文档切块并向量化,再在提问时检索最相关的片段拼接给模型,让AI基于指定资料精准回答,无需昂贵的模型微调。这种架构不仅让知识更新即时生效,还大幅降低了私有化部署的门槛。在实际工程中,RAG的落地需要合理选择嵌入模型、设计分块策略并调优检索参数,才能避免答非所问。对于个人或小团队,使用开源工具搭建本地知识库是最省心的路径,其中AnythingLLM以其开箱即用的特性,成为连接向量检索与模型推理

weixin_29062671的博客 229

MyBatis与 Springboot 的集成

除了在 Mapper 接口中使用注解定义 SQL 语句外,MyBatis 也支持通过 XML 文件进行 SQL 定义。为了演示,假设我们想通过 XML 文件定义 SQL 查询。创建文件,并将其放在目录下。> < select id = " findAll " resultType = " com.example.demo.model.User " > SELECT * FROM users

Flying_Fish_roe的博客 1202

麒麟操作系统安装教程(保姆级)

本文介绍了如何在VM中安装麒麟操作系统,文章详细的介绍了麒麟操作系统按钻过步骤。

啊渊的专栏 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: Spring Boot之添加JSP支持
下一篇: Linux文件管理
给自己加加油
博客等级 码龄8年 302粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值