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

1.一、MyBatis入门

一、MyBatis入门

我们做为后端程序开发人员,通常会使用Java程序来完成对数据库的操作。Java程序操作数据库,现在主流的方式是:Mybatis。

一、什么是MyBatis?

在这里插入图片描述

MyBatis官网的解释:

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

什么是 MyBatis?
  • MyBatis是一款用Java语言编写的持久层框架,它使用ORM实现了结果集的封装。

  • ORM是Object Relational Mapping对象关系映射,简单说,就是把数据库表中字段和实体类实体类的属性对应起来,让开发者通过操作实体类就可以实现操作数据库表,它封装了JDBC操作的许多细节,使开发者只需要关注SQL语句本身,而无需关心注册驱动、创建连接等复杂过程。

  • ORM:Object-Relation-Mapping,也就是对象关系映射,是一种程序设计思想,MyBatis就是ORM的一种实现方式,简单来说就是将数据库中查询出来的数据映射到对应的实体中,底层通过反射机制来自动赋值。

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

  • MyBatis是一款优秀的 持久层 框架,用于简化JDBC的开发。

  • MyBatis本是 Apache的一个开源项目iBatis,2010年这个项目由apache迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

  • 官网:MyBatis 中文网 官网 (p2hp.com)

  • 现在基本上使用的都是主流的MyBatis框架来简化JDBC的开发。

  • 框架:是一个半成品软件,是一套可重用的、通用的、软件基础代码模型。在框架的基础上 进行软件开发更加高效、规范、通用、可拓展。

二、MyBatis入门

1. 快速入门

MyBatis操作数据库的方式和图形化界面工具操作数据库的方式,底层的逻辑是一样的

1.1 入门程序分析

以前我们是在图形化客户端工具中编写SQL查询代码,发送给数据库服务器来执行,数据库执行后返回操作结果。img

图形化工具会把数据库执行的查询结果,使用表格的形式展现出来:

img

现在使用Mybatis操作数据库,就是在Java程序当中来编写SQL查询代码,然后再将这条SQL语句发送给数据库服务器来执行,数据库执行后返回结果给Java程序。

img

Mybatis(Java程序)会把数据库执行的查询结果,使用实体类封装起来(一行记录对应一个实体类对象),也就是说,返回的每一条数据都会封装为一个对象,表中的字段最终会自动地封装到对象的属性当中。

img

建议让表中字段名与类中属性名保持一致,这样框架就可以完成自动封装

Mybatis操作数据库的步骤:

  1. 准备工作(创建springboot工程、数据库表user、实体类User) [实体类用来封装用户信息]
  2. 引入Mybatis的相关依赖,配置Mybatis(配置数据库连接信息)
  3. 编写SQL语句(注解/XML)
1.2.1 准备工作
1.2.1 准备工作

1.2.1.1 创建springboot工程

创建springboot工程,并导入 mybatis的起步依赖、mysql的驱动包。

Location代表的是我们所创建的这个模块放在哪一个磁盘目录下。

在这里插入图片描述

项目工程创建完成后,自动在pom.xml文件中,导入Mybatis依赖和MySQL驱动依赖


http://www.kler.cn/news/339005.html

相关文章:

  • JS进阶 3——深入面向对象、原型
  • 费曼学习法没有输出对象怎么办?
  • 算法专题三: 二分查找
  • 【STM32单片机_(HAL库)】4-2-1【定时器TIM】定时器输出PWM实现呼吸灯实验
  • vue3组件通信之defineEmits
  • (C语言贪吃蛇)15.贪吃蛇吃食物
  • QD1-P5 HTML常用标签:段落和换行
  • 麒麟系统串口配置篇
  • Qt教程(001):Qt概述与安装
  • 如何实现 C/C++ 与 Python 的通信?
  • 【算法笔记】二分算法原理的深度剖析
  • 数据分析认知
  • 17 链表——21. 合并两个有序链表 ★
  • 【小技巧】mysql 判断表字段是否存在 删除字段 sql脚本
  • python爬虫 - 进阶requests模块
  • 【机器学习-无监督学习】降维与主成分分析
  • 命名管道Linux
  • Stable Diffusion绘画 | 如何做到不同动作表情,人物角色保持一致性(下篇)
  • 深度学习中的迁移学习:预训练模型微调与实践
  • 2024年liunx安装openvino非源码编译版(比源码编译简单!)