Mybatis


一、 原生态JDBC存在的问题?


public class Query{
 public static void main(String[] args){
 	Connecton conn = null;
 	Statmenet stmt = null;
 	ResultSet rs = null;
 	class.forName("com.mysql.cj.jdbc.driver");
 	conn = DriverManager.getConnection(url,username,pwd);
 	String sql = "select * from s_user where ID=";
 	stmt = conn.createStatement();
 	rs = stmt.executeQuery();
 	while(rs.next()){
 
	 }
 	// finally 释放资源
 }
}
public static <T> List<T> executeQuery(String sql,class className){
 
}
//输入sql语句
 //输入类对象是通过配置⽂件(全限定类名)
  • 数据库频繁的连接和关闭,耗费数据库资源(使用数据库连接池)
    连接池:DBCP C3P0 DRUID
  • 查询结果封装的问题(反射+配置文件)
  • SQL语句硬编码问题(mapper.xml)

二、mybatis框架运行原理

2.1 运行原理

在这里插入图片描述

核心:配置文件

  • 全局配置文件(数据库连接信息,别名设置,加载外部配置文件,插件,加载映射文件)
  • 映射文件(sql语句,查询结果的封装方式,动态sql)

详解:

  • SqlSessionFactoryBuilder: 构造者模式,创建SqlSessionFactory;
    build(InputStream),加载一个全局配置文件,从而生成SqlSessionFactory工厂对象。
  • SqlSessionFactory: 工厂,用于生产SqlSession,会话工厂
  • SqlSession: 会话,他是mybatis为开发人员提供的开发接口
  • executor: 执行器

2.2 总结原理

  1. mybatis的核心是配置文件,配置文件分为全局配置文件和映射文件,全局配置文件只能有一个,
    而映射文件是有多个的(每张表对应一个映射文件)。全局配置⽂件配置数据库连接池信息、事务
    信息、插件信息、别名、加载映射文件。而映射文件中包含sql语句,输⼊参数,输出结果类型。
  2. mybatis通过SqlSessionFactoryBuilder来加载配置文件,生成会话工厂SqlSessionFactory。
  3. 通过工厂对象来创建会话SqlSession。
  4. SqlSession本身并不直接去操作数据库,他是开发人员的标准,开发人员通过调用其定义的方法来
    操作执行器。
  5. Exector执行器,分为基本执行器和缓存执行器。
  6. 执行器调用MapperStatement对象,该对象中包含了sql语句,输入参数,输出结果。

新手小白!欢迎留言交流~~!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值