文档章节

MyBatis-一次查询请求源码解读

 小猪突然地
发布于 2015/06/08 21:21
字数 247
阅读 242
收藏 1

   为了分析方便,本文默认mybatis查询数据的环境已经搭建成功,在此就不累述了,我们把重点放在关键的查询代码上。

@Test
public void getById(){
    InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);   
    SqlSession session = sqlSessionFactory.openSession();
    Person person = session.selectList("com.chen.mapper.PersonMapper.getById", 1);
    System.out.println("id:"+person.getId()+", name:"+person.getName()+", age:"+person.getAge());
}

  mapper映射xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"   
	"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">  
        <mapper namespace="com.chen.mapper.PersonMapper">  
        
        <select id="getById" parameterType="integer" resultType="Person">  
        select * from person where id = #{id}   
</select>

  好了,关键代码就已经列出来了,下面我们着重来通过源码解读,看看mybatis做一次查询的流程就进是怎样的。

  其中,我们mybatis入口的重点代码是:

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);   
SqlSession session = sqlSessionFactory.openSession();
Person person = session.selectList("com.chen.mapper.PersonMapper.getById", 1);

   由于时间,后面将具体分析。。。。

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 23
码字总数 20045
作品 0
成都
程序员
MyBatis源码解读之延迟加载

目的 本文主要解读MyBatis 延迟加载实现原理 2. 延迟加载如何使用 Setting 参数配置 设置参数 描述 有效值 默认值 lazyLoadingEnabled 延迟加载的全局开关。当开启时,所有关联对象都会延迟加...

无忌
07/16
0
8
Mybatis3.4.x技术内幕(十六):Mybatis之sqlFragment(可复用的sql片段)

Mybatis目前最新版本为3.4.0,因此,我也将我的项目由3.3.1替换为3.4.0。在上一篇博文中,详细分析了Mybatis在使用foreach循环进行批量insert,返回主键id列表时,如果使用BatchExecutor,那...

祖大俊
2016/06/05
998
0
Mybatis3.3.x技术内幕(十四):Mybatis之KeyGenerator

在Mybatis中,执行insert操作时,如果我们希望返回数据库生成的自增主键值,那么就需要使用到KeyGenerator对象。 需要注意的是,KeyGenerator的作用,是返回数据库生成的自增主键值,而不是生...

祖大俊
2016/05/11
890
3
【深入浅出MyBatis系列一】MyBatis入门

深入浅出MyBatis系列 【深入浅出MyBatis系列一】MyBatis入门 【深入浅出MyBatis系列二】配置简介(MyBatis源码篇) 【深入浅出MyBatis系列三】Mapper映射文件配置 【深入浅出MyBatis系列四】...

陶邦仁
2015/12/22
4.1K
0
你真的懂Mybatis缓存机制吗

MyBatis自带的缓存有一级缓存和二级缓存。 一级缓存 Mybatis的一级缓存是指Session缓存。一级缓存的作用域默认是一个SqlSession。Mybatis默认开启一级缓存。 也就是在同一个SqlSession中,执...

技术小能手
07/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Win10内部更新:警告用户别用chrome和Firefox

简评:别和 Chrome 和 Firefox 约行不,我 Edge 明明更美、屁股更翘、更性感。。。 微软正在测试 Windows 10 的一个更新:警告用户不要安装 Chrome 和 Firefox。是测试人员发现的这个新警告,...

极光推送
37分钟前
3
0
Java并发编程高阶技术 高性能并发框架源码解析与实战

全网唯一深度解析并发编程框架disruptor底层源码课程,助你成为并发编程高手,拿下高薪 网盘地址下载

qq__2304636824
今天
1
0
day92-20180918-英语流利阅读-待学习

健身最大的敌人不是懒惰,而是逞强 Daniel 2018-09-19 1.今日导读 还记得 2008 年北京奥运会运动员刘翔的退赛风波吗?那天几乎所有中国人都将视线聚焦在了鸟巢体育馆 110 米栏的项目上,迫不...

飞鱼说编程
今天
9
0
70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
3
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部