一、通过SqlSessionFactory创建sqlsession,再由Sqlsession获取session对象,然后通过session中的执行器Executor,去执行MapperStatement封装的sql语句

@Test
public void findAll() throws IOException {
//1.读取配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建 SqlSessionFactory 的构建者对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//3.使用构建者创建工厂对象 SqlSessionFactory
SqlSessionFactory factory = builder.build(in);
//4.使用 SqlSessionFactory 生产 SqlSession 对象
SqlSession session = factory.openSession(); List<User> users = session.selectList("findAll");
/*
//5.使用 SqlSession 创建 dao 接口的代理对象(接口绑定原理使用的jdk动态代理)
UserDao userDao = session.getMapper(UserDao.class);
//6.使用代理对象执行查询所有方法
List<User> users = userDao.findAll();
*/
for (User user : users) {
System.out.println(user);
}
//7.释放资源
session.close();
in.close();
}

二、执行器Executor的分类

  SimpleExecutor:默认的Executor,每个SQL执行时都会创建新的 Statement,继承了

  BaseExecutor

  CachingExecutor:可缓存数据的Executor,用于二级缓存的执行器

  BatchExecutor:用于批处理的Executor

  ReuseExecutor:相同的SQL会服用的Statemen

Mybatis的原始的执行方式的更多相关文章

  1. MyBatis最原始的实现curd的操作

    关于jdbc的缺点: 1.数据库链接创建释放频繁造成系统资源浪费从而影响系统性能.如果使用数据库连接池可以解决此问题. 2.sql语句在代码中硬编码,不利于维护,sql变动需要改变java代码 3.使 ...

  2. Spring Boot入门(六):使用MyBatis访问MySql数据库(注解方式)

    本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 本篇博客我们讲解下在Spring Boot中使用MyBatis访问MySql数据库的简单用法. 1.前期 ...

  3. mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样

    Mybatis批量更新数据 mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样 mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样 mybatis批 ...

  4. 第9章 Shell基础(1)_Shell简介和脚本执行方式

    1. Shell概述 1.1 Shell简介 (1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编 ...

  5. Windows服务定时执行方式

    采用System.Timers.Timer 间隔固定时间执行 方式一:间隔固定的时间执行一次,关键代码: protected override void OnStart(string[] args) ...

  6. shell各种执行方式区别

    shell 脚本各种执行方式(source ./*.sh, . ./*.sh, ./*.sh)的区别 原文出处:http://blog.csdn.net/dance_rise/article/deta ...

  7. Linux下的Source命令及脚本的执行方式解析

    Linux Source命令及脚本的执行方式解析 http://blog.csdn.net/wangyangkobe/article/details/6595143 当我修改了/etc/profile ...

  8. SQL Select count(*)和Count(1)的区别和执行方式及SQL性能优化

    SQL性能优化:http://www.cnblogs.com/CareySon/category/360333.html Select count(*)和Count(1)的区别和执行方式 在SQL S ...

  9. Delphi中ADO异步执行方式

    当ADO开始处理数据后,应用程序必须等到ADO处理完毕之后才可以继续执行.但是除了同步执行方式之外,ADO也提供了异步执行的方式,允许当ADO处理时,应用程序仍然能够先继续执行.而当ADO处理数据完毕 ...

  10. 探讨 : Host在IIS上的WCF Service的执行方式

    一个WCF请求由两个线程来完成 运行在IIS上的WCF service, 你可能会注意到一个比较有趣的现象. 当WCF service接收到一个请求时, 这个请求实际上会有两个线程在执行这个请求. 一 ...

随机推荐

  1. 寻找AI新势力!“天翼云息壤杯”高校AI大赛火热报名中!

    各位高校开发者们, AI舞台已就位,你准备好了吗? 为加快落实"人工智能+"行动,中国电信集团有限公司充分发挥央企在人工智能领域主力军作用,联合华为技术有限公司共同举办" ...

  2. 魔乐社区体验:探索Llama 3.1模型微调之旅

    在2024年的AI领域,Meta发布的Llama 3.1模型无疑成为了研究者和开发者的新宠.我有幸通过魔乐社区提供的资源,对这一模型进行了深入的学习和实践.在这个过程中,魔乐社区的资源和支持给我留下了 ...

  3. 对外提供API,通过appId、appSecret、sign秘钥对接口做鉴权

    一.背景 在接口开发过程中,我们通常不能暴露一个接口给第三方随便调用,要对第三方发来参数进行校验,看是不是具有访问权限. 名词介绍: 1.appId: 应用id,用户自定义命名,如:*-access- ...

  4. 理解 SystemVerilog 中的循环与并发线程

    1. 首先理解 scope 的概念 除了常见的module.interface.class.task以及function等等,另外,begin-end block 和 fork-join block ...

  5. go测试跨包代码覆盖率

    Golang虽然只是一门编程语言,但也为我们提供了不少工具,其中测试工具是最常用的,大概 前提概要 以前看书,只说了用什么工具去做覆盖率,和基本的使用,当时看了也没想太多.后面真正做项目了,老大要求比 ...

  6. startup_stm32f10x_xx.s 启动代码文件的选择

    网上查到的各个文件的解释是: startup_stm32f10x_cl.s 互联型的器件startup_stm32f10x_hd.s 大容量startup_stm32f10x_hd_vl.s 大容量s ...

  7. Lombok 只会用@Setter @Getter @Data ? 老鸟带你玩转lombok

    lombok的官网 官方网址 : https://projectlombok.org lombok 稳定特性文档:https://projectlombok.org/features/ lombok ...

  8. C# 超大数据量导入 SqlBulkCopy

    1 public static void ImportTempTableDataIndex(DataSet ds,string TempTableName,string strSqlConnectio ...

  9. python 将字典转换为列表

    在实现功能时,有时候有些函数适用于非字典形式 这时候就需要把字典转换为其他形式 本例主要讲解字典到列表转换 datas=[{'1':'nihao'},{'2':'very goog'}] to_lis ...

  10. 值得推荐的IT公司名单(国企篇)

    大家好,今天我们来盘点一下值得推荐的国企,这些企业在行业内具有举足轻重的地位,不仅主营业务突出,福利待遇优厚,尤其是研发岗位的薪资区间,更是让人眼前一亮. 十大顶尖央企国企,待遇优厚如天花板级别!(排 ...