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接口可以保持简洁,返回值类型很安全(参数类型也很安全);
分享到:
相关推荐
从 SqlSessionFactory 中获取 SqlSession\ 6 探究已映射的 SQL语句 \ 7 命名空间的一点注释 \ 8 范围和生命周期 \ 8 SqlSessionFactoryBuilder \ 8 SqlSessionFactory\ 9 SqlSession \ 9 映射器实例 \ 9 XML...
mybatis官方资料文档,文字版说明,包含代码示例,目录信息如下: * 安装 * 从 XML 中构建 SqlSessionFactory ...* 从 SqlSessionFactory 中获取 SqlSession * 探究已映射的 SQL 语句 * 作用域(Scope)和生命周期
MyBatis-013-SqlSessionFactory和SqlSession对象介绍.avi MyBatis-014-工具类使用.avi MyBatis-015-传统dao使用方式.avi MyBatis-016-传统dao执行insert.avi MyBatis-017-传统dao的执行分析.avi MyBatis-018-使用...
3. 通过SqlSessionFactory 可以创建SqlSession 即会话 MyBatis是通过SqlSession来操作数据库 4. SqlSession本身不能直接操作数据库 它是通过底层的Executor执行器接口来操作数据库 Executor接口有两个实现类 一个是...
本文深入分析了MyBatis执行SQL的整个流程,从SqlSessionFactory的创建到SQL语句的执行,揭示了MyBatis工作的内部机制。首先,通过SqlSessionFactoryBuilder,MyBatis解析配置文件生成Configuration对象,并创建...
1. 核心模块: MyBatis的核心源码位于org.apache.ibatis包下,其中最重要的类是SqlSessionFactory和SqlSession。SqlSessionFactory负责创建SqlSession,而SqlSession用于执行SQL语句并管理数据库连接。 2. 配置解析...
从SqlSessionFactory 获取SqlSession....7 探索映射SQL语句....... 8 关于命名空间...9 作用域和生命周期..... 10 Mapper XML配置....11 properties元素12 Settings元素....13 typeAliases元素...... 14 ...
从SqlSessionFactory中获取SqlSession....................................................................... 6 探究已映射的SQL语句 ..........................................................................
mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in ...
从SqlSessionFactory中获取SqlSession....................................................................... 6 探究已映射的SQL语句 ..........................................................................
alt + u,或者右击选择MyBatis原始码解析SqlSessionFactoryBuilder(类):构造SqlSessionFactory实例使用阅读器/ InputStream /属性/配置等构造SqlSessionFactory(接口):从一个连接或数据源中,创建SqlSession ...
也可以称之为项目中的粘合剂。 Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。 SpringMVC SpringMVC在项目中拦截用户请求,它的核心Servlet...
从SqlSessionFactory中获取SqlSession....................................................................... 6 探究已映射的SQL语句 ..........................................................................
基本的xml配置mybatis,以及将分装重复的SqlSessionFactoryBuilder和SqlSessionFactory以及SqlSession,有详细的注释。
不要忘记在映射配置中告知mybatis要封装到哪个实体类中 配置的方法:指定实体类的全限定类名 mybatis基于注解的入门案例: 把IUserDao.xml移除,在dao接口的方法上使用@Select注解,并且指定SQL语句 同时...
纯原生mybatis框架实现增删改查 使用mybatis最底层的api,包括SqlSessionFactory,SqlSessionFactoryBuilder,SqlSession来实现mybatis的增删改查功能
通过对MyBatis的深入学习,包括MyBatis核心对象、配置文件、映射文件的使用。 文章具体介绍了: ...SqlSession和SqlSessionFactory创建示例 用户别名配置示例 JUnit与Mockito结合测试示例 工具类MyBatisUtil代码示例
MyBatis通过XMLConfigBuilder类解析配置文件,创建SqlSessionFactory,进而生成SqlSession,实现对数据库的操作。关键的配置元素如environments定义了数据库连接及事务管理,而mappers则指定了SQL映射文件的位置。...