当前位置: 首页 > news >正文

网站的盈利方法呼伦贝尔北京网站建设

网站的盈利方法,呼伦贝尔北京网站建设,网站开发实用技术2.8.5,创联互动建设网站前言#xff1a; 前面我们从源码层面梳理了 SqlSessionFactory、SqlSession 的创建过程#xff0c;本篇我们继续分析一下 Mapper 的的获取过程。 初识 MyBatis 【MyBatis 核心概念】 MyBatis 源码分析–SqlSessionFactory MyBatis 源码分析–获取SqlSession 案例代码 前面我们从源码层面梳理了 SqlSessionFactory、SqlSession 的创建过程本篇我们继续分析一下 Mapper 的的获取过程。 初识 MyBatis 【MyBatis 核心概念】 MyBatis 源码分析–SqlSessionFactory MyBatis 源码分析–获取SqlSession 案例代码 public class MyBatisTest {Testpublic void test() throws IOException {//读取配置文件InputStream is Resources.getResourceAsStream(mybatis-config.xml);//创建 SqlSessionFactoryBuilder 对象SqlSessionFactoryBuilder builder new SqlSessionFactoryBuilder();//通过 SqlSessionBuilder 对象 解析 mybatis-config.xml 文件 构建一个SqlSessionFactory SqlSessionFactory sqlSessionFactory builder.build(is);//通过SqlSessionFactory构建一个SqlSessionSqlSession session sqlSessionFactory.openSession();//通过SqlSession 获取 Mapper 实例UserMapper userMapper session.getMapper(UserMapper.class);//获取数据ListUser users userMapper.findAll();//打印输出for (User user : users) {System.out.println(user);}//关闭资源session.close();is.close();} }本篇我们将主要对 session.getMapper(UserMapper.class); 这句代码进行分析。 DefaultSqlSession#getMapper 源码分析 //org.apache.ibatis.session.defaults.DefaultSqlSession#getMapper public T T getMapper(ClassT type) {return this.configuration.getMapper(type, this); }//org.apache.ibatis.session.Configuration#getMapper public T T getMapper(ClassT type, SqlSession sqlSession) {return this.mapperRegistry.getMapper(type, sqlSession); }MapperRegistry#getMapper 源码分析 //org.apache.ibatis.binding.MapperRegistry#getMapper public T T getMapper(ClassT type, SqlSession sqlSession) {//根据 class 获取 Mapper 代理工厂MapperProxyFactoryT mapperProxyFactory (MapperProxyFactory)this.knownMappers.get(type);if (mapperProxyFactory null) {throw new BindingException(Type type is not known to the MapperRegistry.);} else {try {//使用 Mapper 代理工厂创建 Mapper 代理对象返回return mapperProxyFactory.newInstance(sqlSession);} catch (Exception var5) {throw new BindingException(Error getting mapper instance. Cause: var5, var5);}} }//org.apache.ibatis.binding.MapperProxyFactory#newInstance(org.apache.ibatis.session.SqlSession) public T newInstance(SqlSession sqlSession) {//Mapper 代理MapperProxyT mapperProxy new MapperProxy(sqlSession, this.mapperInterface, this.methodCache);//创建 Mapper 代理对象return this.newInstance(mapperProxy); }//org.apache.ibatis.binding.MapperProxyFactory#newInstance(org.apache.ibatis.binding.MapperProxyT) protected T newInstance(MapperProxyT mapperProxy) {//使用 JDK 创建一个 Mapper 的代理对象return Proxy.newProxyInstance(this.mapperInterface.getClassLoader(), new Class[]{this.mapperInterface}, mapperProxy); }从源码可以看出获取 Mapper 其实就是根据 Mapper 的 Class 类型从 MapperRegistry 中获取一个 MapperProxyFactory最终调用 MapperProxyFactory.newInstance 方法创建一个代理对象生成一个代理类来调用 Mapper 的方法这里的 MapperProxyFactory 其实就是在获取 SqlSessionFactory 中存入 MapperRegistry 的 MapperProxyFactory。 欢迎提出建议及对错误的地方指出纠正。
http://www.zqtcl.cn/news/309780/

相关文章:

  • 工作室网站源码全球军事网站
  • 网站设计模板免费建站珠海正规网站制作排名费用多少
  • 北京沙河教做网站的wordpress增加自适应功能
  • 中国著名的个人网站网站设计怎么做ppt答辩
  • 郑州做招商的网站网站后台主流网站开发语言
  • 专业足球网站开发铜陵网站优化
  • 南昌高端网站开发山西太原网站建设公司
  • 青岛专业制作网站的公司吗百度咨询
  • 自定义网站模块深圳宝安区有什么好玩的地方
  • 如何增加网站的外链微平台网站支持html5实现游戏
  • 平台网站建设网站邯郸seo优化
  • 做网站着用什么软件盐城网站建设电话
  • 自己的网站wordpress自动变化文字
  • 北京制作网站公司哪家好wordpress小工具不显示不出来
  • 如何建设一个新的网站h5网站建设价格
  • 无锡专业做网站的怎么攻击php做的网站
  • 盐城网站建设代理商wordpress定义字体颜色
  • 成都旅游网站建设地址自己做的网站怎么被搜索出来
  • 网站建设免费免代码商城微网站如何做
  • 网站建设域名是什么东莞网络科技营销
  • 法语网站建设高端网站建设 骆
  • vue网站开发注意事项做设计想接外单去哪个网站好
  • 免费模板下载网站推荐苏州seo
  • 徐州市水利工程建设有限公司网站网站建设技术团队有多重要性
  • 合肥佰瑞网站搜索引擎优化步骤
  • 营销型网站建设亏1广西桂林天气预报15天
  • 想做一个网站平台怎么做公司网站建设费用估计
  • 电商网站开发平台pi netwo网页设计文件下载
  • 南平网站设计笔记本怎么建设网站
  • 舆情分析网站免费人工智能培训班收费标准