一、通过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. bat脚本(批处理程序)调用WinRAR及7zip压缩和解压缩

    最近项目要用到定期批量将文件及文件夹下的文档打包,所以想到要写脚本来实现,然后做Windows定期任务调用.bat脚本(批处理程序)调用WinRAR及7zip压缩和解压缩. 调用WinRAR来实现 因 ...

  2. LeetCode 未验证规则

    1. for循环容易忘记break,很多提交不过,都是因为这个 2. 左右指针,思考起来比较复杂,但是以代码容易理解.code精简为主,不要在乎省下一两次运算时间 3. 左右指针,有时候以left & ...

  3. 【Java 温故而知新系列】基础知识-05 面向对象

    1.面向对象概述 面向对象(Object-Oriented,简称OO)是一种编程思想,核心思想是将现实世界中的事物抽象为程序中的"对象",通过对象之间的交互来解决问题. 对象 对象 ...

  4. MySQL系统命令

    原文链接:https://blog.liuzijian.com/post/34b3b940-c053-9d75-06e2-07a2e7aeedc3.html 登录命令 mysql -h 主机 -P 端 ...

  5. law Intermediate walkthrough pg

    靶场很简单分数只有10分跟平常做的20分的中级靶场比确实简单 我拿来放松的 算下来30分钟解决战斗 nmap 扫到80端口web界面 是个框架 搜exp https://www.exploit-db. ...

  6. LeetCode刷题:AddressSanitizer: heap-buffer-overflow问题请教||全局变量和引用传递的区别

    在刷 https://leetcode.cn/problems/sudoku-solver/description/ 遇到AddressSanitizer: heap-buffer-overflow的 ...

  7. 创建react脚手架(项目)

    现在安装 react 脚手架的有三种, react-boilerplate react-redux-starter-kit create-react-app(国内主要运用这一种) 1==>npm ...

  8. 探索AI,拥抱未来,欢迎加入魔乐世界!

    近日,2024开放原子开源生态大会在北京亦庄开幕,大会以"开源赋能产业,生态共筑未来"为主题,来自政府.企业.学术界.研究机构的专家学者汇聚一堂,共同探讨开源在人工智能领域的创新应 ...

  9. Flask+flask-socketio+jsonrpc组合配置避坑

    Flask+flask-socketIO+jsonrpc这种组合能被我套出来也是离谱,事先声明:出现这种组合是因为本人之前对flask框架的使用仅限于flask+jsonrpc,所以导致这种情况出现, ...

  10. 赶快检查,木马可能已经植入服务器,Redis未授权访问漏洞记录,redis的key值出现backup要谨慎

    问题描述:为图省事,很多时候我们在使用redis的时候会使用默认空密码,这就增加了安全隐患,如果有下属情况,那赶快去检查下redis,木马或许已经植入服务器,应尽快处理: 1.redis绑定在 0.0 ...