欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2022-06-04 12:21:45|栏目:JAVA代码|点击:

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

什么是mybatis

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

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

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

首先拆解mybatis架构

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

  • 数据源:如何获取mysql的数据库地址。
  • 执行语句:如何将我们在mybatis配置文件中生成的sql语句映射到mysql中。
  • 操作者:连接mysql数据库,执行sql语句,得到sql语句的查询结果。好比打开mysql图形化工具,Navicat for MySQL,首先连接到需要的数据库,编写sql语句,执行语句,并得到结果。

在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中方式,分别是:

<!-- 使用相对于类路径的资源引用 -->
<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  <mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
<!-- 使用完全限定资源定位符(URL) -->
<mappers>
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>
  <mapper url="file:///var/mappers/BlogMapper.xml"/>
  <mapper url="file:///var/mappers/PostMapper.xml"/>
</mappers>
<!-- 使用映射器接口实现类的完全限定类名 -->
<mappers>
  <mapper class="org.mybatis.builder.AuthorMapper"/>
  <mapper class="org.mybatis.builder.BlogMapper"/>
  <mapper class="org.mybatis.builder.PostMapper"/>
</mappers>
<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
  <package name="org.mybatis.builder"/>
</mappers>

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

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

上一篇:Spring IOC装配Bean过程解析

栏    目:JAVA代码

下一篇:详解maven中profiles使用实现

本文标题:Mybatis 连接mysql数据库底层运行的原理分析

本文地址:http://www.codeinn.net/misctech/203762.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有