![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mybatis
小铭爱学习
这个作者很懒,什么都没留下…
展开
-
mybatis 缓存机制
默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。 一级缓存 一级缓存也叫做本地缓存指的是一次会话:sqlsession(在方法中得到sqlsession到将它关闭的这段期间) 与数据库同一次会话期间查询到的数据会放到本地中 下次如果需要获取相同的数据就直接从缓存中取 缓存失效的条件: 查询不同的数据 增删改操作,可能会改变原来的数据,就肯定会刷新缓存 查询不同的mapper.xml 手动清理缓存 二级缓存 二级缓存也叫全局缓存,一级缓存作用域太低了,所以诞生了二级缓存 基于name原创 2020-07-30 22:11:41 · 91 阅读 · 0 评论 -
mybatis 动态SQL
动态SQL 动态sql,其实就是在sql语句的基础加上一些逻辑判断,使得可以根据要求来改变sql语句 主要有以下几个关键字 if choose (when, otherwise) trim (where, set) foreach if (类似jstl表达式) <select id="queryBlog" parameterType="map" resultType="Blog"> select * from blog where 1=1 <if test原创 2020-07-30 20:13:44 · 85 阅读 · 0 评论 -
mybatis实现多表查询,联表查询
需求 现在是在mybatis中实现 定义两个实体类: 方式一: <!--方法一 多表查询--> <select id="getStudent" resultMap="StudentTeacher"> select * from student </select> <resultMap id="StudentTeacher" type="Student"> <!--property 对应实体类属性,col原创 2020-07-30 00:10:05 · 740 阅读 · 0 评论 -
mybatis注解使用和原理
可以使用注解来替代编写xml文件,如果是sql语句比较简单的话可以使用注解,如果sql语句比较复杂还是建议使用配置文件编写。 来看实现过程: 接下来看看为什么使用注解可以实现 我在这里打个断点 sqlsession通过UserMapper的字节码文件,利用反射可以获取到这个类对象,包括这个类的成员变量,方法,构造方法。 在mapper中,有个mapperInterface接口,其中这个接口实现类的属性携带有实体类信息的数据 那么在这个返回的mapper中,就有关于这个类的所有属性,进而通过这些个属原创 2020-07-29 16:57:25 · 737 阅读 · 1 评论 -
mtbatis 解决属性名和字段名不一致的问题
问题引出 这是我数据库的定义: 原本数据库的字段是要跟实体类的属性名去对应的,那我现在将属性故意改一下: 再来做查询: 得到以下结果,因为返回回来的数据的password和pwd不对应,就显示为null 解决方法 1.起别名 2.使用结果集映射resultMap resultMap 元素是 MyBatis 中最重要最强大的元素。它可以让你从 90% 的 JDBC ResultSets 数据提取代码中解放出来,并在一些情形下允许你进行一些 JDBC 不支持的操作。实际上,在为一些比如连接的复杂语句编原创 2020-07-29 13:14:32 · 167 阅读 · 0 评论 -
mybatis 生命周期和作用域
不同作用域和生命周期类别是至关重要的,因为错误的使用会导致非常严重的并发问题。 下面是生命周期几个主要对象: 参考官方文档 SqlSessionFactoryBuilder 这个类可以被实例化、使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了。 因此 SqlSessionFactoryBuilder 实例的最佳作用域是方法作用域(也就是局部方法变量)。 SqlSessionFactory SqlSessionFactory 一旦被创建就应该在应用的运行期间一直存在。 使用 SqlS原创 2020-07-29 12:36:42 · 281 阅读 · 0 评论 -
mybatis 配置
MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息 下面是配置相关: configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境配置) environment(环境变量) transactionManager(事务管理器) dataSource(数据源) databaseIdP原创 2020-07-28 21:33:51 · 189 阅读 · 0 评论 -
mybatis入门+案例
一 . 概念 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 (来自官网) 二 . 入门 1. 安装 在maven中引入依赖即可 <dependency> <gr原创 2020-07-28 13:10:29 · 111 阅读 · 0 评论