mybatis简析
mybatis源码的简析和某些功能的实现
time never ceases
实践大于嘴上功夫
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
模仿mybatis中的动态代理
SqlSession.getMapper的动态代理//测试类InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();原创 2021-02-07 11:49:23 · 188 阅读 · 0 评论 -
XxxDao使用动态代理代替SqlSession.xxX方法
Mybatis中的源码源码追踪:MapperProxyFactory–>MapperProxy–>cachedMapperMethod–>MapperMethod–>SqlCommandParamNameResolve类中作用:处理返回值和参数为什么要在参数前面加@Param就是为了进行参数的处理MapperProxy中执行的execute方法:command.getType()是进行判断是哪个方法:而对应相应的方法mybatis动态代理手撕源码顺序M原创 2021-02-07 11:47:23 · 205 阅读 · 0 评论 -
xml文件是如何被读取的
XPathParser的作用在java中xml文件被读取的方式有哪几种在xml文件被读取的方式有:Dom、SAX、Xpath;mybatis中读取mybatis-config.xml文件用的是Xpath(Xpat也是最简单)简述mybatis对mybatis-config.xml的操作通过Xpath将xml封装成XpathParser,然后将XpathParser封装封xNodes对象OXMObject xml Mapping(对象 xml文件 映射)ORMObject Re原创 2021-02-07 11:41:56 · 712 阅读 · 0 评论 -
获取SqlSession的分析
获取SqlSession的分析:InputStream inputStream = Resources.getResourceStream("mybatis-config.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder.build(inputStream);SqlSession sqlSession= sqlSessionFactory.openSession();为什么说第一段代码读取了mybati原创 2021-02-05 19:23:20 · 170 阅读 · 0 评论 -
sqlSession如何和mybatis中的核心对象建立的联系
SqlSession 什么时候进行与mybatis中核心对象建立联系在SqlSession调用核心功能的时候建立的联系SqlSession.insert DefaultSqlSession Executor StatementHandlerSqlSession.updateSqlSession.selectOne()SqlSession.Delete()XxxDao是如何执行的XxxDao dao = sqlSession.getMapper(XxxDao.class)原创 2021-02-05 19:21:12 · 151 阅读 · 0 评论 -
mybatis涉及的核心类- TypeHandler
TypeHandler的作用java类型—>数据库类型转换比如:String varcharint numberint int与ResultSetHandler、ParameterHandler息息相关原创 2021-02-05 19:17:04 · 147 阅读 · 0 评论 -
mybatis涉及的核心类- Statementhandler
Statementhandler的作用statementhandler是封装了JDBC中statement,真正的mybatis 中进行数据库访问操作的核心功能:增删改查statementHandler的实现类源码:/** * Copyright 2009-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * y原创 2021-02-05 19:12:20 · 266 阅读 · 0 评论 -
mybatis涉及的核心类-ResultSetHandler
ResultSetHandler作用:封装了JDBC中查询的结果集,对应的就是ResultSetCtrl+Alt+B可以看这个接口有哪些实现类实现类是DefaultResultSetHandler原创 2021-02-05 19:10:11 · 173 阅读 · 0 评论 -
mybatis涉及的核心类- ParameterHandler
作用:将mybatis中的参数替换成jdbc中的参数原创 2021-02-05 19:08:11 · 159 阅读 · 0 评论 -
mybatis的基本配置
mybatis-config.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://www.mybatis.org/dtd/mybatis-3-config.dtd" ><configuration> <!-- <settings> <set原创 2021-02-05 19:05:55 · 280 阅读 · 1 评论 -
mybatis涉及的核心类- mappedstatement
Mapper文件对应的是mappedstatement类mapper文件的一个一个的标签对应的是mappedstatement的对象,标签里面的属性对应的是mappedstatement中的属性在mappedstatement中有configuration的属性在configuration中有mappedstatement在mappedstatement中有configuration这样方便mybatis在后续的运行过程当中可以解决一些核心的问题sql语句是如何在mappedstatemen原创 2021-02-05 19:02:24 · 642 阅读 · 0 评论 -
mybatis涉及的核心类- Executor
Executor的功能a.处理增删改update 查queryb.处理事务提交回滚c.缓存Executor接口主要的三个实现类BatchExecutor(对jdbc批量处理的一个封装–>sql)ReuseExecutor(复用statement–>sql)(用的少,因为参数会发生改变)SimpleExecutor(常用的,默认的)configuration类中...原创 2021-02-05 18:58:26 · 172 阅读 · 0 评论 -
mybatis 涉及的核心对象-configuration
configuration的作用environmentssettings创建了对象typeAliasesMappersXxxMapper.xml对应的是MappedStatement,在configuration中进行了汇总configuration是下面这些核心类的工厂原创 2021-02-05 18:51:09 · 175 阅读 · 0 评论
分享