
mybatis
三颗青菜
这个作者很懒,什么都没留下…
展开
-
【Mybatis】Mybatis三大组件之ResultSetHandler
ResultSetHandler用于处理sql的查询结果与对象的封装。 public <E> List<E> query(Statement statement, ResultHandler resultHandler) throws SQLException { PreparedStatement ps = (PreparedStatement) statement; ps.execute(); // 使用结果处理器处理ps中的查询结果 retu原创 2022-02-19 14:31:58 · 1230 阅读 · 0 评论 -
【Mybatis】Mybatis三大组件之StatementHandler
Executor是涉及到缓存及创建Statement的策略,StatementHandler是创建statement和给statement赋值。Configuration根据参数创建不同的StatementHandler public RoutingStatementHandler(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, Boun原创 2022-02-11 21:57:38 · 620 阅读 · 0 评论 -
【Mybatis】mybatis的小细节
mybatis是线程安全的吗?一个sqlsesion对应一个connection.这样就容易发生事务的错乱。比如一个要提交,一个还回滚。结果把人家要回滚的提交了。修改操作进行中,又来了查询操作。查出来的数据是脏数据。没有控制操作,等修改完再查询的约束。与spring结合后,每个mapper方法的调用都会创建一个新的sqlsession.这样就不冲突了。sqlsessiontemplate类做了一层代理。使用spring事务后,表示由spring负责提交和回滚。就绑定sqlsession.这样可以保原创 2022-02-11 16:39:18 · 261 阅读 · 0 评论 -
【Mybatis】三大组件之Executor,以及一级二级缓存分析
mybatis的sql执行过程中,涉及到三大组件:Executor,StatementHandler,ResultSetHandler。本章主要分析Executor。基类org.apache.ibatis.executor.BaseExecutor修改方法 @Override public int update(MappedStatement ms, Object parameter) throws SQLException { ErrorContext.instance().reso原创 2022-02-10 23:11:50 · 602 阅读 · 0 评论 -
【Mybatis】mapper文件的解析
mybatis的配置文件解析每一个部分,之后将数据添加槽cofiguration类中,本章只介绍解析mapper文件的部分。mapper文件中的insert,delete,update,select标签会被解析,封装为MappedStatement对象 private String resource; // mybatis总的配置类。 private Configuration configuration; // namespace+标签的id private String id;原创 2022-02-10 15:08:44 · 2605 阅读 · 0 评论 -
与spring的整合
与spring的整合主要是mapper接口注入进IOC容器。有两种方法。1.使用@Mapper注解,2.使用@MapperScan(“包”)@Mapper注解的扫描在自动配置类:AutoConfiguredMapperScannerRegistrar#registerBeanDefinitions public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistr原创 2021-03-30 16:57:22 · 186 阅读 · 0 评论 -
mybatis foreach标签的使用
mybatis的foreach标签经常用于遍历集合,构建in条件语句或者批量操作语句。下面是foreach标签的各个属性属性描述collection表示迭代集合的名称,可以使用@Param注解指定,如下图所示,如果没有用param指定,则表示集合的类型,list,array,map item表示本次迭代获取的元素,若collection为List、Set或者数组,则表示其中的元素;若collection为map,则代表key-value的value,该参数为必选ope转载 2021-01-07 15:51:22 · 643 阅读 · 0 评论 -
mybatis trim标签的使用
以下是trim标签中涉及到的属性:属性描述prefix给sql语句拼接的前缀suffix给sql语句拼接的后缀prefixOverrides去除sql语句前面的关键字或者字符,该关键字或者字符由prefixOverrides属性指定,假设该属性指定为"AND",当sql语句的开头为"AND",trim标签将会去除该"AND"suffixOverrides去除sql语句后面的关键字或者字符,该关键字或者字符由suffixOverrides属性指定下面使用几转载 2021-01-07 12:33:07 · 132 阅读 · 1 评论 -
mybatis使用详解
基于xml文件mybatis基于xml配置的多表查询使用association标签实现结果集的嵌套mybatis基于XML配置的动态SQL语句基于注解mybatis基于注解开发MyBatis注解应用之动态SQL语句基本使用SpringBoot整合MyBatis教程Provider进阶(Insert)...转载 2020-12-20 18:00:46 · 91 阅读 · 0 评论