MyBatis系列第一篇:MyBatis简介

前言

不知道大家是否还记得使用原生JDBC来操作数据库?“加载驱动、获取连接、拼接SQL、执行SQL、获取结果、解析结果、关闭数据库连接”,这些操作是纯JDBC方式必须要经历的一些步骤,每一次操作数据库都需要写这些,但真正和开发相关的却只有“拼接SQL、执行SQL、解析结果”,而其他的步骤几乎是所有DB操作共用的一些步骤,所以纯JDBC的方式重复代码太多了,而且如果每次操作都使用这种方式的话,在“获取连接、关闭连接”的过程中也会损耗大量时间。

上面这些问题使得开发变得缓慢,千奇百怪的SQL也使得系统变得难以维护,于是就冒出了各种各样的优秀框架来解决这些问题,比如常见的JdbcTemplate、Hibernate、MyBatis等。本系列博客主要关注的是流行更广的MyBatis框架。

一、什么是ORM

首先说一些ORM。ORM(Object Relational Mapping):对象关系映射,简单点来说就是将数据库中的表和Java中的对象建立起映射关系,可以让我们操作Java对象来间接的操作数据库中的表。

二、JdbcTemplate框架

JdbcTemplate是在Spring框架的基础上开发出的jdbc框架,Spring对jdbc做了封装,隐藏了各种重复的操作,所以它对Spring是有依赖的。我们使用时只需要传入:需要执行的SQL、需要的参数、以及对结果做对应解析就可以了。使用起来比较方便,但是如果面对动态SQL,它就无能为力了。

三、Hibernate框架

Hibernate可以让你通过Java对象来间接的操作数据库,Java对象就相当于数据库中表的代理一样,当你想删除表中数据的时候,不需要自己写delete语句发给数据库,只需要对Hibernate说我需要删除哪个Java对象就行了,Hibernate会自动根据你的操作去生成db需要的sql然后发给db去执行,对于我们来说隐藏了底层jdbc和db的交互过程,可能开发者不需要掌握数据库技术,就可以通过这个框架直接操作数据库,比如对数据库进行增、删、改、查可能需要开发者会写各种sql脚本,还有每种数据库的sql脚本语法也不一样,刚开始项目使用的是mysql,你按照mysql的语法写的,后面可能要切换到oracle,语法上面需要变动,但是如果你使用hibernate,这些都不是问题,你不会sql也没关系,而你只需要像操作Java对象一样去操作数据库,Hibernate会根据你的操作和db的类型自动生成操作所需要的sql,一种写法能够跨多种数据库运行。

四、MyBatis框架

MyBatis相对于纯JDBC来说,也是隐藏了许多重复性的工作,可以说它是一个半自动化的ORM框架。为什么说它是一个半自动化的呢?因为在使用它时,需要我们手动去写SQL,但是,操作DB的过程、动态SQL的拼接、执行结果的映射,这些MyBatis都帮我们做得很好,从而可以让我们开发者花费更多的时间在SQL的写法和优化上面。所以,毫无疑问的是现在大部分互联网公司基本上都在使用MyBatis。

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

 

另1:MyBatis官网:https://mybatis.org/mybatis-3/zh/index.html

另2:Java干货铺子之MyBatis:http://www.itsoku.com/tag/31

另3:参考教学视频:https://www.bilibili.com/video/BV1V7411w7VW?p=3

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章