zoukankan      html  css  js  c++  java
  • 初识MyBatis

    MyBatis框架

      MyBatis是一个优秀的数据持久层框架,在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现。其封装性要低于Hibernate,性能优秀,并且小巧、简单易学,现在应用也越来越广泛。

    数据持久化概念

      数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。例如,文件的存储、数据的读取等都是数据持久化操作。数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。

    MyBatis框架简介

      MyBatis是一个开源的数据持久层框架。它内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询、存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis作为持久层框架,其主要思想是将程序中的大量SQL语句剥离出来,配置在配置文件中,实现SQL的灵活配置。这样做的好处是将SQL与程序代码分离,可以在不修改程序代码的情况下,直接在配置文件中修改SQL。

      MyBatis的前身是iBatis,本身是Apache的一个开源项目,2010年这个项目有Apache Software Foundation迁移到了Google Code,并改名为MyBatis。2013年迁移到Github。

    ORM介绍

      ORM(Object/Relational Mapping)即对象/关系映射,是一种数据持久化技术。它在对象模型和关系型数据库之间建立起对应关系,并且提供了一种机制,通过JavaBean对象去操作数据库表中的数据。

      在实际开发中,程序员使用面向对象的技术操作数据,而当存储数据时,使用的确实关系型数据库,这样造成了很多不便。ORM在对象模型和关系数据库的表之间建立了一座桥梁。有了ORM,程序员就不需要再使用SQL语句操作数据库中的表,使用API直接操作JavaBean对象就可以实现数据的存储、查询、更改和删除等操作。MyBatis通过简单的XML或注解进行配置和原始映射,将实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现。

    使用MyBatis访问数据库的具体步骤

      1.导入MyBatis的jar包。

      2.编写mybatis-config配置文件。

        a).配置setting。

        b).设置实体类的别名。

        c).配置数据源。

          1.配置事务的实现方式。

          2.配置datasource。

        d).配置mapper映射文件。

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
     3 <configuration>
     4     <settings>
     5         <setting name="logImpl" value="LOG4J"/>
     6     </settings>
     7     <typeAliases>
     8         <package name="pojo"/>
     9     </typeAliases>
    10     <environments default="demo">
    11         <environment id="demo">
    12             <transactionManager type="JDBC" />
    13             <dataSource type="POOLED">
    14                 <property name="driver" value="com.mysql.jdbc.Driver"/>
    15                 <property name="url" value="jdbc:mysql://localhost:3306/smbms?charEncoding=utf-8"/>
    16                 <property name="username" value="root"/>
    17                 <property name="password" value="root"/>
    18             </dataSource>
    19         </environment>
    20     </environments>
    21     <mappers>
    22         <mapper resource="mapper/UserMapper.xml" />
    23     </mappers>
    24 </configuration>
    mybatis-config配置文件

      3.创建映射文件并在映射文件里面编写sql语句。

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    3 <mapper namespace="dao.UserDao">
    4     <select id="getAllUser" resultType="User">
    5         select * from smbms_user
    6     </select>
    7 </mapper>
    mapper映射文件

      4.创建测试类测试,通过SqlSessionFactory获得sqlsession。

    MyBatis的优缺点

      优点:

      1).与JDBC相比,减少了50%以上的代码量。

      2).MyBatis是最简单的持久化框架,小巧并且简单易学。

      3).MyBatis箱单灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,并且可重用。

      4).提供XML标签,支持编写动态SQL语句。

      5).提供映射标签,支持对象与数据库的ORM字段关系映射。

      缺点:

      1).SQL语句的编写工作量较大,对开发人员编写SQL语句的功底有一定要求。

      2).SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

      适用场合:

      MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案。适用于对性能的要求很高,或者需求变化较多的项目。

    欢迎提出意见或建议!!!
  • 相关阅读:
    SAP C4C OBN(Object Based Navigation)不能工作的原因分析
    使用SAP C4C自定义BO association创建动态下拉列表
    如何使用SAP HANA Studio的PlanViz分析CDS view性能问题
    如何使用jMeter测试SAP OData服务并发访问时的性能
    OData服务在SAP CRM,Cloud for Customer和S/4HANA上的实现比较
    SAP UI5和Vue的数据双向绑定实现原理比较
    在SAP WebClient UI里显示倒数计时的UI
    【年度重磅】2020华为云社区年度技术精选合集,700页+免费下载!
    面试必问:如何实现Redis分布式锁
    聊聊架构模式的变迁:从分层架构到微服务架构
  • 原文地址:https://www.cnblogs.com/gaofei-1/p/7197732.html
Copyright © 2011-2022 走看看