MyBatis理解与掌握(简介)

MyBatis理解与掌握(简介)

@(MyBatis)[Java, 框架, MyBatis]程序员

简介

  Mybatis是一个数据持久层框架,MyBatis消除了几乎全部的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或者注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录经过一系列的XML配置文件,解耦了对象和存储过程/SQL语句。
由于MyBatis面向的是SQL,因此有时也称之为SQL映射器sql

clipboard.png

与JDBC比较

(1)数据库链接建立、释放频繁形成系统资源浪费 从而影响系统性能,若是使用数据库链接池可解决此问题。
解决:在mybatis-config.xml中配置了数据链接池,方便使用了链接池管理数据库连接。数据库

(2)Sql语句在代码中硬编码 ,形成代码不易于维护,实际应用sql变化的可能较大,sql变更须要改变Java代码。
解决:将Sql语句配置在映射文件(xxxmapper.xml)中,实现sql语句和Java代码的分离。mybatis

(3)使用preparedStatement向占有位符号传参数存在硬编码 ,由于sql语句的where条件不必定,可能多也可能少,修改sql还须要修改代码,系统不易于维护。
解决:Mybatis自动将Java对象映射至sql语句,经过statement中的parameterType定义输入参数类型。架构

(4)对结果集解析存在硬编码 (查询列名),sql变化致使解析代码变化,系统不易于维护,若是能将数据库记录封装成pojo对象解析比较方便。
解决:Mybatis自动将sql执行结果映射至Java对象,经过statement中的resultType定义输出结果的类型。app

与Hibernate比较

Mybatis学习门槛低, 简单易学 ,程序员直接编写原生态sql,可严格控制sql执行性能, 灵活度高 ,很是适合对关系数据模型要求不高的软件开发,例如互联网软件、企业运营类软件等,由于这类软件需求变化频繁,一旦需求变化要求成果输出迅速。
可是Mybatis 没法作到数据库无关性 ,若是须要实现支持多种数据库的软件则须要自定义多套sql映射文件,工做量大。框架

Hibernate 对象/关系映射能力强数据库无关性好 ,对于关系模型要求高的软件(例如需求固定的定制化软件)若是用Hibernate开发能够节省不少代码,提升效率。可是Hibernate 学习门槛高,要精通门槛更高,并且怎么设计O/R映射,在性能和对象模型之间如何权衡,以及怎么用好Hibernate须要具备很强的经验和能力才行。性能

总之,按照用户的需求在有限的资源环境下只能作出威化扩展性良好的软件架构都是好架构,因此框架只有适合才是最好的。学习

配置文件区别:

  • hibernate:编码

    • 主配置文件:数据库链接信息,方言,映射文件信息
    • 实体类配置文件:类和表之间的映射关系
  • Mybatis:

    • 主配置文件:数据库链接信息,映射文件信息
    • SQL映射文件:将执行的SQL进行关联映射

Mybatis和Hibernate不一样,它不彻底是一个ORM框架,由于Mybatis须要程序员本身编写sql语句,不过Mybatis能够经过xml或注解方式灵活配置要运行的sql语句,并将Java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成Java对象

相关文章
相关标签/搜索