(面试学习)mybatis底层 -> 源码分析

			mybatis底层 -> 简易源码分析

自己制作一个简易mybatis所需技术(个人观点):
1、xml解析
2、连接池
3、动态代理
4、数据库元数据
5、反射

第一步:
// 读取mybatis-config配置文件

 InputStream in = new FileInputStream(new File("src/main/resources/mybatis-config.xml"));

1.0、xml解析mybatis-config.xml配置文件获取dataSource和mappers标签相关配置信息,实体接收
1.1、根据解析完成的mappers标签的resources路径继续解析相关xxxMapper.xml的mapper文件,获取namespace、id、resultType、parameterType、sql语句,实体接收)

RuanSqlSessionFactory factory = new RuanSqlSessionFactoryBuilder().build(in);

1.2、获取封装好的配置信息以及Executor线程池信息

RuanSqlSession session = factory.openSession();

1.3、通过动态代理实现invoke获取方法相关参数信息
// 动态代理
public T getMapper(Class clz) {
MaperProxy proxy = new MaperProxy(this);
return (T) Proxy.newProxyInstance(clz.getClassLoader(),
new Class<?>[]{clz},
proxy);
}
1.3.1、通过namespace+id形成的key,获取解析到的xml标签块所有信息
1.3.2、jdbc连接后rs = ps.executeQuery();
然后// 处理查询出来的结果集,映射字段
// 把数据库查询出来的结果集字段的数据要设置到entity对象中去
// 结果集设置到bean对象(// 属性值设置到bean中)反射+数据库元数据技术

AgentMapper agentMapper = session.getMapper(AgentMapper.class);

1.4
然后一个简单的mybatis搭建完成,查询成功

List<Agent> lst = agentMapper.lst();

在这里插入图片描述了解mybatis底层,提升自我价值,面试不慌,编写代码不虚
另外spring,springmvc,springboot,springcloud底层代码搭建可以了解一下

这篇博客也是自己做个记录,方便想起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值