zoukankan      html  css  js  c++  java
  • MyBatis 总结

    MyBatis是一个Java的持久层框架,和Hibernate一样,都是ORM框架。

    MyBaits的前身是iBatis,可以将数据库中记录映射为pojo,是开发人员以面向对象编程的思想来操作数据库。

    MyBatis消除了几乎所有的JDBC代码,比如注册驱动,获取、关闭数据库连接,创建Statement对象,手动设置参数,结果集检索,这些都不需要,开发人员只需要使用xml进行简单的配置、映射,就可以操作数据库。

    常见的封装了jdbc的框架:DbUtils、Hibernate、MyBatis、Spring的JdbcTemplate。


    ORM框架

    ORM,Object Relational Mapping 对象关系映射,对象指的是pojo,关系指的是关系型数据库中的表、记录。

    常用的ORM框架包括MyBatis、Hibernate。


    MyBatis、Hibernate的区别

    Hibernate是一个标准的ORM框架,是全表映射框架。

    • 开发效率要高于MyBatis。开发者只需定义映射关系、pojo,Hibernate会自动生成对应的sql语句、操作数据库的方法,开发者使用Hibernate提供的方法操作持久层就ok,不需要熟练掌握sql、不需要编写大量代码。
    • 学习门槛高。开发者要有良好的数据关系模型基础,需要学习复杂的hql。
    • 偏死板、维护有难度。Hibernate自动生成了大量的sql语句、方法,很多都用不到,冗杂。
    • 具有良好的数据库无关性,移植性较好。更换数据库时,比如从mysql换为oracle,只需更改方言,无需大量修改代码。
    • 适合场景不复杂、对性能要求不高的项目。Hibernate对多表关联查询支持较差,更新操作需要发送整个pojo对象(所有字段),不支持储存过程,不能进行sql优化来提高性能。

    MyBatis是一个半自动映射框架。

    • 编码工作量要比HIbernate大。除了要定义映射关系、pojo,还需要自己写sql语句、操作数据库的方法。
    • 简单易上手。稍微有点sql基础就行。
    • 灵活、好维护。可根据需求编写sql,支持动态sql,可以自定义映射规则、支持存储过程。
    • 不支持数据库无关性。因为要自己编写sql,比如查询,mysql用limit,oracle用rownum,更换数据库时需要修改sql语句。
    • 对于复杂、对性能有要求的项目,MyBatis更合适。对关联映射、多表查询支持较好,因为是自己写sql,可以通过优化sql来提高性能。
  • 相关阅读:
    TensorFlow实现LeNet5模型
    jmeter+influxdb+grafana性能测试可视化报告
    jmeter命令执行脚本
    jmeter JSON Extractor使用
    jmeter上传文件
    jenkins登录信息无效,忘记密码
    XML
    JMeter函数和变量
    jmeter配置CSV Data Set Config
    jmeter发送Query String Parameters格式参数报错
  • 原文地址:https://www.cnblogs.com/chy18883701161/p/12256514.html
Copyright © 2011-2022 走看看