
mybatis
小铭爱学习
这个作者很懒,什么都没留下…
展开
-
mybatis 缓存机制
默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。一级缓存一级缓存也叫做本地缓存指的是一次会话:sqlsession(在方法中得到sqlsession到将它关闭的这段期间)与数据库同一次会话期间查询到的数据会放到本地中下次如果需要获取相同的数据就直接从缓存中取缓存失效的条件:查询不同的数据增删改操作,可能会改变原来的数据,就肯定会刷新缓存查询不同的mapper.xml手动清理缓存二级缓存二级缓存也叫全局缓存,一级缓存作用域太低了,所以诞生了二级缓存基于name原创 2020-07-30 22:11:41 · 122 阅读 · 0 评论 -
mybatis 动态SQL
动态SQL动态sql,其实就是在sql语句的基础加上一些逻辑判断,使得可以根据要求来改变sql语句主要有以下几个关键字ifchoose (when, otherwise)trim (where, set)foreachif(类似jstl表达式) <select id="queryBlog" parameterType="map" resultType="Blog"> select * from blog where 1=1 <if test原创 2020-07-30 20:13:44 · 111 阅读 · 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 · 799 阅读 · 0 评论 -
mybatis注解使用和原理
可以使用注解来替代编写xml文件,如果是sql语句比较简单的话可以使用注解,如果sql语句比较复杂还是建议使用配置文件编写。来看实现过程:接下来看看为什么使用注解可以实现我在这里打个断点sqlsession通过UserMapper的字节码文件,利用反射可以获取到这个类对象,包括这个类的成员变量,方法,构造方法。在mapper中,有个mapperInterface接口,其中这个接口实现类的属性携带有实体类信息的数据那么在这个返回的mapper中,就有关于这个类的所有属性,进而通过这些个属原创 2020-07-29 16:57:25 · 833 阅读 · 1 评论 -
mtbatis 解决属性名和字段名不一致的问题
问题引出这是我数据库的定义:原本数据库的字段是要跟实体类的属性名去对应的,那我现在将属性故意改一下:再来做查询:得到以下结果,因为返回回来的数据的password和pwd不对应,就显示为null解决方法1.起别名2.使用结果集映射resultMapresultMap 元素是 MyBatis 中最重要最强大的元素。它可以让你从 90% 的 JDBC ResultSets 数据提取代码中解放出来,并在一些情形下允许你进行一些 JDBC 不支持的操作。实际上,在为一些比如连接的复杂语句编原创 2020-07-29 13:14:32 · 214 阅读 · 0 评论 -
mybatis 生命周期和作用域
不同作用域和生命周期类别是至关重要的,因为错误的使用会导致非常严重的并发问题。下面是生命周期几个主要对象:参考官方文档SqlSessionFactoryBuilder这个类可以被实例化、使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了。 因此 SqlSessionFactoryBuilder 实例的最佳作用域是方法作用域(也就是局部方法变量)。SqlSessionFactorySqlSessionFactory 一旦被创建就应该在应用的运行期间一直存在。 使用 SqlS原创 2020-07-29 12:36:42 · 315 阅读 · 0 评论 -
mybatis 配置
MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息下面是配置相关:configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)transactionManager(事务管理器)dataSource(数据源)databaseIdP原创 2020-07-28 21:33:51 · 231 阅读 · 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 · 161 阅读 · 0 评论