SpringBoot整合MyBatis步骤

在Spring Boot中整合MyBatis可以通过几种方式实现,主要包括使用官方的MyBatis Spring Boot Starter,或者通过手动配置。

使用MyBatis Spring Boot Starter,这是最简单的方式,因为Spring Boot Starter为我们自动配置了大部分的MyBatis设置。

第1步:添加依赖

pom.xml文件中添加MyBatis Spring Boot Starter依赖。

<dependencies><!-- MyBatis Spring Boot Starter --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version></dependency><!-- MySQL Connector --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!-- Spring Boot Starter Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>
第2步:配置application.properties

application.propertiesapplication.yml中配置数据源和MyBatis相关属性。

spring.datasource.url=jdbc:mysql://localhost:3306/yourdatabase
spring.datasource.username=root
spring.datasource.password=yourpassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Drivermybatis.type-aliases-package=com.example.model
mybatis.mapper-locations=classpath:mapper/*.xml

type-aliases-package属性指定了MyBatis类型别名的包路径。类型别名可以让我们在XML Mapper文件中简化Java类的引用,而无需写出全限定名称。例如,如果模型类 User 在包 com.example.model 中,我们可以将 type-aliases-package 设置为这个包路径。在XML中直接使用类名作为别名,而不是使用全限定路径名。实际使用下,我们往往使用全限定名,这样model的位置就可以很灵活。 

第3步:创建Mapper接口和XML文件

创建MyBatis的Mapper接口和相应的XML文件。

package com.example.mapper;import com.example.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;@Mapper
public interface UserMapper {@Select("SELECT * FROM users")List<User> findAll();
}

XML Mapper 文件示例:

<?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.example.mapper.UserMapper"><select id="findAll" resultType="com.example.model.User">SELECT * FROM users</select>
</mapper>
第4步:使用Mapper

在你的服务或控制器中注入Mapper接口,并使用它。

@RestController
public class UserController {@Autowiredprivate UserMapper userMapper;@GetMapping("/users")public List<User> getAllUsers() {return userMapper.findAll();}
}

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

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

相关文章

上海AI Lab开源首个可替代GPT-4V的多模态大模型

与开源和闭源模型相比&#xff0c;InternVL 1.5 在 OCR、多模态、数学和多轮对话等 18 个基准测试中的 8 个中取得了最先进的结果。 上海AI Lab 推出的 InternVL 1.5 是一款开源的多模态大语言模型 (MLLM)&#xff0c;旨在弥合开源模型和专有商业模型在多模态理解方面的能力差距…

【智能算法应用】麻雀搜索算法求解非线性方程组问题

目录 1.算法原理2.数学模型3.结果展示4.代码获取 1.算法原理 【智能算法】麻雀搜索算法&#xff08;SSA&#xff09;原理及实现 2.数学模型 非线性方程组为&#xff1a; 2 x 1 − x 2 e − x 1 − x 1 2 x 2 e − x 2 (1) \begin{aligned}&2x_1-x_2e^{-x_1}\\&-…

keepalive 理解

发送信息到目的ip失效&#xff08;对端服务器或者POD挂了&#xff09;&#xff0c;SYN 重试到TIMEOUT 内核参数TCP_SYNCNTGo grpc 设置withblock会一直阻塞&#xff0c;不设置withbloack每20s重试一次(20s是默认值) 发送信息到已经建连连接&#xff0c;TCP 重试到TIMEOUT 内…

基于机器学习的学生学习行为自主评价设计与实现

管理员功能&#xff1a; a)学生学习数据管理&#xff1a;可查看学生学习的详情&#xff0c;编辑学生学习的内容&#xff0c;删除和添加学生学习&#xff0c;设置学生学习库存。 b)角色管理&#xff1a;增加删除学生用户&#xff0c;分配学生用户权限&#xff0c;查看学生用户…

VirtualPrivate Network v2rayN

1, download/receive the package v2rayN 2, download .net package https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-8.0.4-windows-x64-installer?cidgetdotnetcore

油猴脚本:BOSS候选人简历工作履历时间自动计算显示

BOSS的候选人工作履历时间不计算&#xff0c;不符合我的查看习惯&#xff0c;很容易让那种经常跳槽的人简历通过&#xff0c;容易遗漏&#xff0c;特编写此程序! 使用前&#xff1a;使用后&#xff1a; 代码如下&#xff1a; // UserScript // name BOSS网页版辅助器…

马蹄集oj赛(双周赛第二十六次)

目录 斐波那契数列的组合 三国杀 数列分段 小码哥的跳棋游戏新编 能量供应 小码哥爱数字 最小串 小船过河 摘果子 泼墨淋漓 很重的枪 小码哥的布阵指挥 斐波那契数列的组合 #include<bits/stdc.h> using namespace std;// 斐波那契数列 1 1 2 3 5 8 13 21 34…

uni-app小知识点记录

一、uniapp输入框禁止输入汉字 <u-form-item label"****" prop"****"><u-input v-model"绑定值" type"text" input"limitInput"/> </u-form-item>limitInput(e) {this.$nextTick(() > {绑定值 e.rep…

通过实例学C#之Stack类

简介 集合&#xff0c;后进先出。 构造函数 Stack<>() 不使用参数创建stack对象。 Stack<>(ICollection col) 使用数组col来创建stack对象。 常用属性 Count 获取stack中包含的元素数。 static void Main(string[] args) {string[] strArray { "monda…

LeetCode HOT 100刷题总结

文章目录 1 哈希1.1 1-1.两数之和&#x1f7e2;1.2 2-49.字母异位词分组&#x1f7e1;1.3 3-128.最长连续序列&#x1f7e1; 2 双指针2.1 4-283.移动零&#x1f7e2;2.2 6-15.三数之和&#x1f7e1;2.3 7-11.盛最多水的容器&#x1f7e1;2.4 8-42.接雨水&#x1f534; 3 滑动窗…

【Web漏洞指南】服务器端 XSS(动态 PDF)

【Web漏洞指南】服务器端 XSS&#xff08;动态 PDF&#xff09; 概述流行的 PDF 生成工具常见攻击载荷 概述 如果一个网页使用用户控制的输入创建 PDF&#xff0c;您可以尝试欺骗创建 PDF 的机器人以执行任意的 JS 代码。 因此&#xff0c;如果PDF 创建机器人发现某种HTML标签…

【退役之重学Java】如何保证消息的幂等性

除了要保证高可用之外&#xff0c;从消息队列里消费到重复的消息该怎么办&#xff1f;即如何保证消息的幂等性 一、场景 消费者刚消费完&#xff0c;还没有提交&#xff0c;突然重启&#xff0c;导致重启后又收到了相同的消息&#xff0c;这就是重复消费 二、保证幂等性是什么…

为Linux的shell脚本编程创建文件时自动生成注释信息如(!/bin/bash)等

大家在每一次创建一个新的以.s等后缀结束的文件时可能总是会面临重复写一些注释信息,其实我们只需写一个文件自动生成这些就可以避免这些麻烦 首先在/root下新建一个如.vimrc的文件&#xff08;vim /root/.vimrc&#xff09; 然后输入以下内容 autocmd BufNewFile *.py,*.cc,…

程控负载的功能实现原理

程控负载&#xff0c;顾名思义&#xff0c;就是可以通过程序控制其工作状态的负载设备。它的主要功能是模拟实际负载的工作状态&#xff0c;为电源、电子设备等提供稳定的工作电流或电压。程控负载的功能实现原理主要包括以下几个方面&#xff1a; 1. 电流和电压调节&#xff1…

小米poco x3 pro adbd 以root权限启动提供服务

1. 首先申请解锁 2. 按volume - 和 power开机进入fastboot 3.下载twrp-3.7.1_12-0-vayu.img 4. fastboot flash recoery twrp-3.7.1_12-0-vayu.img, 安装magisk, termux 5. 下载aosp的android11的aosp_arm64-img-11718355.zip,Artifact Viewer 6. 解压aosp_arm64-img-1…

开源模型应用落地-CodeQwen模型小试-SQL专家测试(二)

一、前言 代码专家模型是基于人工智能的先进技术&#xff0c;它能够自动分析和理解大量的代码库&#xff0c;并从中学习常见的编码模式和最佳实践。这种模型可以提供准确而高效的代码建议&#xff0c;帮助开发人员在编写代码时避免常见的错误和陷阱。 通过学习代码专家模型&…

云联网是一种可扩展的、全球性的网络解决方案,用于连接多个地理位置的云部署和数据中心,实现各种云服务之间以及云与现有数据中心之间的安全、高速、稳定的连接

云联网是一种可扩展的、全球性的网络解决方案&#xff0c;用于连接多个地理位置的云部署和数据中心&#xff0c;实现各种云服务之间以及云与现有数据中心之间的安全、高速、稳定的连接。它基于SDN&#xff08;软件定义网络&#xff09;技术&#xff0c;提供一点上云、多云连接及…

ChatGPT开源的whisper音频生成字幕

1、前言 好了&#xff0c;那接下来看一下whisper开源库的介绍 有五种模型大小&#xff0c;其中四种仅支持英语&#xff0c;提供速度和准确性的权衡。上面便是可用模型的名称、大致的内存需求和相对速度。如果是英文版的语音&#xff0c;直接想转换为英文。 本来我是想直接在我的…

情感分类学习笔记(2)

Shopping Reviews sentiment analysis | Ldys Blog (buptldy.github.io) 1. imdb_w2v Word2Vec(sizen_dim, min_count10) 在你给出的代码片段中&#xff1a; python复制代码 imdb_w2v Word2Vec(sizen_dim, min_count10) 这里你试图创建一个Word2Vec模型实例&#xff0c;…

魔法程序员的奥妙指南:Java基本语法

作为一名魔法程序员&#xff0c;精通Java语言是至关重要的。Java作为一种强大的编程语言&#xff0c;在编写优质代码和开发强大应用程序时发挥着重要作用。让我们深入探讨Java基本语法的关键要点&#xff0c;从注释到变量&#xff0c;无所不包&#xff01; Java基本语法的神秘魔…