Mybatis学习
Posted 王小花flower
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis学习相关的知识,希望对你有一定的参考价值。
Mybatis是什么?
一个ORM框架, Object Relational Mapping,用于实现面向对象语言里不同类型系统的数据之间的转换
官方文档:https://mybatis.org/mybatis-3/
在官方文档中 getting started介绍的示例,快速入门
1.获取一个SqlSessionFactory,两种方式,一种通过XML方式,通常也都是使用这种方式,还有一种是通过非XML的方式
2.通过 SqlSessionFactory 获取一个SqlSession
3.通过执行映射的sql获取到结果集
数据库源 --》sql语句--》操作执行
数据库源:Driver、url、UserName、Password
sql语句:select、Inser、Update、Delete
操作执行:Connection、PrepareStatement、ResultSet
Mybatis如何解析数据库源:
org.mybatis.spring.SqlSessionFactoryBean#buildSqlSessionFactory
源码中的这个方法中 根据Resource 的 configLocation变量,通过XMLConfigBuilder 去解析本地的xml文件,最终得到 Configuration configuration,
protected SqlSessionFactory buildSqlSessionFactory() throws IOException { Configuration configuration; XMLConfigBuilder xmlConfigBuilder = null; if (this.configuration != null) { configuration = this.configuration; if (configuration.getVariables() == null) { configuration.setVariables(this.configurationProperties); } else if (this.configurationProperties != null) { configuration.getVariables().putAll(this.configurationProperties); } } else if (this.configLocation != null) { xmlConfigBuilder = new XMLConfigBuilder(this.configLocation.getInputStream(), null, this.configurationProperties); configuration = xmlConfigBuilder.getConfiguration(); } else { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Property ‘configuration‘ or ‘configLocation‘ not specified, using default MyBatis Configuration"); } configuration = new Configuration(); if (this.configurationProperties != null) { configuration.setVariables(this.configurationProperties); } }
这个Configuration 中有Environment environment 属性,
package org.apache.ibatis.session;public class Configuration { protected Environment environment; protected boolean safeRowBoundsEnabled; protected boolean safeResultHandlerEnabled; protected boolean mapUnderscoreToCamelCase; protected boolean aggressiveLazyLoading;
这个environment中可以看到有三个属性:
public final class Environment { private final String id; private final TransactionFactory transactionFactory; private final DataSource dataSource;
能看到 有dataSource属性,那么就相当于Java拿到了数据源的配置;
以上是关于Mybatis学习的主要内容,如果未能解决你的问题,请参考以下文章
markdown [mybatis参考]关于mybatis #mybatis的一些片段