springboot-整合mybatis

news2024/11/18 19:45:55

1.导入依赖

        <!--整合mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.3</version>
        </dependency>

        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.33</version>
        </dependency>

        <!--数据库驱动-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

导入的依赖有:

  • springboot整合mybatis的依赖
  • mysql
  • 数据库驱动
  • lombok

2.配置数据源

#配置数据源
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/user?serverTimezone=UTC&userUnicode=true&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

 

  • 有了springboot,所有的配置都在application.propeeties文件中编写

3.连接数据库

 4.编写pojo层

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int id;
    private String name;
    private int age;
}

5.编写mapper层

//这个注解表示了这是一个mybatis的mapper类
@Mapper
//这个注解表明将这个类注入到了spring中
@Repository
public interface UserMapper {

    List<User> selectAllUser();


}

上面的两个注解:

  • @Mapper 属于mybatis中的注解,表明这个类是mybatis中的mapper接口
  • @Repository 属于spring中的注解,表明这个接口已经被注入到的springIOC容器中托管了

6.编写mapper映射文件

 

这个映射文件放在resource目录下 

<?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.kuang.mapper.UserMapper">
   <select id="selectAllUser" resultType="user">
       select * from tb_user
   </select>
</mapper>

 7.mybatis配置

同样的,配置一类的东西,统一放在application.properties文件中

# 别名配置
mybatis.type-aliases-package=com.kuang.pojo

# 映射路径
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

上面的配置有:

  • mybatis的别名配置
  • mapper文件的映射路径

注意: 映射路径中的mybatis是一级目录,前面不需要加"/",否则会找不到配置文件

8.编写Controller层

没有添加Service层,想添加的小伙伴可以自行添加>_<

@RestController
public class TestController {
    //将接口注入到spring中,然后就可以使用了
    @Autowired
    private UserMapper userMapper;

    @RequestMapping("/select")
    public List<User> selectAllUser(){
        List<User> users = userMapper.selectAllUser();
        for (User user : users) {
            System.out.println(user);
        }
        return users;
    }
}

上面的注解有:

  • @RestController 表明这个类被springIOC托管了,并且不走springMVC的视图解析器
  • @Autowired 将UserMapper接口,注入到springIOC中,这样就可以使用这个接口中的方法了
  • @RequestMapping 视图跳转

结果:

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

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

相关文章

如何在Windows中对硬盘进行分区?这里有详细步骤

本文介绍如何在Windows11、10、8、7、Vista和XP中对硬盘进行分区 如果这个过程听起来比你想象的要复杂一点,不要担心,因为事实并非如此。在Windows中对硬盘进行分区一点也不难,通常只需要几分钟。以下是操作方法。 注意:这些说明适用于Windows 11、Windows 10、Windows 8…

Linux文件系列: 深入理解缓冲区和C标准库的简单模拟实现

Linux文件系列: 深入理解缓冲区和C标准库的简易模拟实现 一.缓冲区的概念和作用二.一个样例三.理解样例1.样例解释2.什么是刷新? 四.简易模拟实现C标准库1.我们要实现的大致框架2.mylib.h的实现1.文件结构体的定义2.myfopen等等函数的声明3.完整mylib.h代码 3.myfopen函数的实…

JEECMS相关语法最近更新(大家等一等,我刚开始写,有问题就问因为我也在做,发的都是实现得了)

JEECMS相关语法 1.[cms_channel_list parentId217]显示栏目标题图片与标题2.[cms_content_list count4 orderBy4 typeId1,2,3,4 titLen10 channelOption1 channelId96]显示内容图片与标题3.[cms_channel pathxypj]、[cms_content_list typeId1,2,3 count6 orderBy4 channelId22…

uniapp列表进入动画

app列表入场动画 - DCloud 插件市场 列表入场动画https://ext.dcloud.net.cn/plugin?id16957

为什么智能制造离不开MES管理系统

在当今日新月异的智能制造领域&#xff0c;MES管理系统以其独特的优势&#xff0c;成为引领车间智能化的核心技术系统。它不仅仅是一个简单的软件工具&#xff0c;更是企业实现生产优化、流程简化、效率提升、成本降低以及质量优化的重要支撑。 在生产工厂中&#xff0c;MES管…

传统网络组网配置

锐捷实验 一、核心1 开局MLAG组网(厂商初始化工作)1.1 peerlink&#xff1a;1.2 keepalive:1.3 vap domain 1 2 开局基础配置&#xff08;厂商初始化工作&#xff09;2.1 关闭 telnet 服务、web服务2.2 时钟 NTP2.3 LLDP封装&#xff1a;2.4 snmp2.5 日志&#xff1a;2.6 trap …

【竞技宝】LOL:knight阿狸伤害爆炸 BLG2-0轻取RA

北京时间2024年3月11日,英雄联盟LPL2024春季常规赛继续进行,昨日共进行三场比赛,首场比赛由BLG对阵RA。本场比赛BLG选手个人实力碾压RA2-0轻松击败对手。以下是本场比赛的详细战报。 第一局: BLG:剑魔、千珏、妮蔻、卡牌、洛 RA:乌迪尔、蔚、阿卡丽、斯莫德、芮尔 首局比赛,B…

weiphp5.0存在远程代码执行漏洞

@[toc] 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 1. weiphp5.0简介 微信公众号搜索:南风漏洞复…

啤酒:精酿啤酒与三明治的快捷搭配

在快节奏的现代生活中&#xff0c;人们总是追求简单、快捷的美食。而Fendi Club啤酒与三明治的搭配&#xff0c;正是满足了这一需求。它们以其方便的制作方式和美味的口感&#xff0c;成为了无数人的心头好。 Fendi Club啤酒&#xff0c;以其醇厚的口感和细腻的泡沫&#xff0c…

存内计算技术工具链——量化篇

本篇文章将重点讲述存内计算技术工具链之“量化”&#xff0c;我们将从面向存内计算芯片的深度学习编译工具链、神经网络中的量化&#xff08;包括训练后量化与量化感知训练&#xff09;、基于存内计算芯片硬件特性的量化工具这三个方面来对存内计算技术工具链的量化进行阐述。…

颜色检测python项目

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 什么是颜色检测&#xff1f; 颜色检测是检测任何颜色名称的过程。很简单不是吗&#xff1f;嗯&#xff0c;对于人类来说&#xff0c;这是一项极…

nvm下载及管理NodeJs版本,可随意切换,安装,卸载

nvm下载及管理NodeJs版本 nvm下载及管理NodeJs版本&#xff0c;可随意切换&#xff0c;安装&#xff0c;卸载

c++ primer plus笔记 第十八章 探讨c++新标准

复习前面的内容&#xff1a; 1.auto&#xff0c;可以自动识别auto本身在这种语境下是什么类型 2.decltype,让一个变量的类型和另外一个变量的类型相同 decltype(x) y;//让y的类型和x的类型相同 如何理解&#xff1f; decltype是一个关键词&#xff0c;其作用是检查括号内的…

【教程】APP备案全攻略:确保你的应用合规上线

【教程】APP备案全攻略&#xff1a;确保你的应用合规上线 摘要 本文详细介绍了中国大陆地区互联网信息服务提供者&#xff08;AP&#xff09;进行APP备案的流程、要求和注意事项。包括备案对象、备案方式、备案内容、备案流程等方面的详细说明&#xff0c;帮助开发者顺利完成…

微软模拟飞行器回放功能

参考b站up主&#xff0c;欢迎大家去关注&#xff1a;https://www.bilibili.com/video/BV1Z34y1P7zz/?spm_id_from333.880.my_history.page.click&vd_source4e0b40493e2382633fab2ddc1bb1d9cc 下载网址&#xff1a;https://flightsim.to/file/8163/flight-recorder 坠毁检…

微信公众号调用沙箱支付

沙箱支付 登录支付宝开放平台&#xff0c;选择底部沙箱支付 下载密钥生成工具 生成应用私钥与公钥&#xff0c;上传沙箱支付&#xff0c;获得支付宝公钥 配置支付通知与支付回调地址 SpringBoot配置 yml文件 这里的地址必须与沙箱配置的一样 controller package com.zq…

如何利用Python进行自动化测试和性能测试

在Python中&#xff0c;我们可以使用多种库和工具来执行自动化测试和性能测试。下面是一些示例代码&#xff0c;用于展示如何使用Python进行这两种类型的测试。 自动化测试 自动化测试通常使用诸如unittest或pytest这样的Python测试框架来执行。下面是一个使用unittest进行自…

RK3568驱动指南|第十三篇 输入子系统-第139章 输入子系统数据结构介绍

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

做抖音小店需要交钱吗?有门槛吗?都有哪些入驻条件和费用?

大家好&#xff0c;我是电商花花。 在抖音上开店已经成为很多人追逐的方向&#xff0c;因为这些人都看到别人在抖音上赚到钱&#xff0c;然后也想在抖音上尝试一下。 然而&#xff0c;许多人心中仍然存着一个问题&#xff0c;就是做抖音小店需要交钱吗&#xff1f;是否存在门…

长期异地就医备案有效期是多久?答记者问!

4、长期异地就医登记的有效期是多长&#xff1f; 答&#xff1a;异地长期就医登记长期有效。 如果您因个人原因需要变更长期居住地&#xff0c;只需提供相应的登记信息即可申请变更。 5、临时异地就医登记的有效期是多长时间&#xff1f; 答&#xff1a;临时异地就医登记包括…