第一、二章 mybatis概述 开发环境准备

现阶段所存在的框架:

1.ssh - spring struts hibernate
2.ssm - spring springmvc mybatis mybatis
3.springboot
4.spring cloud分布式开发
5.orm技术

Mybatis 持久层框架技术

1、Mybatis概述

1.1 ORM是什么

​ 常见的ORM框架有:Mybatis 、 Hibernate、TopLink、Castor JDO、Apache OJB等。

​ ORM 是 Object Relational Mapping 的缩写,译为对象关系映射,它解决了对象和关系型数据库之间的数据交互问题。

​ 使用面向对象编程时,数据很多时候都存储在对象里面,具体来说是存储在对象的各个属性(也称成员变量)中。例如有一个 User 类,它的 id、username、password、email 属性都可以用来记录用户信息。当我们需要把对象中的数据存储到数据库时,按照传统思路,就得手动编写 SQL 语句,将对象的属性值提取到 SQL 语句中,然后再调用相关方法执行 SQL 语句。

​ 而有了 ORM 技术以后,只要提前配置好对象和数据库之间的映射关系,ORM 就可以自动生成 SQL 语句,并将对象中的数据自动存储到数据库中,整个过程不需要人工干预。在 Java 中,ORM 一般使用 XML 或者注解来配置对象和数据库之间的映射关系。

在这里插入图片描述

和自动生成 SQL 语句相比,手动编写 SQL 语句的缺点是非常明显的,主要体现在以下两个方面:

  • 对象的属性名和数据表的字段名往往不一致,在编写 SQL 语句时需要非常小心,要逐一核对属性名和字段名,确保它们不会出错,而且彼此之间要一一对应。
  • 此外,当 SQL 语句出错时,数据库的提示信息往往也不精准,这给排错带来了不小的困难。

ORM 的出现,恰好解决了这些难题。

​ 面向对象编程和关系型数据库都是广泛使用的两种技术,ORM 使得两者之间的数据交互变得自动化,同时也让源代码中不再出现 SQL 语句。

​ ORM 是一种双向数据交互技术,它不仅可以将对象中的数据存储到数据库中,也可以反过来将数据库中的数据提取到对象中。

下表说明了关系型数据库和对象之间的对应关系:

数据库类/对象
表(table)类(class)
表中的记录(record,也称行)对象(object)
表中的字段(field,也称列)对象中的属性(attribute)

例如,现在有一张 user 表,它包含 id、user_id 和 user_name 三个字段,另外还有一个 Java User 类,它包含 id、userId 和 userName 三个属性,下图演示了它们之间的对应关系:

在这里插入图片描述

                                     user 表和 User 类之间的对应关系

​ 数据表和类用来描述数据的表现形式,它们之间是相互对应的;记录和对象用来真正地存储数据,它们之间也是相互对应的。

1.2 ORM 的缺点

ORM 在提高开发效率的同时,也带来以下缺点:

  • ORM 增加了大家的学习成本,为了使用 ORM 技术,您至少需要掌握一种 ORM 框架。
  • 自动生成 SQL 语句会消耗计算资源,这势必会对程序性能造成一定的影响。
  • 对于复杂的数据库操作,ORM 通常难以处理,即使能处理,自动生成的 SQL 语句在性能方面也不如手写的原生 SQL。
  • 生成 SQL 语句的过程是自动进行的,不能人工干预,这使得开发人员无法定制一些特殊的 SQL 语句。

1.3 ORM 框架

ORM 技术通常使用单独的框架,或者框架的某个模块来实现,常用的 ORM 框架:

  • 常用的 Java ORM 框架有 HibernateMybatis
  • 常用的 Python ORM 实现有 SQLAlchemy 框架、Peewee 框架、Django 框架的 ORM 模块等。
  • 常用的 PHP ORM 实现有 Laravel 框架、Yii 框架的 ORM 模块、ThinkPHP 框架的 ORM 模块等。

1.4 mybatis介绍

中文官网参考:https://mybatis.org/mybatis-3/zh/index.html

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

在这里插入图片描述

在这里插入图片描述

JPA:JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系
表的映射关系,并将运行期的实体对象持久化到数据库中。
​ Sun引入新的JPA ORM规范出于两个原因:

  • 简化现有Java EE和Java SE应用开发工作;

  • Sun希望整合ORM技术,实现天下归一。

mybatis-plus https://baomidou.com/ 官网

在这里插入图片描述

2、mybatis开发环境准备

2.1 idea maven conf

maven/conf/settings.xml

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
	<localRepository>d:/maven/repo</localRepository>
	<mirrors>
		<!-- 阿里镜像仓库 -->
		<mirror>
			<id>alimaven</id>
			<name>aliyun maven</name>
			<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
			<mirrorOf>central</mirrorOf>
		</mirror>
	</mirrors>	
	<profiles>
	    <!-- maven项目全局默认配置jdk版本信息  -->
		<profile>
			<id>jdk-17</id>
			<activation>
				<activeByDefault>true</activeByDefault>
				<jdk>17</jdk>
			</activation>
			<properties>
				<maven.compiler.source>17</maven.compiler.source>
				<maven.compiler.target>17</maven.compiler.target>
				<maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
			</properties>
		</profile>
	</profiles>
</settings>

2.2 mybatis项目开发依赖

pom.xml

<!-- org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.13</version>
</dependency>

2.3 mysql driver

pom.xml

<!-- mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.32</version>
</dependency>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值