JavaWeb后端——Mybatis

概述

Mybatis:Java程序来对数据库进行操作,一款优秀的持久层框架,用于简化JDBC的开发

SSM:SpringMVC、Spring、Mybatis

 

快速入门 

步骤2:注意数据库连接的四要素

application.properties:springboot 的默认文件,配置:key = value

Mybatis 中定义 SQL 语句:

① 基于注解定义

② 基于 XML 定义

1. 2 步骤:对于一个项目来说,只需要操作一次就可以了

③:在 Mybatis 的操作中,只需要定义这个 Mapper 接口即可,不需要定义实现类,框架底层会自动生成实现类对象

mysql 加注释:-- + 空格

alt + Fn + insert:快速生成

注解的作用是?给机器看的注释,完了它能给点对应的反应

什么是IOC容器的 bean ?不知道

什么是依赖注入DI?不知道

1.准备工作

2.引入Mybatis 相关依赖,配置Mybatis

3.编写SQL语句(注解/XML)

 4.单元测试

lombook工具包

Lombok通过在Java编译器中的插件实现其功能。在代码编译期间,Lombok会自动根据注解所指定的信息在Java类中生成相应的方法,从而简化了Java代码的编写。在开发Spring Boot应用程序时,Lombok可以用来减少代码的重复性,提高开发效率。

例如,使用@Data注解,可以自动生成Java类的Getter、Setter、toString、equals、hashCode等方法。这样就可以大大减少代码的编写量,提高代码的可读性和可维护性。

例如,在一个POJO类中,如果使用@Data注解,就可以省略掉手动编写Getter、Setter方法的过程,只需要声明类的属性即可,如下所示:

尚硅谷/狂神MyBatis

MyBatis常用对象SqlSessionFactory和SqlSession介绍和运用_sqlsessionfactorybean 详解-CSDN博客

MyBatis:1.核心配置文件 2.映射文件

创建 java 工程或 web 工程需要有输出目录,但创建 maven 工程不需要

Mapper 映射文件:Mapper映射文件通常指的是MyBatis框架中用于描述SQL语句与Java方法之间映射关系的XML文件。MyBatis是一种持久层框架,它可以将Java方法与数据库操作进行映射,提供了方便的数据访问方式。

一个典型的Mapper映射文件包含了多个SQL语句的定义,每个SQL语句对应一个Java方法,通过Mapper接口与SQL语句建立映射关系。在使用MyBatis时,开发人员需要编写Mapper映射文件来描述数据库操作,然后通过MyBatis框架加载和解析这些映射文件,实现Java方法与数据库操作之间的映射关系。

测试类中固定代码部分:

测试类添加代码后:

#{ }:参数占位符

SqlSessionFactory用于创建和管理SqlSession对象,而SqlSession用于执行具体的数据库操作。它们是MyBatis框架中非常重要的两个接口,协同工作以实现数据库访问和操作。

测试

⭐ JDBC 和 Mybatis 中的增删改都需要提交事务!⭐

@Test注解是JUnit框架中的一个重要注解,用于标记测试方法。通过使用@Test注解,我们可以方便地定义和执行单元测试,确保代码的质量和正确性。

MyBatis 的核心:

UserMapper.xml:

配置文件:

namespace:绑定一个对应的 Dao/Mapper 接口

xml 标签:

resultType:返回的结果类型

resultMap:返回结果集

类型如果是 类,要连包带类一起写

测试类

SqlSession:相当于连接

UserDao userdao = sqlsession.getMapper(UserDao.class):相当于获得可对该 sql 操作的对象

maven 中经常遇到的问题:资源过滤 

2、第一个Mybatis程序_哔哩哔哩_bilibili

0:55:0 

配置信息

mybatis核心配置文件

sqlSession :相当于 jdbc 中的 preparedStatement

写工具类:得到SqlsessionFactory/Sqlsession

在使用 Spring Boot 时,通常不需要显式地配置 SqlSessionFactory 和 SqlSession。Spring Boot 提供了自动配置机制,可以根据依赖和配置,自动创建这些对象并将其注入到应用程序中。

Spring Boot 会根据配置和代码,自动创建并管理 SqlSessionFactory 和 SqlSession。可以直接在 Service 层使用 SqlSession,并且不需要手动关闭它。

写实体类:POJO

写接口,写方法

写 Mapper 配置文件

1. 去官网复制粘贴配置头

2. 通过 namespace 绑定要实现的 Mapper 接口和 Mapper配置文件

写测试类

测试类中的结构和接口中的结构最好一一对应

1. 获得sqlsession

2. 

绑定异常报错:

解决方法:

全局xml配置文件:

配置完成后出现错误2:

问题出现原因:maven出现资源过滤

解决方法:

在 POM.xml 文件中写 build

<!--    在build中配置resources , 来防止我们资源导出失败的问题--><build><resources><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes></resource><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes></resource></resources></build>

黑马 Mybatis

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

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

相关文章

NzN的数据结构--二叉树part1

你叉叉&#xff0c;让你学数据结构你不学&#xff1b;你叉叉&#xff0c;让你看二叉树你不看。 今天我们来一起学习二叉树部分&#xff0c;先赞后看是好习惯。 一、树的概念及结构 1. 树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有…

第十二届蓝桥杯大赛软件赛省赛C/C++大学B组

第十二届蓝桥杯大赛软件赛省赛C/C 大学 B 组 文章目录 第十二届蓝桥杯大赛软件赛省赛C/C 大学 B 组1、空间2、卡片3、直线4、货物摆放5、路径6、时间显示7、砝码称重8、杨辉三角形9、双向排序10、括号序列 1、空间 1MB 1024KB 1KB 1024byte 1byte8bit // cout<<"2…

在python爬虫中如何处理cookie和session

使用python开发爬虫的过程中&#xff0c;遇到需要登录鉴权的一些页面&#xff0c;必不可少的会接触到cookie和session的使用。本文结合自己最近一次爬虫爬坑的经历&#xff0c;介绍在python爬虫中如何使用Cookie和Session Cookie和Session的介绍 Cookie Cookie 是一种用于跟…

腾讯云流量怎么计算的?轻量服务器流量价格表

腾讯云轻量应用服务器套餐带流量包&#xff0c;就是有月流量限制的意思&#xff0c;超出轻量套餐的流量需要另外支付流量费&#xff0c;轻量服务器地域不同超额流量费用也不同&#xff0c;北京上海广州等中国内地地域流量价格是0.8元每GB&#xff0c;中国香港地域流量价格是1元…

【功能更新】强化知识库管理与AI问答机器人性能

三月HelpLook带来了3大类功能焕新&#xff0c;主要聚焦于&#xff1a;知识库的管理功能升级和AI问答机器人的优化&#xff0c;让我们看看更新了哪些新功能&#xff01; 那么&#xff0c;接下来就让我们来详细了解一下本次升级都带来了哪些新功能吧&#xff01; 知识库使用与管理…

Stm32 HAL库 访问内部flash空间

Stm32 HAL库 访问内部flash空间 代码的部分串口配置申明文件main函数 在一些时候&#xff0c;需要存储一些数据&#xff0c;但是又不想接外部的flash&#xff0c;那我们可以知道&#xff0c;其实还有内部的flash可以使用&#xff0c; 需要注意的是内部flash&#xff0c;读写次数…

创建型模式--1.单例模式【巴基速递】

1. 巴基的订单 在海贼世界中&#xff0c;巴基速递是巴基依靠手下强大的越狱犯兵力&#xff0c;组建的集团海贼派遣公司&#xff0c;它的主要业务是向世界有需要的地方输送雇佣兵&#xff08;其实是不干好事儿&#xff09;。 自从从特拉法尔加罗和路飞同盟击败了堂吉诃德家族 &…

LeetCode-74. 搜索二维矩阵【数组 二分查找 矩阵】

LeetCode-74. 搜索二维矩阵【数组 二分查找 矩阵】 题目描述&#xff1a;解题思路一&#xff1a;先二分查找行&#xff0c;再二分查找列。解题思路二&#xff1a;暴力遍历&#xff0c;也能过。解题思路三&#xff1a;用python的in。 题目描述&#xff1a; 给你一个满足下述两条…

【绩效管理】帮助零售企业建立分层分类绩效考核体系项目纪实

购物中心张经理评价&#xff1a;“员工的绩效管理一直是困扰我公司的难题&#xff0c;我们只懂得怎么经营&#xff0c;至于怎么做人力资源管理&#xff0c;真是一点都不懂。这次华恒智信为我们提供的服务对我们的帮助很大。基于企业实际调研情况&#xff0c;华恒智信专家明确指…

nginx配置实例-负载均衡

目录 一、目的&#xff1a;实现效果 二、准备工作 三、实验部署 3.1修改第二台Tomcat服务器的监听端口为8081 3.2修改完成后&#xff0c;重新启动tomcat8081这台服务器。 3.3在浏览器测试 3.4在两台tomcat里面webapps目录中&#xff0c;创建名称是edu的文件夹&#xff0c…

绝地求生:29.1版本爆料杜卡迪联名、新通行证、成长型AUG和异色、战队皮

这回的更新爆料是真的多&#xff0c;虽然不会同时上线&#xff0c;本期杜卡迪因为没有轮毂和轮胎&#xff0c;所以车漆的颜色可能会贵一点&#xff0c;但是似乎会有进阶优惠礼包可以购买 合作者战队 本期合作者战队皮肤感觉比较一般&#xff0c;武器不是热门武器&#xff0c;而…

SpringBoot学习之Kibana下载安装和启动(Mac版)(三十二)

一、简介 Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。 …