Mybatis的原始的执行方式
一、通过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的原始的执行方式的更多相关文章
- MyBatis最原始的实现curd的操作
关于jdbc的缺点: 1.数据库链接创建释放频繁造成系统资源浪费从而影响系统性能.如果使用数据库连接池可以解决此问题. 2.sql语句在代码中硬编码,不利于维护,sql变动需要改变java代码 3.使 ...
- Spring Boot入门(六):使用MyBatis访问MySql数据库(注解方式)
本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 本篇博客我们讲解下在Spring Boot中使用MyBatis访问MySql数据库的简单用法. 1.前期 ...
- mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样
Mybatis批量更新数据 mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样 mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样 mybatis批 ...
- 第9章 Shell基础(1)_Shell简介和脚本执行方式
1. Shell概述 1.1 Shell简介 (1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编 ...
- Windows服务定时执行方式
采用System.Timers.Timer 间隔固定时间执行 方式一:间隔固定的时间执行一次,关键代码: protected override void OnStart(string[] args) ...
- shell各种执行方式区别
shell 脚本各种执行方式(source ./*.sh, . ./*.sh, ./*.sh)的区别 原文出处:http://blog.csdn.net/dance_rise/article/deta ...
- Linux下的Source命令及脚本的执行方式解析
Linux Source命令及脚本的执行方式解析 http://blog.csdn.net/wangyangkobe/article/details/6595143 当我修改了/etc/profile ...
- SQL Select count(*)和Count(1)的区别和执行方式及SQL性能优化
SQL性能优化:http://www.cnblogs.com/CareySon/category/360333.html Select count(*)和Count(1)的区别和执行方式 在SQL S ...
- Delphi中ADO异步执行方式
当ADO开始处理数据后,应用程序必须等到ADO处理完毕之后才可以继续执行.但是除了同步执行方式之外,ADO也提供了异步执行的方式,允许当ADO处理时,应用程序仍然能够先继续执行.而当ADO处理数据完毕 ...
- 探讨 : Host在IIS上的WCF Service的执行方式
一个WCF请求由两个线程来完成 运行在IIS上的WCF service, 你可能会注意到一个比较有趣的现象. 当WCF service接收到一个请求时, 这个请求实际上会有两个线程在执行这个请求. 一 ...
随机推荐
- 分布式事务---2PC和3PC原理TCC事务
分布式事务(1)---2PC和3PC原理 分布式事物基本理论:基本遵循CPA理论,采用柔性事物特征,软状态或者最终一致性特点保证分布式事物一致性问题. 分布式事物常见解决方案: 2PC两段提交协议 3 ...
- Jetpack架构组件学习(6)——使用Glance实现桌面小组件
原文地址: Jetpack架构组件学习(6)--使用Glance实现桌面小组件-Stars-One的杂货小窝 公司陆续整了几个Compose写的app,有个小组件的功能,顺便试了下Jetpack库里的 ...
- nginx适配Overlay以及测试工具
本文分享自天翼云开发者社区<nginx适配Overlay以及测试工具>,作者:pan Overlay与Underlay介绍 Overlay网络和Underlay网络是一组相对概念,Over ...
- SDN网络技术在云计算中的应用
本文分享自天翼云开发者社区<SDN网络技术在云计算中的应用>,作者:1****m SDN(软件定义网络)是一种新型的网络架构,其基本思想是将数据平面和控制平面分离,通过集中式的控制器来管理 ...
- 华盛顿大学-分布式系统课设-lab0
前言 无意间发现一个华盛顿大学分布式系统的课程实验,感觉课程组设计得非常用心.不同于一般实验仅仅给出若干测试样例并判断程序的输出是否正确,实验中的验证环节通过DFS搜索来遍历分布式系统可能的状态,以此 ...
- Luogu P2540 NOIP2015提高组 斗地主 加强版 题解 [ 紫 ] [ 深搜 ] [ 剪枝 ]
斗地主:一步一步推性质就能做出来的剪枝题. 这题思路和小木棒的剪枝思路极其相似,剪枝的角度都差不多. 其实大部分搜索剪枝题都是先观察性质,列出性质后选择几个比较关键且代码好写的性质进行剪枝,特别要注意 ...
- C# 获取计算机唯一标识
C# 获取计算机唯一标识 原文链接 private static string _sFingerPrint { get; set; } /// <summary> /// 计算机唯一标识 ...
- 『Python底层原理』--CPython的变量实现机制
在Python中,变量的使用看起来非常简单,例如 a = 10,s = "hello"等等. 然而,这种简单的赋值操作背后,CPython其实做了很多复杂的工作. 本文将通过一些简 ...
- 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
你好呀,我是歪歪. 事情是这样的,前几天有一个读者给我发消息,说他面试的时候遇到一个奇形怪状的面试题. 歪师傅纵横面试界多年,最喜欢的是奇形怪状的面试题. 可以说是见过大场面的人,所以让他描述一下具体 ...
- autMan奥特曼机器人-出现argument list too long报错的解决方法
当你运行一段时间autMan后,可能会出现argument list too long的报错,那是你主机系统限制了autMan运行插件的参数长度,导致的报错,如下: 查看当前ARG_MAX的值 在 L ...