![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
5-3 MyBatis
文章平均质量分 81
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs映射成数据库中的记录
微凉归期
一起加油^0^~
展开
-
MyBatis12-缓存(一级/二级/EhCache)
简介 1、什么是缓存 [ Cache ]? 存在内存中的临时数据。 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。 2、为什么使用缓存? 减少和数据库的交互次数,减少系统开销,提高系统效率。 3、什么样的数据能使用缓存? 经常查询并且不经常改变的数据。 Mybatis缓存 MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。缓存可以极大的提升查询效率。转载 2021-06-17 13:57:02 · 138 阅读 · 0 评论 -
MyBatis11-动态SQL
介绍 什么是动态SQL:动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句. 官网描述 MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。 虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大的动态 SQL 语言得以改进转载 2021-06-17 09:09:40 · 85 阅读 · 0 评论 -
MyBatis10-复杂查询(一对多\多对一)
多对一的处理 多对一的理解: 多个学生对应一个老师 如果对于学生这边,就是一个多对一的现象,即从学生这边关联一个老师! 数据库设计 CREATE TABLE `teacher` ( `id` INT(10) NOT NULL, `name` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8 INSERT INTO teacher(`id`, `name`) VALUES (1, '秦老师')原创 2021-06-17 09:08:41 · 76 阅读 · 0 评论 -
MyBatis09-注解开发
面向接口编程 根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好 在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了; 而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程就是指按照这种思想来编程。转载 2021-06-17 09:07:22 · 61 阅读 · 0 评论 -
MyBatis08-分页实现
limit实现分页 思考:为什么需要分页? 在学习mybatis等持久层框架的时候,会经常对数据进行增删改查操作,使用最多的是对数据库进行查询操作,如果查询大量数据的时候,我们往往使用分页进行查询,也就是每次处理小部分数据,这样对数据库压力就在可控范围内。 使用Limit实现分页 #语法 SELECT * FROM table LIMIT stratIndex,pageSize SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 #为了检索从某一个偏移量到记录转载 2021-06-16 12:31:31 · 99 阅读 · 0 评论 -
MyBatis07-日志工厂
思考:我们在测试SQL的时候,要是能够在控制台输出 SQL 的话,是不是就能够有更快的排错效率? 如果一个 数据库相关的操作出现了问题,我们可以根据输出的SQL语句快速排查问题。 对于以往的开发过程,我们会经常使用到debug模式来调节,跟踪我们的代码执行过程。但是现在使用Mybatis是基于接口,配置文件的源代码执行过程。因此,我们必须选择日志工具来作为我们开发,调节程序的工具。 Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具: SLF4J Apache Commons L原创 2021-06-16 12:27:51 · 97 阅读 · 0 评论 -
MyBatis06-ResultMap结果集映射
查询为null问题 要解决的问题:属性名和字段名不一致 环境:新建一个项目,将之前的项目拷贝过来 1、查看之前的数据库的字段名 2、Java中的实体类设计 public class User { private int id; //id private String name; //姓名 private String password; //密码和数据库不一样! //构造 //set/get //toString() } 3、接口 //根据id查询原创 2021-06-16 12:23:04 · 78 阅读 · 0 评论 -
MyBatis05-生命周期和作用域
1、生命周期 作用域(Scope)和生命周期 目前已经讨论过的不同作用域和生命周期类是至关重要的,因为错误的使用会导致非常严重的并发问题。 我们可以先画一个流程图,分析一下Mybatis的执行过程! 2、作用域理解 SqlSessionFactoryBuilder 的作用在于创建 SqlSessionFactory,创建成功后,SqlSessionFactoryBuilder 就失去了作用,所以它只能存在于创建 SqlSessionFactory 的方法中,而不要让其长期存在。因此 SqlSessio原创 2021-06-16 10:32:03 · 91 阅读 · 0 评论 -
MyBatis04-配置解析
1、核心配置文件 mybatis-config.xml 系统核心配置文件 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 能配置的内容如下: configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境配置) environment(环境变量) transactionMa原创 2021-06-16 09:51:35 · 83 阅读 · 0 评论 -
MyBatis03-CRUD操作
注意:namespace 将上面案例中的UserMapper接口改名为 UserDao; 将UserMapper.xml中的namespace改为为UserDao的路径 . 再次测试 结论: 配置文件中namespace中的名称为对应Mapper接口或者Dao接口的完整包名,必须一致! select select标签是mybatis中最常用的标签之一 select语句有很多属性可以详细配置每一条SQL语句 SQL语句返回值类型。【完整的类名或者别名】 传入SQL语句的参数类型 。【万能的Map,可以转载 2021-06-15 19:07:28 · 90 阅读 · 0 评论 -
MyBatis02-第一个MyBatis程序
1、搭建实验数据库 CREATE DATABASE `mybatis`; USE `mybatis`; DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(20) NOT NULL, `name` varchar(30) DEFAULT NULL, `pwd` varchar(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; inse原创 2021-06-15 17:09:58 · 86 阅读 · 0 评论 -
MyBatis01-入门
1、什么是MyBatis MyBatis 是一款优秀的持久层框架 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程 MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 映射成数据库中的记录。 MyBatis 本是apache的一个开源项目ibatis, 2010年迁移到了google code,改名为MyBatis 。2013年11月迁移到Github 。 Mybatis官方文档 : http://www.原创 2021-06-15 16:48:40 · 1133 阅读 · 1 评论