Mybatis
ouyang2018
这个作者很懒,什么都没留下…
展开
-
Mybatis全局配置文件
入门传统方式:获取sqlSessionFactory对象获取sqlSession对象sqlSession直接调用自有的api,如sqlSession.select,insert,update接口式编程:获取sqlSessionFactory对象获取sqlSession对象获取接口的实现类对象用接口实现类调用相应的方法原生 : dao -----> daoImpl...原创 2019-10-08 14:25:38 · 106 阅读 · 0 评论 -
Mybatis SQL映射文件
Mybatis 的增删改操作的接口方法定义中返回值可以定义为以下几种:int、long、boolean或其包装类以及voidsqlSessionfactory.openSession()获取到的SqlSession 默认是不主动提交,需要手动提交。sqlSessionfactory.openSession(true)是自动提交。mysql支持自增主键,自增主键值的获取,Mybatis利用s...原创 2019-10-08 14:31:03 · 163 阅读 · 0 评论 -
动态SQL
if、choose(when,otherwise)、trim(where,set)、foreachif标签:<!--public List<StudentBean> getStudentsForIf(StudentBean student);--><select id="getStudentsForIf" resultType="com.learncmzy.p...原创 2019-10-08 14:35:01 · 98 阅读 · 0 评论 -
缓存机制
mybatis系统中默认定义了两级缓存一级缓存和二级缓存默认情况下,只有一级缓存(SqlSession级别的缓存,也称为本地缓存)开启。二级缓存需要手动开启和配置,它是基于namespace级别的缓存。为了提高扩展性。mybatis定义了缓存接口Cache。我们可以通过实现Cache接口来自定义二级缓存。一级缓存:本地缓存,SqlSession级别的缓存,一级缓存是一直开启的,与数据库...原创 2019-10-08 14:40:40 · 265 阅读 · 0 评论 -
Mybatis工作原理
运行步骤:1、获取SqlSessionFactory对象2、获取SqlSession对象3、获取接口的代理对象(MapperProxy)4、执行增删改查方法Mybatis在四大对象的创建过程中,都会有插件进行介入。插件可以利用动态代理机制一层层的包装目标对象,从而实现在目标对象执行目标方法之前进行拦截的效果。Mybatis允许在已映射语句执行过程中的某一点进行拦截调用默认情况下,M...原创 2019-10-08 14:47:32 · 108 阅读 · 0 评论 -
插件原理
在四大对象创建的时候1、每个创建出来的对象不是直接返回的,而是经过interceptorChain.pluginAll(四大对象)2、获取到所有的Interceptor(拦截器,插件需要实现的接口),调用interceptor.plugin(target),返回target包装后的对象3、插件机制,使用插件为目标对象来创建一个代理对象,与AOP原理相同即插件可以为四大对象创建出代理对象,代...原创 2019-10-08 14:49:53 · 382 阅读 · 0 评论 -
TypeHandler
Statementhandler在执行增删改查操作时,使用ParameterHandler和ResultSetHandler来分别进行参数的设置和查寻结果的封装,其中在设置参数的时候是将传入参数设置到sql中,以及将从数据库查寻的结果转换成相应的java返回类型,都是通过TypeHandler来处理的。public interface TypeHandler<T> { void...原创 2019-10-08 14:55:27 · 217 阅读 · 0 评论