文档章节

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

 小猪突然地
发布于 2015/06/08 21:21
字数 247
阅读 243
收藏 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
MyBatis源码解读之SqlSession

目的 通过源码分析SqlSession功能实现、如何创建以及在Spring中是如何集成的。 2. SqlSession 功能介绍 MyBatis工作的主要Java接口,通过这些接口你可以执行命令,获取mapper和管理事务 --代...

无忌
03/08
0
0
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

没有更多内容

加载失败,请刷新页面

加载更多

linux-scp 远程拷贝报错原因

刚拿到一台重装后的服务器,远程ssh都正常,但是一scp拷贝东西就报错: 本地确定是有scp命令的,而且如果是本地没有scp不会报后面那句lost connection,因此就是远程没有scp这个命令。因此在...

linuxprobe16
14分钟前
0
0
OSChina 周六乱弹 —— 谁小时候没当过熊孩子呀

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《行尸走肉》- amazarashi 《行尸走肉》- amazarashi 手机党少年们想听歌,请使劲儿戳(这里) @神话 :周五了,周末干啥...

小小编辑
39分钟前
23
1
docker部署springboot项目

安装docker 菜鸟教程 springboot项目 maven依赖 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001......

yimingkeji
今天
14
0
1: Cordova 配置WebView可以打开外部链接

一、问题:在使用Cordova生成的Android App中默认情况下WebView中的超链接,如果不是相对链接,会默认使用浏览器打开。 如果想用默认webview打开 解决方案:修改config.xml文件添加链接配置节...

wecloudnet
今天
1
0
Beetl介绍以及集成SpringBoot2.0 ---《Beetl视频课程》(1)

目的:引导阅读官方文档 目标:实现一个自己的博客 一、Beetl介绍 Beetl目前版本是2.9.3,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等特点。使得开发...

Gavin-King
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部