位置:长沙达内IT教育培训学校 > 学校动态 > 大数据开发Mybabits如何学习
大数据开发有大量的基础理论需要进行切实的学习与讨论,只有将基础打牢,才能更好的将它利用起来,今天是关于大数据开发基础JAVA部分Mybatis。
一、关于Mybatis的定义
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。
iBatis一词来源于"internet"和"abatis"的组合,是一个基于java的持久层框架。iBatis提供的持久层框架包括SQLMaps和Data Access Objects(DAO)
MyBatis是一个的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
Mybatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。
二、Mybatis所注意地方
1. mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。
2. mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。
3. Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。
4. Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数。
5. Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。
三、Mybatis 基本功能
Mybatis是支持普通SQL查询,存储过程和映射的持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。Mybatis使用简单的XML或注解用于配置和原始映射,将接口和java的POJOs映射成数据库中的记录。
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
用xml文件构建sqlsessionfactory实例是非常简单的事情。推荐在这个配置中使用类似路径资源,但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建实例。MyBatis有一个实用类——resources,它有很多方法,可以方便地从类路径及其他位置加载资源。
四、Mybatis的主要流程和核心概念之间的关系
(1)SqlSessionFactoryBuilder读取配置信息生成SqlSessionFacotry,配置信息主要是通过读取配置文件mybatis-config.xml得到的,也可以通过其他方式
(2)通过SqlSessionFacotory可以获得SqlSession。
(3)SqlSession可以调用具体的sql语句进行执行,sql语句则通过读取mapper xml文件得到。
(4)zui核心的地方就是sql语句的动态生成,以及参数的传入和查询结果的转化,这些都是Mybatis通过配置可以处理的,使用Mybatis主要在这三部分的编写。
五、Mybatis原理详解:
Mybatis配置:sqlmapConfig.xml,此文件作为Mybatis的全局配置文件,配置了Mybatis的运行环境等信息。mapper.xml即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。
通过Mybatis环境等配置信息过早sqlsessionfactory即会话工厂
由会话工厂创建sqlsession即会话,操作数据库需要通过sqlsession进行。
mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器,一个是缓存执行器。
Mapped Statement也是mybatis一个底层封装对象,它保障了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement独享,sql的id就是mapped statement的id。
Mapped Statement对sql执行输入参数定义,包括Hashmap、基本类型、pojo、Executor通过Mapped Statement在执行sql前将输入的java对象映射到sql中,输入参数映射就是jdbc编程中对prepared Statement设置参数。
Mapped Statement对sql执行输出结果进行定义,包括Hashmap、基本类型、pojo、Executor通过Mapped Statement在执行sql后将输出结果映射到java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。
六、MyBatis缓存
1、原理:
将频繁查询的数据存储在硬盘中,作为缓存区;当客户端发送请求时,缓存区没有相应的结果,那么就进入数据库查询结果,先在缓存区中存储在返回给客户端,如果缓存区中有,那么就直接返回给客户端.
目的:较少与数据库的通信次数,提高程序的查询效率
缺点:成本高不安全,缓存在实践张一丁只存储那些频繁查询的数据,以硬盘的空间换取程序运行的时间
2、注意事项:
①只有当SqlSession关闭时,数据才会存入缓存区
②脏数据问题:当缓存区中数据与数据库中数据不一致时,我们成缓存中的这一部分为脏数据
③MyBatis在进行事务提交时,会自动清空缓存
④在查询操作后一定要关闭SqlSession增删改操作一定要控制事务
尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/1684/news/385147/违者必究! 以上就是长沙达内IT教育培训学校 小编为您整理 大数据开发Mybabits如何学习的全部内容。