![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mybatis
BryantLmm
努力写好每一行代码
展开
-
Mybatis TypeHandler的使用
最近在为新项目搭建SpringMVC+Mybatis+Spring的环境。在这个过程中发现了许多问题,所以把这些总结下。首先,提出一个问题。当数据库表中有些字段不存在时,且这些字段没有默认值,但是我们希望在程序中取出来的时候这些字段对应的属性能得到一个默认值。这个需要怎么做到呢?当我们熟悉Mybatis的时候,我们就可以很快的知道怎么解决了,那就是使用TypeHandler。 + 例如,现在有一原创 2017-09-13 23:09:10 · 1211 阅读 · 0 评论 -
ResultSetHandler
title: ResultSetHandler date:2017年11月26日16:58:04 categories: MybatisResultSetHandler介绍ResultSetHandler是处理结果集的接口,在我看来他的实现类DefaultResultSetHandler是最难理解的一个组件,之所以复杂是因为Mybatis中ResultMap的设计非常强大,他可以满足用户的很多需原创 2017-11-26 23:35:37 · 1875 阅读 · 0 评论 -
MapperMethod
title:MapperMethod date:2017年11月25日22:20:53 categories:Mybatis我们接着上面继续分析@Test public void testSelect() { SqlSession session = null; try { session = MybatisUtil.getCurr原创 2017-11-26 22:31:46 · 1788 阅读 · 0 评论 -
ParameterHandler
ParameterHandler介绍ParameterHandler是用来设置参数规则的。当StatementHandler使用prepare()方法后,接下来就是使用它来设置参数。public interface ParameterHandler { Object getParameterObject(); void setParameters(PreparedStatement ps)原创 2017-11-26 22:30:36 · 1350 阅读 · 0 评论 -
StatementHandler
我们接着看四大组件的StatementHandler。首先还是来看代码接上一篇末尾SimpleExecutor的doQuery public <E> List<E> doQuery(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) th原创 2017-11-26 22:29:06 · 1955 阅读 · 0 评论 -
Executor
前言之前在用到Mybatis插件的时候就有提到过要好好分析下Mybatis的四大组件,但是由于之前一直在弄公司的消息服务器集群搭建的事情,就耽搁了好一阵子。现在终于有时间了,我们就来好好看看Mybatis的源码。从一次查询过程说起上一次我们我们讲述了Mapper接口以及命令模式的具体命令类MapperMethod。我们接着之前的分析继续往下走这个查询过程。接下来就该来到DefaultSqlSessi原创 2017-11-26 22:27:33 · 248 阅读 · 0 评论 -
Mybatis中的缓存
Mybatis一级缓存在系统代码的运行中,我们可能会在一个数据库会话中,执行多次查询条件完全相同的Sql,鉴于日常应用的大部分场景都是读多写少,这重复的查询会带来一定的网络开销,同时select查询的量比较大的话,对数据库的性能是有比较大的影响的。如果是Mysql数据库的话,在服务端和Jdbc端都开启预编译支持的话,可以在本地JVM端缓存Statement,可以在Mysql服务端直接执行Sql,省去原创 2017-12-13 20:45:29 · 354 阅读 · 0 评论 -
Mybatis拦截器
title:Mybatis拦截器date:2017年10月19日09:24:05前言:最近项目有个需求,需要将所有产品的ID和Name组成Map传递到前台,以ID为key,以Name为Value。即需要达到可以通过map.get(id)方便地获取name的值的效果。然后就开始测试在Mybatis中哪种方法可行。首先看看直接使用resultType=”map”Mapper文件如下:<select id原创 2017-10-26 22:16:48 · 267 阅读 · 0 评论 -
Mybatis拦截器
title:Mybatis拦截器date:2017年10月19日09:24:05前言:最近项目有个需求,需要将所有产品的ID和Name组成Map传递到前台,以ID为key,以Name为Value。即需要达到可以通过map.get(id)方便地获取name的值的效果。然后就开始测试在Mybatis中哪种方法可行。首先看看直接使用resultType=”map”Mapper文件如下:<select id原创 2017-10-19 21:06:39 · 604 阅读 · 0 评论 -
Mybatis一对一查询与插入
最近在搭一个SSM的开发环境给新项目用,就写了一些测试代码,也算温习下自己对Mybatis的学习,而且这一路上还是有很多坑的。一.Mybatis一对一插入场景,描述NBA湖人队中队伍,教练和队员的关系 很明显,队伍和教练是一对一的关系,而队伍和队员是一对多的关系,我们先看一对一的关系。create table coach( name varchar2(60), id number(原创 2017-09-18 23:52:09 · 4403 阅读 · 0 评论 -
Mybatis使用过程中的一些错误
ERRORorg.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.wangcc.ssm.entity.Team with invalid types () or valu原创 2017-09-16 22:47:01 · 573 阅读 · 0 评论 -
Mapper接口
title:Mapper接口 date:2017年11月25日17:27:07categories: Mybatis前言之前在说到Mybatis插件的时候说以后要好好分析下Mybatis的四大组件,之前一直在为公司忙搭建RocketMQ消息集群的事情,就耽误了一段时间,最近终于有时间来分析下了,要分析四大组件,还是要从一次完整的查询过程说起,把Mybatis的核心源码都过一遍。从一次查询说起我们做原创 2017-11-26 22:29:49 · 485 阅读 · 0 评论