当前位置: 首页 > news >正文 通了网站建设六安网站建设电话 news 2025/10/25 10:22:36 通了网站建设,六安网站建设电话,程序员公司,河源和平县建设局网站spring是怎样和mybatis继承的#xff1f; 在idea里点mapper.queryOne()直接跳到了接口或xml#xff0c;它究竟是怎样利用jdbc执行的#xff1f; 我直接调用mapper.queryOne是怎么使用的sqlsession#xff1f;怎么去connect的#xff1f; mybatis是怎样根据mapper找到对应的…spring是怎样和mybatis继承的 在idea里点mapper.queryOne()直接跳到了接口或xml它究竟是怎样利用jdbc执行的 我直接调用mapper.queryOne是怎么使用的sqlsession怎么去connect的 mybatis是怎样根据mapper找到对应的sql语句的 看完本文你将茅塞顿开 前置知识需要了解spring和mybatis的本身的原理 对beanDefinition进行扩展(spring部分) 首先是有一个类MapperScannerConfigurer实现了BeanDefinitionRegistryPostProcessor并重写了postProcessBeanDefinitionRegistry方法。 spring在加载beanDefinition的时候会调用这个方法这个方法把所有配置中mybatis的mapper包扫描一遍修改包里每个接口的beanClass为MapperFactoryBean.class 一路点scan-doscan-processBeanDefinitions 生成bean(spring部分) 由于上一步对beanDefinition已经做了修改而MapperFactoryBean.class又实现了FactoryBean因此这个spring容器生成的对象时本质上是调用MapperFactoryBean的getObject方法。getOject就是getSqlSession().getMapper(this.Interface)这里和mybatis里使用的session.getMapper(UserMapper.class)就一致了。 调用方法(spring部分) 我们在使用userDao.selectOne这样的方法的时候。userDao本质上已经是getSqlSession().getMapper(this.Interface)生成的对象即mybatis中session.getMapper(UserMapper.class)生成的对象。剩下的就是mybatis的事情了。 连接部分 SqlSessionTemplate线程安全的sqlsession sqlsessionTemplate里有个sqlsession的代理类。利用代理类调用sqlsession的在代理类的invoke里面每次都getSqlSession即获得DefaultSqlSession对象这样每一次执行都生成一个新的session就不会有线程安全问题了。当然session有一定的缓存用来避免浪费资源 SqlSessionDaoSupport拿到sqlsessionTemplate SqlSessionDaoSupport的getSqlSession代码会直接返回sqlsessionTemplate对象。在构造的时候会注入sqlsessionTemplate。而上面的MapperFactoryBean实现了SqlSessionDaoSupport所以可以直接利用getSqlSession拿到sqlsession mapper的生成(mybatis) mapper和mapper工程的对应关系 在解析写sql的xml文件时会将mapper接口和工厂绑定起来。 用mapper调用方法就是用sqlsession调用方法 我们在使用sqlSession.getMapper(Inteface.class)的时候会走下面的调用流程configuration.getMapper()-mapperRegistry.getMapper()在这里会把根据Inteface.class拿到对应的mapper代理对象生成的工厂方法。接着利用工厂执行mapperProxyFactory.newInstance()创建mapper的代理对象 代理对象的invoke里面执行本质上是执行了sqlSession.selectOne()。 sqlsession是怎么找到sql的(mybatis) sqlSession.selectOne(command.getName(), param)其中command就是mapper的方法名也对应到了sql的id了。而id和sql的对应关系在解析sql的xml时放到mappedStatements里了。 总结 mybatis-spring有一个beanDefinition的增强类增强类的增强方法在spring加载beanDefinition的时候把beanClass换成了MapperFactoryBean implements FactoryBeanspring在生成bean的时候执行的是MapperFactoryBean.getObject即getSqlSession().getMapper。这一步拿到了mybatis原生里面的mapper对象。mybatis加载sql的xml文件时会将sql语句和sql对应的id保存到configuration里把mapper和对应的工程保存下来。我们执行session.getMapper()方法获取mapper对象的时候获取的是一个mapper的代理类代理类把mapper.queryUser(params)的形式转化为session.selectOne(“queryUser”,params)。session.selectOne函数会根据传进来的参数从configuration里面拿到相应的sql语句并做执行 文章转载自: http://www.morning.mfnsn.cn.gov.cn.mfnsn.cn http://www.morning.lskrg.cn.gov.cn.lskrg.cn http://www.morning.kkwbw.cn.gov.cn.kkwbw.cn http://www.morning.gassnw.com.gov.cn.gassnw.com http://www.morning.rfzzw.com.gov.cn.rfzzw.com http://www.morning.ddgl.com.cn.gov.cn.ddgl.com.cn http://www.morning.sogou66.cn.gov.cn.sogou66.cn http://www.morning.qrdkk.cn.gov.cn.qrdkk.cn http://www.morning.nrtpb.cn.gov.cn.nrtpb.cn http://www.morning.thzgd.cn.gov.cn.thzgd.cn http://www.morning.bnrff.cn.gov.cn.bnrff.cn http://www.morning.lwygd.cn.gov.cn.lwygd.cn http://www.morning.ljdjn.cn.gov.cn.ljdjn.cn http://www.morning.ltpzr.cn.gov.cn.ltpzr.cn http://www.morning.gyqnc.cn.gov.cn.gyqnc.cn http://www.morning.xhftj.cn.gov.cn.xhftj.cn http://www.morning.ndmbz.cn.gov.cn.ndmbz.cn http://www.morning.lhgkr.cn.gov.cn.lhgkr.cn http://www.morning.nkbfc.cn.gov.cn.nkbfc.cn http://www.morning.kntsd.cn.gov.cn.kntsd.cn http://www.morning.rrrrsr.com.gov.cn.rrrrsr.com http://www.morning.rnnts.cn.gov.cn.rnnts.cn http://www.morning.kwnbd.cn.gov.cn.kwnbd.cn http://www.morning.ldmtq.cn.gov.cn.ldmtq.cn http://www.morning.lzqnj.cn.gov.cn.lzqnj.cn http://www.morning.xywfz.cn.gov.cn.xywfz.cn http://www.morning.wqrdx.cn.gov.cn.wqrdx.cn http://www.morning.srbbh.cn.gov.cn.srbbh.cn http://www.morning.mtzyr.cn.gov.cn.mtzyr.cn http://www.morning.tmnyj.cn.gov.cn.tmnyj.cn http://www.morning.cwjxg.cn.gov.cn.cwjxg.cn http://www.morning.qxlyf.cn.gov.cn.qxlyf.cn http://www.morning.wlggr.cn.gov.cn.wlggr.cn http://www.morning.rhzzf.cn.gov.cn.rhzzf.cn http://www.morning.mfsjn.cn.gov.cn.mfsjn.cn http://www.morning.clnmf.cn.gov.cn.clnmf.cn http://www.morning.xinyishufa.cn.gov.cn.xinyishufa.cn http://www.morning.glswq.cn.gov.cn.glswq.cn http://www.morning.tbknh.cn.gov.cn.tbknh.cn http://www.morning.ykrck.cn.gov.cn.ykrck.cn http://www.morning.kqyyq.cn.gov.cn.kqyyq.cn http://www.morning.nuejun.com.gov.cn.nuejun.com http://www.morning.xfmzk.cn.gov.cn.xfmzk.cn http://www.morning.rzscb.cn.gov.cn.rzscb.cn http://www.morning.ppqjh.cn.gov.cn.ppqjh.cn http://www.morning.zjrnq.cn.gov.cn.zjrnq.cn http://www.morning.lyjwb.cn.gov.cn.lyjwb.cn http://www.morning.fyzsq.cn.gov.cn.fyzsq.cn http://www.morning.tkflb.cn.gov.cn.tkflb.cn http://www.morning.dkmzr.cn.gov.cn.dkmzr.cn http://www.morning.mglqf.cn.gov.cn.mglqf.cn http://www.morning.nspzy.cn.gov.cn.nspzy.cn http://www.morning.bdzps.cn.gov.cn.bdzps.cn http://www.morning.tgxrm.cn.gov.cn.tgxrm.cn http://www.morning.knjj.cn.gov.cn.knjj.cn http://www.morning.hympq.cn.gov.cn.hympq.cn http://www.morning.bzpwh.cn.gov.cn.bzpwh.cn http://www.morning.twwts.com.gov.cn.twwts.com http://www.morning.yslfn.cn.gov.cn.yslfn.cn http://www.morning.fzqfb.cn.gov.cn.fzqfb.cn http://www.morning.ctrkh.cn.gov.cn.ctrkh.cn http://www.morning.rgxf.cn.gov.cn.rgxf.cn http://www.morning.kqkmx.cn.gov.cn.kqkmx.cn http://www.morning.kqwsy.cn.gov.cn.kqwsy.cn http://www.morning.qgghj.cn.gov.cn.qgghj.cn http://www.morning.fqlxg.cn.gov.cn.fqlxg.cn http://www.morning.mjytr.cn.gov.cn.mjytr.cn http://www.morning.zrjzc.cn.gov.cn.zrjzc.cn http://www.morning.qfwfj.cn.gov.cn.qfwfj.cn http://www.morning.knmp.cn.gov.cn.knmp.cn http://www.morning.ryjl.cn.gov.cn.ryjl.cn http://www.morning.msgnx.cn.gov.cn.msgnx.cn http://www.morning.qfrsm.cn.gov.cn.qfrsm.cn http://www.morning.crqpl.cn.gov.cn.crqpl.cn http://www.morning.mgfnt.cn.gov.cn.mgfnt.cn http://www.morning.pwgzh.cn.gov.cn.pwgzh.cn http://www.morning.nfbkz.cn.gov.cn.nfbkz.cn http://www.morning.qyqdz.cn.gov.cn.qyqdz.cn http://www.morning.zpxwg.cn.gov.cn.zpxwg.cn http://www.morning.grzpc.cn.gov.cn.grzpc.cn 查看全文 http://www.tj-hxxt.cn/news/247912.html 相关文章: 购物网站建设规划书男女做差差事的视频网站 建设厅网站关于建筑资质合并做有网被视频网站有哪些 常熟做网站深圳保障住房轮候查询 石家庄网站建设推广服务郑州全网营销 绍兴住房和城乡建设厅网站首页wordpress字体旋转 万万州州微微网站网站建建设设网络域名 网站设计和美工一样吗公司网站如何注册 代做毕设的网站深圳市做网站 视频网站直播怎么做建什么类型个人网站比较好 单页面网站多少钱邓州网站优化 做任务赚佣金的网站想做网站 优帮云 装饰公司网站模板下载中国机械设备网官网 中国建设银行官方网站诚聘英才频道贵州省建设厅的网站 类似淘宝网站建设有哪些模板网站图片 优化 贵阳网站优化广西网络优化seo 自己做的网站能卖么重庆建工集团建设网站 永康建设网站广告设计与制作包括哪些内容 大连鑫农建设集团网站寮步仿做网站 网站背景全屏广州安全教育平台账号是多少 找人做的网站怎么看ftp网站栏目设置完整度建设 网站如何留住客户网站开发协议书 上海定制化网站开发公司丹阳做网站的 2015帝国cms网站国际最好的摄影作品网站 苏州做网站推广的免费行情软件app网站下载大全 专业的企业网站优化公司网站空间免备案 建设银行注册网站名咋设置wordpress批量读取excel 伊春市建设局网站wordpress 字体 插件下载地址 静态网站管理系统信主网站 宜宾建设局网站热狗seo顾问 网站备案 godaddy电子版个人简历