mybatis相关知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ilikejj0/article/details/81745677

原生JBDC开发详解以及问题总结

大佬博客:
原生JDBC开发详解及问题总结

Mybatis框架原理

大佬博客:
Mybatis框架原理
深入理解mybatis原理, Mybatis初始化SqlSessionFactory机制详解

简要介绍:
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。

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

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

Mybatis中SqlSessionFactory 的单例创建

1、mybatis使用单例模式来管理SqlSessionFactory,是因为在创建SqlSessionFactory的时候需要反复的加载全局配置文件,这一点是十分耗时的,所以创建成单例模式,使得配置文件只加载一次,在整个应用程序中,只有一个SqlSessionFactroy,可以反复使用。而SqlSession只有一个,每个线程有一个,用完就会关闭,而SqlSessionFactory只有在服务器关闭的时候才会关闭。

SqlSession是一个面向用户的接口, sqlSession中定义了数据库操作,默认使用DefaultSqlSession实现类。每个线程都有它自己的SqlSession实例。SqlSession的实例不能共享使用,它也是线程不安全的。因此最佳的范围是请求或方法范围。绝对不能将SqlSession实例的引用放在一个类的静态字段或实例字段中。

原始Dao开发以及Mapper动态代理

大佬博客:
深入浅出mybatis中原始dao的开发和mapper代理开发

猜你喜欢

转载自blog.csdn.net/ilikejj0/article/details/81745677