• 四、MyBatis框架介绍及使用


    1、什么是MyBatis

    1.MyBatis就是一个来封装jdbc的持久层框架,它和hibernate都属于ORM层,但是具体的说,hibernate是一个完全ORM框架,而MyBatis是一个不完全的ORM框架。

    2.MyBatis让程序员只关注sql本身,而不需要去关注如连接的创建、statement的创建等操作。

    3.MyBatis会将输入参数、输出结果进行映射。

    2、MyBatis的框架原理

    2.1分析结论

    1.Mybatis配置文件,包括MyBatis全局配置文件和MyBatis映射文件,其中全局配置文件配置了数据源、事务等信息;映射配置文件配置了SQL执行相关的信息。

    2.MyBatis通过读取配置文件信息(全局配置文件和映射文件),构造出SqlSessionFactory,既会话工厂。

    3.通过SqlSessionFactory,可以创建SqlSession既会话。MyBatis是通过SqlSession来操作数据库的。

    4.SqlSession本身不能直接操作数据库,它是通过底层的Executor执行器接口来操作数据库的。Executor接口有两个实现类,一个是普通执行器,一个是缓存执行器(默认)。

    5.Executor执行器要处理的SQL信息是封装到一个底层对象MappedStatement中。该对象包括:SQL语句、输入参数映射信息、输出结果集映射信息。其中输入参数和输出结果的映射类型包括java的简单类型、hashMap集合对象、POJO对象类型。

    3、入门程序

    3.1需求

    3.2环境准备

    idk

    ide

    MyBatis

    数据库

    3.3下载MyBatis

    MyBatis的代码由github.com管理,下载地址:https://github.com/mybatis/mybatis-3/releases 

    3.4数据库脚本初始化

    3.5工程搭建

    3.6代码实现

    3.6.1创建PO类

    3.6.2创建全局配置文件

    在config目录下,创建SqlMapConfig.xml文件,该名称不是固定不变的。

    需求开发(根据用户ID查询用户信息)

    3.6.3映射文件

    在config目录下,创建User.xml(这种命名规范是由ibatis遗留下来的)

    3.6.4在全局配置文件中加载映射文件

    3.6.5测试

    4、开发方式

    4.1MyBatis开发dao的方式(既开发dao接口和dao实现类)

    SqlSessionFactory,它的生命周期,应该是应用范围,全局范围只有一个工厂,使用单例模式来实现这个功能。与spring集成之后,由spring来对其进行单例管理。

    SqlSession,它内部含有一块数据区域,存在线程不安全的问题,所以应该将sqlsession声明到方法内部。

    测试

    4.2Mapper代理的开发方式(既开发mapper接口(相当于dao接口))

    Mapper代理的开发规范

    1.mapper接口的全限定名要和mapper映射文件的namespace值一致

    2.mapper接口的方法名称要和mapper映射文件的statement的id一致

    3.mapper接口的方法参数类型要和mapper映射文件的statement的parameterType的值一致,而且它的参数是一个

    4.mapper接口的方法返回值类型要和mapper映射文件的statement的resultType的值一致

    Mapper接口

    Mapper映射文件

    加载映射文件

    测试

    5、MyBatis整合spring

    1.数据信息交给spring管理

    2.SqlSessionFactory交给spring进行单例管理

    3.由spring来管理原始dao的实现类或者mapper代理的代理类

    工程搭建:

    Mysql的驱动包

    MyBatis的核心包和依赖包

    MyBatis和spring的整合包

    spring的包

    dbcp数据库连接池包

    https://blog.csdn.net/qq_22583741/article/details/79450343

  • 相关阅读:
    MySQL对于数据库应该如何如何配置安全问题了
    对于改善 MySQL 数据装载操作有效率的方法是怎样
    MySQL与SQL比较有那些区别呢
    Centos6.5和Centos7 php环境搭建如何实现呢
    php单例模式是怎么实现的呢
    PHP编写的图片验证码类文件分享方法
    PHP中header函数的用法及其注意重点是什么呢
    java正则表达式四种常用的处理方式是怎么样呢《匹配、分割、代替、获取》
    PHP弱类型安全问题的写法和步骤
    vs2010 使用IIS EXPRESS出错.
  • 原文地址:https://www.cnblogs.com/arrows/p/10368897.html
Copyright © 2020-2023  润新知