Mybatis 连接mysql数据库底层运行的原理分析

网友投稿 764 2022-10-22

Mybatis 连接mysql数据库底层运行的原理分析

Mybatis 连接mysql数据库底层运行的原理分析

目录什么是mybatis首先拆解mybatis架构我将mybatis主要拆分成三个部分在mybatis官网上找的入门代码第一点、数据源的获取第二点、获取执行语句第三点、操作数据源

工作中一直在用spring+springmvc+mybatis,只是知道它是用于持久层框架,但是一直不知道原理是什么,通过网上视频解释,自己做一个笔记,方便以后查阅。

什么是mybatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。

MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

首先拆解mybatis架构

我将mybatis主要拆分成三个部分

在mybatis官网上找的入门代码

// 获取数据源

String resource = "org/mybatis/example/mybatis-config.xml";

InputStream inputStream = Resources.getResourceAsStream(resource);

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

// 获取执行语句

DataSource dataSource = BlogDataSourceFactory.getBlogDataSource();

TransactionFactory transactionFactory = new JdbcTransactionFactory();

Environment environment = new Environment("development", transactionFactory, dataSource);

Configuration configuration = new Configuration(environment);

configuration.addMapper(BlogMapper.class);

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);

// 执行sql并得到返回结果

SqlSession session = sqlSessionFactory.openSession();

try {

Blog blog = (Blog) session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);

} finally {

session.close();

}

第一点、数据源的获取

第二点、获取执行语句

在获取sql语句的时候,最主要的类的就是mapperstatement。

第三点、操作数据源

在操作数据库的时候,其实底层封装还是java.sql中的JDBC操作,核心类还是会用到mapperstatement。

mybatis加载mapper文件有4中方式,分别是:

其中优先级最高的是package方式。

mybatis的执行器有3中,默认的是simple。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:AQS同步组件-ForkJoin、BlockingQueue阻塞队列解析和用例
下一篇:scaffold是一个基于Yii2高级项目模版工程化实现的应用程序
相关文章

 发表评论

暂时没有评论,来抢沙发吧~