zoukankan      html  css  js  c++  java
  • MyBatis简介

    Mybatis

    MyBatis简介(了解)

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

    MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。

    Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

    总之,Mybatis对JDBC访问数据库的过程进行了封装,简化了JDBC代码,解决JDBC将结果集封装为Java对象的麻烦。

    MyBatis架构图:

    • mybatis-config.xml是Mybatis的核心配置文件,通过其中的配置可以生成SqlSessionFactory,也就是SqlSession工厂
    • 基于SqlSessionFactory可以生成SqlSession对象
    • SqlSession是一个既可以发送SQL去执行,并返回结果,类似于JDBC中的Connection对象,也是Mybatis中至关重要的一个对象。
    • Executor是SqlSession底层的对象,用于执行SQL语句
    • MapperStatement对象也是SqlSession底层的对象,用于接收输入映射(SQL语句中的参数),以及做输出映射(即将SQL查询的结果映射成相应的结果)

    mybatis数据封装图解

    为什么要使用MyBatis

    思考:在开始之前,思考下如何通过JDBC查询Emp表中的所有记录,并封装到一个List集合中返回。(演示:准备数据、导包、导入JDBC程序)

    1、使用传统方式JDBC访问数据库:

    (1)使用JDBC访问数据库有大量重复代码(比如注册驱动、获取连接、获取传输器、释放资源等);

    (2)JDBC自身没有连接池,会频繁的创建连接和关闭连接,效率低;

    (3)SQL是写死在程序中,一旦修改SQL,需要对类重新编译;

    (4)对查询SQL执行后返回的ResultSet对象,需要手动处理,有时会特别麻烦;

    ...

    2、使用mybatis框架访问数据库:

    (1)Mybatis对JDBC对了封装,可以简化JDBC代码;

    (2)Mybatis自身支持连接池(也可以配置其他的连接池),因此可以提高程序的效率;

    (3)Mybatis是将SQL配置在mapper文件中,修改SQL只是修改配置文件,类不需要重新编译。

    (4)对查询SQL执行后返回的ResultSet对象,Mybatis会帮我们处理,转换成Java对象。

    ...

    总之,JDBC中所有的问题(代码繁琐、有太多重复代码、需要操作太多对象、释放资源、对结果的处理太麻烦等),在Mybatis框架中几乎都得到了解决!!

  • 相关阅读:
    输出重定向
    echo带颜色输出
    shell学习视频目录
    css盒模型
    jQuery表格模糊搜索
    mysql基础语法3
    mysql基础语法2
    mysql基础语法1
    pyspider框架的使用
    quill富文本框图片上传重写
  • 原文地址:https://www.cnblogs.com/zpKang/p/13154072.html
Copyright © 2011-2022 走看看