mybatis mapper配置 bigint_Mybatis 系列 1:ORM 框架思想以及开发前准备

c90acf7934286df5798703862c5bb5a9.png

系列上一篇文章我们学习了 Mybatis 是什么?其出现的原因以及其核心,其功能主要是解决了使用 JDBC 的痛点。

本文主要来一起学习一下 Mybatis 的 ORM 思想。

那么,什么是 ORM 思想,为什么要有 ORM 思想呢?

在使用 JDBC 查询数据库的时候,我们会把结果集中的一行数据封装成一个对象。

由于项目中一般会有多张表,就会有多个实体类,对应也就有多个结果集处理器,这时候我们就会把公共代码抽取出来,做成通用的结果集处理器,减少代码冗余量。

此时就规定了对象中属性名称 property 就要和数据库表中列名 column 一一对应,这就限制了爱乱起名的同学的发挥了,我表示不服!(其实还有一种解决方法是 SQL 查询的时候利用别名,这里我们不做讨论)

所以,这就导致了如果我们发现对象中属性名称和表中列名不匹配的时候,就不能使用通用结果集处理器了,不然生成的对象可能会缺省值,明明我在 Navicat 中运行的 SQL 是有值的,为什么得到的对象某些值是个 null。。。

因此,我们就需要有一种映射关系来决定对象 Object 中属性名和数据库表 table 列名的对应关系了。

这就是我们要学习的 ORM 思想。

ORM 思想 :

对象关系映射(Object Relational Mapping,简称 ORM):

是一种为了解决面向对象与关系数据库存在的互不匹配问题的技术。

简单的说,ORM 是通过使用描述对象和数据库之间映射的元数据,将 Java 程序中的对象自动持久化到关系型数据库中。

39b5ab88ad2e9bf609dcac1b166fc31d.png

有了映射关系之后,就不用担心对象属性名和表字段列名不匹配的问题了。

ORM 思想主要解决对象-关系的映射问题:

面向对象概念 ———> 面向关系概念

类 ———> 表

对象 ———> 表的行(记录)

属性 ———> 表的列(字段)

面向对象比较好理解,Java 就是面向对象语言,把万事万物都看成是一个对象。

什么是面向关系呢?

在数学上的理解就是,有固定的列数和任意的行数,就是我们所说的表。

有了对象和关系的概念,接下来就是映射了。

映射,使用一种规则(注解或 XML),使得它们一一对应。

Student 类 ———> student 表

属性 id ———> 列 s_id

属性 name ———> 列 s_name

属性 sex ———> 列 s_sex

这种规则,使用 XML 就是:

0dacc4eef679a391ce014aa2e0bdb90e.png

整体映射关系就是:

6f83cbef1940b2fff86ec715061c6644.png

ORM 框架:遵循 ORM 思想实现的技术,解决的是持久层的问题(和数据库做 CRUD)。

即,把对象数据库的操作封装成一套 API,具有操作数据库的增删改查等功能,而且具有独立性。

一个设计良好的持久层,应该保证:

当持久层的实现技术发生改变的时候,不会影响到上一层的代码(业务层 service)。

开发前准备:

0、新建表 t_user

CREATE TABLE `t_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `name` varchar(20) CHARACTER SET utf8mb4 NOT NULL COMMENT '用户名称',
  `salary` decimal(8,2) NOT NULL COMMENT '工资',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

1、新建项目 mybatis-demo,并引入 jar 包:

MySQL 驱动包:mysql-connector-java-8.0.15.jar

Mybatis 核心包:mybatis-3.5.0.jar。

如果创建的是 Maven 项目,则在 pom.xml 文件中添加依赖:


<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>

2、根据表创建相应的实体类:

9eff01e8b9565f1952596d1ccaf71292.png

接下来,想要使用 Mybatis 的话,还要得给它做配置。

Mybatis 的配置文件有两种:

Mybatis 全局配置文件(主配置文件);

Mybatis 映射文件(Mapper 文件)。

tips:查看官方文档是学习一门新语言最有效的方法。

系列预告:Mybatis 系列 2:Mybatis 的两种配置文件

关注「阿泽学长」,解锁更多干货:

467caf276a74b0ea1136814a5692d77c.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值