`

myBatis3之从SqlSessionFactory中获取SqlSession

 
阅读更多

myBatis3之从SqlSessionFactory中获取SqlSession

----------

 

现在,我们已经知道如何获取SqlSessionFactory对象了,基于同样的启示,我们就可以获得SqlSession的实例了。SqlSession对象完全包含以数据库为背景的所有执行SQL操作的方法。你可以用SqlSession实例来直接执行已映射的SQL 语句。例如:

SqlSession session = sqlMapper.openSession(); 
try{ 
	Blog blog = (Blog)session.selectOne("org.mybatis.example.BlogMapper.selectBlog",101); 
}finally{ 
	session.close(); 
} 

 现在有一种更简洁的方法。使用合理描述参数和SQL语句返回值的接口(比如BlogMapper.class),这样现在就更简单,更安全的代码,没有容易发生的字符串文字和转换的错误。例如: 

SqlSession session = sqlSessionFactory.openSession(); 
try { 
	BlogMapper mapper = session.getMapper(BlogMapper.class); 
	Blog blog = mapper.selectBlog(101); 
}finally{ 
	session.close(); 
} 

 

探究已映射的SQL语句

这里给出一个基于XML映射语句的示例,这些语句应该可以满足上述示例中SqlSession对象的调用。 

 

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
<mapper namespace="org.mybatis.example.BlogMapper"> 
	<select id="selectBlog" parameterType="int" resultType="Blog"> 
		select * from Blog where id = #{id} 
	</select> 
</mapper> 

 在命名空间“com.mybatis.example.BlogMapper”中,它定义了一个名为“selectBlog”的映射语句,这样它允许你使用完全限定名“org.mybatis.example.BlogMapper.selectBlog”来调用映射语句,我们下面示例中的写法也就是这样的。

Blog blog = (Blog)session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101); 

但下面的调用更有优势

映射接口对应映射xml文件的命令空间,接口方法对应映射xml文件中定义的SQL映射的ID。???????????

BlogMapper mapper = session.getMapper(BlogMapper.class); 
Blog blog = mapper.selectBlog(101); 

 首先它不是基于文字的,那就更安全了。第二,如果你的IDE有代码补全功能,那么你可以利用它来操纵已映射的SQL语句。第三,不需要强制类型转换,同时BlogMapper接口可以保持简洁,返回值类型很安全(参数类型也很安全);

 

 

 

分享到:
评论

相关推荐

    MyBatis-3-User-Guide用户手册(中文英文)

    从 SqlSessionFactory 中获取 SqlSession\ 6 探究已映射的 SQL语句 \ 7 命名空间的一点注释 \ 8 范围和生命周期 \ 8 SqlSessionFactoryBuilder \ 8 SqlSessionFactory\ 9 SqlSession \ 9 映射器实例 \ 9 XML...

    mybatis学习资料

    mybatis官方资料文档,文字版说明,包含代码示例,目录信息如下: * 安装 * 从 XML 中构建 SqlSessionFactory ...* 从 SqlSessionFactory 中获取 SqlSession * 探究已映射的 SQL 语句 * 作用域(Scope)和生命周期

    新MyBatis教程高手带你练手,玩框架轻松(3.15G)

    MyBatis-013-SqlSessionFactory和SqlSession对象介绍.avi MyBatis-014-工具类使用.avi MyBatis-015-传统dao使用方式.avi MyBatis-016-传统dao执行insert.avi MyBatis-017-传统dao的执行分析.avi MyBatis-018-使用...

    MyBatis执行SQL并将结果映射成Java对象.docx

    3. 通过SqlSessionFactory 可以创建SqlSession 即会话 MyBatis是通过SqlSession来操作数据库 4. SqlSession本身不能直接操作数据库 它是通过底层的Executor执行器接口来操作数据库 Executor接口有两个实现类 一个是...

    深入剖析MyBatis SQL执行流程:从配置到查询结果的全程追踪

    本文深入分析了MyBatis执行SQL的整个流程,从SqlSessionFactory的创建到SQL语句的执行,揭示了MyBatis工作的内部机制。首先,通过SqlSessionFactoryBuilder,MyBatis解析配置文件生成Configuration对象,并创建...

    mybatis-3-mybatis-3.5.13.zip

    1. 核心模块: MyBatis的核心源码位于org.apache.ibatis包下,其中最重要的类是SqlSessionFactory和SqlSession。SqlSessionFactory负责创建SqlSession,而SqlSession用于执行SQL语句并管理数据库连接。 2. 配置解析...

    MyBatis3_用户指南(附JavaDB实例)

    从SqlSessionFactory 获取SqlSession....7 探索映射SQL语句....... 8 关于命名空间...9 作用域和生命周期..... 10 Mapper XML配置....11 properties元素12 Settings元素....13 typeAliases元素...... 14 ...

    MyBatis中文指南,MyBatis中文帮助文档

    从SqlSessionFactory中获取SqlSession....................................................................... 6 探究已映射的SQL语句 ..........................................................................

    springmybatis

    mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in ...

    MyBatis-3-User-Guide-Simplified-Chinese

    从SqlSessionFactory中获取SqlSession....................................................................... 6 探究已映射的SQL语句 ..........................................................................

    mybatis-SourceCode:MyBatis原始码学习

    alt + u,或者右击选择MyBatis原始码解析SqlSessionFactoryBuilder(类):构造SqlSessionFactory实例使用阅读器/ InputStream /属性/配置等构造SqlSessionFactory(接口):从一个连接或数据源中,创建SqlSession ...

    mybatis-config.xml

    也可以称之为项目中的粘合剂。  Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。  SpringMVC  SpringMVC在项目中拦截用户请求,它的核心Servlet...

    mybatis3中文文档

    从SqlSessionFactory中获取SqlSession....................................................................... 6 探究已映射的SQL语句 ..........................................................................

    mybatis-xml.zip

    基本的xml配置mybatis,以及将分装重复的SqlSessionFactoryBuilder和SqlSessionFactory以及SqlSession,有详细的注释。

    day01_eesy_03mybatis_dao.zip

    不要忘记在映射配置中告知mybatis要封装到哪个实体类中 配置的方法:指定实体类的全限定类名 mybatis基于注解的入门案例: 把IUserDao.xml移除,在dao接口的方法上使用@Select注解,并且指定SQL语句 同时...

    纯原生mybatis框架实现增删改查【源码+数据库】

    纯原生mybatis框架实现增删改查 使用mybatis最底层的api,包括SqlSessionFactory,SqlSessionFactoryBuilder,SqlSession来实现mybatis的增删改查功能

    SSM框架的学习与应用JavaEE(第二天)Mybatis的深入学习

    通过对MyBatis的深入学习,包括MyBatis核心对象、配置文件、映射文件的使用。 文章具体介绍了: ...SqlSession和SqlSessionFactory创建示例 用户别名配置示例 JUnit与Mockito结合测试示例 工具类MyBatisUtil代码示例

    深入探索MyBatis:全局配置文件解析及应用优化策略

    MyBatis通过XMLConfigBuilder类解析配置文件,创建SqlSessionFactory,进而生成SqlSession,实现对数据库的操作。关键的配置元素如environments定义了数据库连接及事务管理,而mappers则指定了SQL映射文件的位置。...

Global site tag (gtag.js) - Google Analytics