本文主要介绍mybatis框架工作原理及流程。
mybatis是一款优秀的持久层框架,它支持自定义sql、存储过程以及高级映射。myb致终将逝去的青春atis免除了几乎所有的j椴树花dbc代码以及设置参数和获取结果集的工作。mybatis可以通过简下元节是哪一天单的xml或注解来配置和映射原始类型、接口和javapojo(plainoldjavaobjects,普通老式java对象)为数据库中的记录。
图1 mybatis架构图
sqlssionfactorybuilder:这个类可以被实例化、使用和丢弃,一旦创建了 sqlssionfactory,就不再需学动漫设计要它了。因此sqlssionfactorybuilder实例的最佳作用域是方法作用域(也就是局部方法变量)。你可以重用sqlssionfactorybuilder来创建多个 sqlssionfactory实例,但最好还是不要一直保留着它,以保证所有的 xml 解析资源可以被释放给更重要的事情。
sqlssionfactory:sqlssionfactory一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例。使用sqlssionfactory的最佳实践是在应用运行期间不要重复创建多次,多次重建sqlssionfactory被视为一种代码”坏习惯”。因此sqlssionfactory的最佳作用域是应用作用域。有很多方法可以做到,最简单的就是使用单例模式或者静态单例模式。
sqlssion:每个线程都应该有它自己的sqlssion实例。sqlssion的实例不是线程安全的,因此是不能被共享的,所以它的最佳的作用域是请求或方法作用域。绝对不能将sqlssion实例的引用放在一个类的静态域,甚至一个类的实例变量也不行。也绝不能将sqlssion实例的引用放在任何类型的托管作用域中,如rvlet框架中的httpssion。如果你现在正在使用一种web框架,考虑将sqlssion放在一个和http请求相似的作用域中。换句话说,每次收到http请求,就可以打开一个sqlssion,返回一个响应后,就关闭它。这个关闭操作很重要,为了确保每次都能执行关闭操作,你应该把这个关闭操作放到finally块中。
executor:executor(执行器)接口有两个实现类,其中baexecutor有三个继承类分别是batchexecutor(重用语句并执行批量更新),reuexecutor(重用预处理语句prepared statement,跟simple的唯一区别就是内部缓存statement),simpleexecutor(默认,每次都会创建新的statement)。
mapped statement:用来存放我们sql映射文件中的信息包括sql语句,输入参数,输出参数等等。一个sql节点对应一个mappedstatement对象。
首先解释下两个文件
mybatis-config.xml:全大专学制局配置文件,引入了数据源、事务等mybatis运行环境;
mapper.xml:配置映射文件,配置sql结果集封装类型、传参类型;
1、 解析配置文件(mybatis-config.xml、mapper.xml),mybatis基于xml配置文件生成configuration,和一个个mappedstatement(包括了参数映射配置、动态sql语句、结果映射配置),其对应着<lect | update | delete | inrt>标签项。;
2、 sqlssionfactorybuilder创建会话工厂sqlssionfactory。
3、 sqlssionfactory创建会话sqlssion;
4、 执行器将mappedstatement对象进行解析,sql参数转化、动态sql拼接,生成jdbc statement对象,使用paramterhandler填充参数,使用statementhandler绑定参数。
5、 jdbc执行sql,借助mappedstatement中的结果映射关系,使用resultthandler将返回结果转化成hashmap、javabean等存储结构并返回。
6、 关闭sqlssion会话。
ok,以上就是mybatis工作原理及流程详细讲解,看完记得转发、点赞和收藏。想了解更多内容,请关注本www.887551.com,如果有错误,欢迎批评指正,感谢支持。
本文发布于:2023-04-05 07:14:18,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/15c864371fac88ff0dfc42b8786b1fbc.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:mybatis调用存储过程详解(mybatis存储过程写法).doc
本文 PDF 下载地址:mybatis调用存储过程详解(mybatis存储过程写法).pdf
留言与评论(共有 0 条评论) |