主页 > 新闻资讯 > 大数据开发:MyBatis玩数据库必不可少的组件

大数据开发:MyBatis玩数据库必不可少的组件

作者:覃老师 浏览次数: 2021-02-01 17:33

一.Mybatis介绍

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

二.Mybatis的优缺点

优点:
简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。
解除sql与程序代码的耦合:通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
提供映射标签,支持对象与数据库的orm字段关系映射
提供对象关系映射标签,支持对象关系组建维护
提供xml标签,支持编写动态sql。

缺点:
编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此。
SQL语句依赖于数据库,导致数据库移植性差,不能更换数据库。
框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。

三.Mybatis的核心配置


1、properties 元素

这个元素通常用来将内部的配置外在化,即通过外部的配置来动态的替换内部定义的属性。



2、settings 元素

settings 元素的作用是设置一些非常重要的设置选项,用于设置和改变 MyBatis 运行中的行为,比如此处设置 MyBatis 的 log 日志实现为 LOG4J,即使用 log4j 实现日志功能。

3.typeAliases

该元素用于为配置文件中的Java类型设置一个简短的名字,即设置别名。别名的设置与XML配置相关,其使用的意义在于减少全限定类名的冗余。如:
 <typeAliases>
 <typeAlias alias="user" type="com.itheima.po.User"/>
 </typeAliases>
 
也可以这样(这样的话,在domain.blog目录想的javaBean的别名为首字母小写的类名)
<typeAliases>
<package name="domain.blog"/></typeAliases>
以上配置,可以让我们在映射文件中,简写parameterType、resultType。MyBatis 框架还默认为许多常见的 Java类型(如数值、字符串、曰期和集合等)提供了相应的类型别名。

4.typeHandler元素

typeHandler的作用就是将预处理语句中传入的参数从javaType(Java类型)转换为jdbcType(JDBC类型),或者从数据库取出结果时将jdbcType转换为javaType。
<typeHandler>元素可以在配置文件中注册自定义的类型处理器,它的使用方式有两种。

4.1.注册一个类的类型处理器
<typeHandlers> 
<typeHandler handler="com.itheima.type.CustomtypeHandler" />
</typeHandlers>

4.2注册一个包中所有的类型处理器
<typeHandlers> 
<package name="com.itheima.type" />
</typeHandlers>
 

5 .ObjectFactory元素

MyBatis中默认的ObjectFactory的作用是实例化目标类,它既可以通过默认构造方法实例化,也可以在参数映射存在的时候通过参数构造方法来实例化。通常使用默认的ObjectFactory即可。当然,也可以自定义ObjectFactory。

6.plugins元素

MyBatis允许在已映射语句执行过程中的某一点进行拦截调用,这种拦截调用是通过插件来实现的。元素的作用就是配置用户所开发的插件。
如果用户想要进行插件开发,必须要先了解其内部运行原理,因为在试图修改或重写已有方法的行为时,很可能会破坏MyBatis原有的核心模块。
只需了解元素的作用即可,有兴趣的读者可以查找官方文档等资料自行学习。

7、environments 元素

表示配置 MyBatis 的多套运行环境,MyBatis 可以配置多套运行环境,如开发环境、测试环境、生产环境等,我们可以灵活选择不同的配置,从而将 SQL 映射应用到不同的数据库环境上。这些不同的运行环境,就可以通过 environments 元素来配置。environments 元素节点下通过配置多个 environment 子元素节点,实现配置多套运行环境,但是不管增加几套运行环境,都必须要明确选择出当前的唯一一个运行环境(即默认运行环境:通过 default 指定)。这是因为毎个数据库都是对应一个 SqlSessionFactorγ 实例的,需要指明哪个运行环境将被创建,并把运行环境中设置的参数传递给 SqlSessionFactoryBuilder。
注意点:
1、默认的运行 ID :通过 default 属性来指定当前的运行环境 ID 为 development ,对于环境 ID 的命名要确保唯一。
2、transactionManager 事务管理器,设置其类型为 JDBC(MyBatis 有两种事务管理类型,即JDBC、MANAGED),直接使用 JDBC 的提交和回滚功能,依赖于从数据源获得连接来管理事务的生命周期。
3、dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。 MyBatis 提供了三种数据源类型(UNPOOLED、POOLED、JNDI),这里我们使用 POOLED 数据源类型。该类型的实现利用 “池” 的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间,是 MyBatis 实现的简单的数据库连接池类型,它使数据库连接可被复用,不必在每次请求时都去创建一个物理连接。这对于高并发的 Web 应用是一种流行的处理方式,有利于快速响应请求。

8. mappers

该元素用于指定MyBatis映射文件的位置。有4种方式指定映射器文件的位置:
1. 使用类路径引入
<mappers>
 <mapper resource="com/itheima/mapper/UserMapper.xml"/></mappers>
1. 使用本地文件路径引入
<mappers>
<mapper url="file:///D:/com/itheima/mapper/UserMapper.xml"/></mappers>
1. 使用接口类引入
<mappers>
<mapper class="com.itheima.mapper.UserMapper"/></mappers>
1. 使用包名引入
<mappers>
<package name="com.itheima.mapper"/></mappers>
标签:
热点排行
推荐文章
立即申请>>