4.springboot中整合Mybatis

news2024/11/16 19:29:25

Springboot整合mybatis

在 Spring+SpringMVC 中整合 MyBatis 步骤需要在配置文件里配置多个 Bean,比如MapperScannerConfigurer,SqlSessionFactoryBean 等,步骤还是比较复杂的,Spring Boot 中对此做了进一步的简化,使 MyBatis 基本上可以做到开箱即用,本章来学习怎么在 Spring Boot 中整合Mybatis,也就是搭建SSM环境 。

Spring Boot中整合mybatis,主要有两种方式。

方式1:xml文件

方式2:注解方式

一 方式1 使用XML方式整合Mybatis

使用Xml方式也就是将Sql语句写在**Mapper.xml文件中

1.先用idea创建一个添加mybatis需要的相关依赖的工程。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建出来的项目结构如下:

在这里插入图片描述

2.准备数据库和表

在这里插入图片描述

3.创建表映射类

在这里插入图片描述

之前创建表映射类时,我们是手动添加set,get,toString方法和构造方法等,比如像这样

在这里插入图片描述

现在,我们可以添加一个Lombok 依赖来简化这些代码

Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现  Lombok,开发人员可以节省构建诸如 hashCode()和equals() 这样的方法以及以往用来分类各种 accessor 和 mutator 的大量时间。

在这里插入图片描述

<!--简化bean代码-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

添加需要的注解,通过注解来实现自动帮我们加入get,set,构造方法等。

@Data  /* 生成getter,setter ,toString等函数*/
@NoArgsConstructor /*生成无参构造函数*/
@AllArgsConstructor /*生成有参构造函数*/

在这里插入图片描述

package com.test.ssm.pojo;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data  /* 生成getter,setter ,toString等函数*/
@NoArgsConstructor /*生成无参构造函数*/
@AllArgsConstructor /*生成有参构造函数*/
public class Users {

    private int id;

    private String uname;

    private String pwd;


}

4.创建mapper文件

4.1创建UsersMapper.xml文件,并添加sql语句

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.test.ssm.mapper.UsersMapper">

    <select id="getAllUsers" resultType="Users">
        SELECT * FROM users
    </select>
</mapper>

在这里插入图片描述

4.2 创建mapper对应的代理接口

在这里插入图片描述

5.创建Service层和Service的实现层

在这里插入图片描述

在这里插入图片描述

6.创建控制层(也就是web层)

在这里插入图片描述

7.添加配置信息

7.1添加数据库链接信息和设置mybatis中的别名信息

#数据源配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/boot?characterEncoding=utf8&serverTimezone=GMT%2B8

#mybatis配置
mybatis.type-aliases-package=com.test.ssm.pojo

在这里插入图片描述

7.2在应用程序入口类上配置@MapperScan扫描mapper接口文件所在包!

在这里插入图片描述

@MapperScan(basePackages = "com.test.ssm.mapper")

7.3 在pom.xml文件中添加识别java目录下xml文件的配置

这是Maven 带来的问题,就是 java 目录下的 xml 资源在项目打包时会被忽略掉,所以,如果 UsersMapper.xml 放在Java目录下,需要在 pom.xml 文件中再添加如下配置,避免打包时 java 目录下的 XML 文件被自动忽略掉:

<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.xml</include>
        </includes>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
    </resource>
</resources>

在这里插入图片描述

8.运行

在这里插入图片描述

在这里插入图片描述

二 方式2 使用注解方式整合Mybatis

方式2和方式1相比,主要是mapper文件的区别,所以除了第4和第7步有点不一样以外,其它步骤相同。

1.先用idea创建一个添加mybatis需要的相关依赖的工程。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建出来的项目结构如下:

在这里插入图片描述

2.准备数据库和表

在这里插入图片描述

3.创建表映射类

在这里插入图片描述

之前创建表映射类时,我们是手动添加set,get,toString方法和构造方法等,比如像这样

在这里插入图片描述

现在,我们可以添加一个Lombok 依赖来简化这些代码

Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现  Lombok,开发人员可以节省构建诸如 hashCode()和equals() 这样的方法以及以往用来分类各种 accessor 和 mutator 的大量时间。

在这里插入图片描述

添加需要的注解,通过注解来实现自动帮我们加入get,set,构造方法等。

@Data  /* 生成getter,setter ,toString等函数*/
@NoArgsConstructor /*生成无参构造函数*/
@AllArgsConstructor /*生成有参构造函数*/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gucvji3j-1669985359061)(pic/f12.png)]

4.创建mapper代理接口

​ 不需要创建UsersMapper.xml文件,只需要创建UsersMapper接口就可以,将之前xml文件中的sql语句通过注解的方式写到接口中。

在这里插入图片描述

5.创建Service层和Service的实现层

在这里插入图片描述

在这里插入图片描述

6.创建控制层(也就是web层)

在这里插入图片描述

7.添加配置信息

7.1添加数据库链接信息和设置mybatis中的别名信息

#数据源配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/boot?characterEncoding=utf8&serverTimezone=GMT%2B8

#mybatis配置
mybatis.type-aliases-package=com.test.ssm.pojo

在这里插入图片描述

7.2在应用程序入口类上配置@MapperScan扫描mapper接口文件所在包!

在这里插入图片描述

8.运行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YiuIdGw6-16在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/56365.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GIS工具maptalks开发手册(三)03——官网示例之添加图层和移除图层

GIS工具maptalks开发手册(三)03——官网示例之添加图层和移除图层 效果 代码 index.html <!DOCTYPE html> <html> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1"> <ti…

Android系统启动流程

Android系统完整的启动过程&#xff0c;从系统层次角度可分为 Linux 系统层、Android 系统服务层、Zygote进程模型三个阶段&#xff1b;从开机到启动 Home Launcher 完成具体的任务细节可分为七个步骤&#xff0c;下面就从具体的细节来解读 Android 系统完整的初始化过程。 Lo…

java计算机毕业设计基于springboot电商项目(附源码讲解)

目录 1. 用户端 1.1 主页&#xff08;未登录时可以查看商品但是不可以购买&#xff09; 1.2 登录&#xff08;账号密码登录) 1.3 登录&#xff08;手机验证码登录&#xff09; 1.4 注册 1.5 查看商品详情 1.6 将商品加入购物车 1.7 在商品购物车中选中商品购买 1.8 …

Jenkins用户权限配置 (三)

平时开发会分为测试环境、生产环境&#xff0c;多个开发人员需要区分不同的权限。例如普通开发人员只能看到测试视图和发布测试环境&#xff0c;生产环境的发布则由负责把控的人员进行统一发布&#xff0c;所以需要在新建用户的同时也分配好权限 (一) 安装Role-based Authoriz…

基于C#的公交充值管理系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做C#程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问题…

利用SCRM进行精细化社群运营

有很多企业凭借私域模式获得爆发式的流量增长&#xff0c;但流量转化仍旧是个问题&#xff0c;因此企业在获得流量的同时&#xff0c;还要守住流量&#xff0c;进行精细化运营才行。 前言 近年来&#xff0c;私域、社群、裂变的模式已成为各行各业进行营销的主旋律&#xff0c…

【Matplotlib绘制图像大全】(八):Matplotlib使用text()添加文字标注

前言 大家好,我是阿光。 本专栏整理了《Matplotlib绘制图像大全》,内包含了各种常见的绘图方法,以及Matplotlib各种内置函数的使用方法,帮助我们快速便捷的绘制出数据图像。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmMatp…

[附源码]计算机毕业设计招聘系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

GIS工具maptalks开发手册(三)02——层级缩放工具

GIS工具maptalks开发手册(三)02——层级缩放工具 效果-层级缩放工具 代码 index.html <!DOCTYPE html> <html><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1"><title>…

[附源码]Python计算机毕业设计SSM抗新冠肺炎药品进销存管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

[附源码]计算机毕业设计疫情防控管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Mysql - 读写分离与读负载均衡之Maxscale

原文地址 Mysql - 读写分离与读负载均衡之Maxscale - 小豹子加油 - 博客园 maxscale会自动识别出集群的master与slave角色。所以我们可以将maxscale与mha结合起来&#xff0c;既能实现主库的故障转移&#xff0c;又能实现读写分离和从库的负载均衡。 一、概述 常见的高可用…

干货 | Burpsuite的使用tips总结

渗透测试用到Burp时候很多&#xff0c;整理了一些tips供测试时候更得心应手~ tips1:光标错位和中文显示 新版一打开容易光标错位&#xff0c;默认情况下使用字体是Courier New&#xff0c;显示不了中文。 换用Monospaced字体即可正常显示中文&#xff0c;一般这里就不会错位了…

[附源码]Python计算机毕业设计Django基于Web的绿色环保网站

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

【Matplotlib绘制图像大全】(十一):Matplotlib使用rcParams修改默认参数配置

前言 大家好,我是阿光。 本专栏整理了《Matplotlib绘制图像大全》,内包含了各种常见的绘图方法,以及Matplotlib各种内置函数的使用方法,帮助我们快速便捷的绘制出数据图像。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmMatp…

Allegro如何在PCB上开槽的三种方法操作指导

Allegro如何在PCB上开槽的三种方法操作指导 当PCB有特殊设计要求的时候,需要在PCB上开槽,Allegro支持在PCB上开槽操作,具体操作如下 以下图为例,需要在这个板框中间开槽 开方形槽 选择shape add rect命令 画在Board Geometry-outline层,type选择Unfilled 在需要开槽的…

C/C++ 动态规划 算法

动态规划算法&#xff0c;以最小的消耗解题&#xff01; 以一个走楼梯为例子展开。 假设有一个三级台阶&#xff0c;我们一次可以走一步&#xff0c;或者一次走两步&#xff0c;那么由此可知&#xff0c;一共有3中走法&#xff0c;如下图 当台阶数量少的时候&#xff0c;确实很…

MPViT : Multi-Path Vision Transformer for Dense Prediction

MPViT : Multi-Path Vision Transformer for Dense Prediction一、引言&#xff08;一&#xff09;、Vision Transformers for dense predictions&#xff08;二&#xff09;、Comparison to Concurrent work二、实现细节&#xff08;一&#xff09;、Multi-Path Vision Transf…

C#【必备技能篇】使用GDI绘制进度条的代码实现

文章目录一、使用“用户控件”生成圆环进度条的dll1、使用VS2019新建项目&#xff08;类库&#xff09;2、添加用户控件3 、用户控件PercentStar.cs源码编写二、引用dll&#xff0c;在Winform中代码实现1、新建Windows窗体应用&#xff08;.NET Framework&#xff09;2、添加引…

Java项目:ssm房屋租赁管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目分为管理员与租户2种角色&#xff1a; 管理员主要功能包括&#xff1a; 登录、查看房源信息、添加房源、查看租赁情况、合同查看、看房申…