当前位置: 首页 > news >正文

MyBatis入门---环境搭建

MyBatis

在SpringBoot的场景下使用MyBatis。

为什么要使用MyBatis?—Dao层的开发,增删改查

传统的操作要写很多重复性代码,存在代码冗余。

1.代替JDBC,减少代码冗余

2.不在Java代码中将SQL语句写死。

如何使用MyBatis? 如何在SpringBoot中使用MyBatis?—环境搭建

1.建库建表
2.创建SpringBoot项目,导入Mysql、MyBatis-start(只要导入其他框架,就导入对应的start)
3.创建实现类
4.Mapper接口:定义了一些抽象方法(进行增删改查的时候其实就是调用这些抽象方法)
5.Mapper映射配置文件—定义了和抽象方法对应的SQL语句
6.配置MyBatis(application.properties、启动类上添加@MapperScanner注解:这个注解能够扫描,扫描到接口就能帮我们实现接口的对象)
7.测试

我们成功创建一次之后,后续的操作:就只需要重复3457上面上。

MyBatis_MyBatisX插件安装

MyBatisX插件能够简化MyBatis的开发,因为Mapper映射配置文件可以通过这个插件生成。

在这里插入图片描述

实际操作演示

1.建库建表:

CREATE TABLE `user`  (`id` bigint(20) NOT NULL AUTO_INCREMENT,`username` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`password` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`age` int(11) NULL DEFAULT NULL,`gender` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`addr` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = COMPACT;INSERT INTO `user` VALUES (1, 'zhangsan', '123', 20, 'male', 'qd');
INSERT INTO `user` VALUES (2, 'lisi', '123', 21, 'male', 'bj');
INSERT INTO `user` VALUES (4, 'tom', '123', 19, 'male', 'nj');
INSERT INTO `user` VALUES (5, 'wangwu', '123', 20, 'male', 'sh');
INSERT INTO `user` VALUES (6, 'weihua', '111', 21, 'female', 'sz');

在这里插入图片描述

2.创建SpringBoot项目

创建SpringBoot项目,导入Mysql、MyBatis-start(只要导入其他框架,就导入对应的start)

创建SpringBoot项目:
在这里插入图片描述
用到什么就选什么就行

在这里插入图片描述
勾选之后我们的项目的配置文件pom.xml里面就直接有mybatis的配置了,然后自己添加上mysql的,刷新maven
在这里插入图片描述

3.创建实体类

实体类放在bean包下

package com.situ.bean;import lombok.*;@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class User {//编写User实体类/*** 表示用户的实体类** 属性名和数据库列名对应** 符合JavaBean的规范*/private Long id;private String username;private String password;private Integer age;private String gender;private String addr;//set和get方法//toString方法
}

4.Mapper接口

先写接口,写完接口立刻写接口的配置文件

示例:

package com.situ.mapper;import com.situ.bean.User;import java.util.List;
//mapper接口:dao的接口public interface UserMapper {//方法(功能)1:查询所有:List<User> selectAll();//方法(功能)2:根据主键查询:User selectById(Long id);//List<User> selectById(Long id)这样写不对,list是返回的集合,但是根据主键查询其实就返回一个}

5.Mapper映射配置文件

生成Mapper映射配置文件

该文件放在resources目录下的mapper文件夹下,
他的层次要和Java里面mapper的层次一样。

这样配置里面就不用额外的配置了
在这里插入图片描述
复制一下,然后在resources下新建文件夹,名字改成把.改成/即可

在这里插入图片描述
接下来生成配置文件:我们安装了MyBatisX插件,那么我们就可以生成
步骤:选到要生成的接口处:
在这里插入图片描述
选择生成路径:要选到src下面的main下面的resources下面的具体的mapper下
在这里插入图片描述
如下图所示:已经成功创建:
在这里插入图片描述
如何生成包含sql语句的标签?在抽象方法上Alt+回车即可。
按住前面的图标能实现跳转。

然后在Mappr配置文件里面写对应的sql语句就行

在这里插入图片描述
这样我们就实现了只写sql语句和Java代码来实现。

整合MyBatis所需的配置完成MyBatis的自定义配置

配置application.properties

添加数据库连接池的四大参数以及mybatis配置:(写完这个就连接上数据库了)

server.port=8099
server.servlet.context-path=/test# 配置连接池参数:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false
spring.datasource.username=root
spring.datasource.password=123456# mybatis配置
# 打印log信息
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
# 开启驼峰命名法,自动将数据库的命名方式,映射成Java中的命名方式
mybatis.configuration.map-underscore-to-camel-case: true
# 别名:要写实体类的包名:也就是bean包。写了别名可以在mapper.xml里面使用别名
mybatis.type-aliases-package=com.situ.bean
# 配置mapper映射文件所在位置:mapper层次写的相同就不用配置了
# mybatis.mapper-locations=classpath:mapper/*Mapper.xml
在启动类上面添加注解:写全包名
package com.situ;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;import javax.annotation.ManagedBean;@SpringBootApplication
//在启动类上面添加注解:写全包名
@MapperScan(basePackages = "com.situ.mapper")
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}

加上这个@MapperScan(basePackages = "全包名")能自动帮我们生成实现类对象,我们可以直接使用。

6.测试

测试的代码要写在test包下

package com.situ;import com.situ.mapper.UserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
class ApplicationTests {@Autowiredprivate UserMapper userMapper;@Testpublic void test1() {userMapper.selectAll().stream().forEach(System.out::println);}@Testpublic void test2(){userMapper.selectById(1L);}}

运行结果:
在这里插入图片描述

注意事项:
1.必须要在启动内上面写上注解@MapperScan(basePackages = "全包名"):写上对应的全包名
2.注入mapper接口实现类的对象

总结:

Mybatis是用在Dao层,对数据库的增删改查的。

SpringMVC是用在Web层:以前servlet做的事情都交给他去做。是最上层的

Spring/SpringBoot本质就是Spring,是提高Spring效率的。因为SpringBoot在整合其他的框架的时候提供了start,start自带配置。

Mybatis整体的步骤:

1.建库建表
2.创建SpringBoot项目,导入Mysql、MyBatis-start(只要导入其他框架,就导入对应的start)
3.创建实现类
4.Mapper接口:定义了一些抽象方法(进行增删改查的时候其实就是调用这些抽象方法)
5.Mapper映射配置文件—定义了和抽象方法对应的SQL语句
6.配置MyBatis(application.properties、启动类上添加@MapperScanner注解:这个注解能够扫描,扫描到接口就能帮我们实现接口的对象)
7.测试

http://www.dtcms.com/a/308649.html

相关文章:

  • 基于SpringBoot和SpringAI框架实践
  • 案例开发 - 日程管理 - 第四期
  • 鸿蒙开发交叉类型
  • 《零基础入门AI:传统机器学习核心算法(决策树、随机森林与线性回归)》
  • pyspark使用
  • 使用SFTTrainer进行微调
  • sqli-labs靶场Less24
  • FlexLM/SLM协议解析
  • [硬件电路-110]:模拟电路 - 能量并非凭空产生,自激振荡器,一种把直流能量转换成交流信号的装置!
  • TCP/IP协议的安全隐患与防范措施
  • php session 和 jwt 区别和使用场景
  • TCP窗口缩放配置在云服务器高延迟网络中的参数调整测试
  • 如何快速部署主数据管理解决方案?
  • 用于Forza系列测试自动化的3D可视化工具
  • MySQL 8.0 OCP 1Z0-908 题目解析(38)
  • Android Jetpack消息推送全解析:从FCM集成到Jetpack组件优化
  • 信令和信号在通信领域的区别
  • 详解分布式数据库缓存技术:高性能数据访问的基石
  • 【javascript】Reflect学习笔记
  • OCP网卡、OVS网卡和DPU(数据处理单元)三类技术方案
  • system.conf linux用于启动和管理系统进程的初始化系统和服务管理器的配置文件
  • 检索召回率优化探究二:基于 LangChain 0.3集成 Milvus 2.5向量数据库构建的智能问答系统
  • 中国高速铁路网的“四纵四横“和“八纵八横“shp数据
  • LLM——使用 LangGraph 构建 ReAct 智能体:多轮对话 + 工具调用 + 可视化流程图
  • flowable对已经部署的流程进行更新,不产生新版本
  • 【问题】Docker 容器内的应用(如n8n),访问不到外部主机的应用(如mysql)
  • C语言基础第18天:内存操作函数
  • Jmeter 性能测试常用图表、服务器资源监控
  • AI学习笔记三十四:基于yolov5+deepsort+slowfast的视频实时行为检测测试
  • 【源力觉醒 创作者计划】文心大模型4.5体验:技术跃迁,拥抱AI新时代