
Mybatis
文章平均质量分 92
elim168
这个作者很懒,什么都没留下…
展开
-
Mybatis模糊查询
今天弄了一下mybatis,发现网上关于mybatis模糊查询的很多人不知道,好像也没人说,所以我就把我关于mybatis模糊查询的用法写出来供有需要的人参考一下,希望对有需要的人能有所帮助!Xml代码 select id="selectByName" parameterType="String" resultType="Student"> s原创 2014-10-27 21:46:26 · 13050 阅读 · 0 评论 -
Mybatis指定日志输出实现
Mybatis指定日志输出实现 在程序开发过程中,为了调试方便、了解程序的运行过程,进行必要的日志输出总是免不了的。对于使用Mybatis而言,我们常见的需求是希望可以在日志中打印出Mybatis执行过程中进行数据库操作的SQL语句及其传递的参数。Mybatis的日志输出是统一管理的,它有自己的日志接口,然后在需要进行日志输出的时候使用统一的API进行日志输出。这个统一的接口是原创 2017-05-03 17:56:06 · 16303 阅读 · 1 评论 -
Mybatis通过一条SQL查出关联的对象
Mybatis通过一条SQL查出关联的对象以往在做对象的查询时如果需要把关联的对象一起查出来是通过resultMap的子查询来进行的。通过子查询来进行的关联对象的查询时,Mybatis会重新发起一次数据库请求,这在有的时候性能方面不是特别的好,我们期望可以用一条SQL语句就把主体对象以及关联的对象都查出来,Hibernate其实是有对应的实现,Mybatis现在也有对应的支持(笔者以前刚开始接原创 2017-04-24 17:47:08 · 14040 阅读 · 0 评论 -
Mybatis表对象继承实现
Mybatis表对象继承 我们一般用表来表现对象之间的继承关系时通常有三种方式。第一种是把所有对象包含的属性都存放在一张表中,然后用一个字段来区分当前记录对应的对象类型;第二种是每个子类型一张表,每张表都存该对象所有的属性;第三种是基类作为一张表进行存储,每个子类特性的属性都新建一张表进行保存,然后在基类对应的表里面通过一个字段来区分对象的类型。第二种跟普通的处理方式没有什么区;第原创 2017-04-27 10:49:09 · 23743 阅读 · 1 评论 -
Mybatis核心杂谈
Mybatis杂谈 本文主要介绍Mybatis的配置解析对应的Class、Mybatis的全局配置等,每个点都不会讲太多细节的东西,只是提一下对应的点,更多细节的东西请有兴趣的读者自己去挖掘。1.1 配置解析 Mybatis有一堆的配置,有Mybatis的全局配置文件,有Mapper.xml文件,Mapper.xml文件里面又有select、i原创 2017-04-27 16:28:56 · 12813 阅读 · 0 评论 -
Mybatis查询延迟加载
Mybatis查询延迟加载 1.1 启用延迟加载 Mybatis的延迟加载是针对嵌套查询而言的,是指在进行查询的时候先只查询最外层的SQL,对于内层SQL将在需要使用的时候才查询出来。Mybatis的延迟加载默认是关闭的,即默认是一次就将所有的嵌套SQL一并查了将对象所有的信息都查询出来。开启延迟加载有两种方式。 第一种是在对应的或标签上指定fetc原创 2017-04-27 17:46:09 · 13692 阅读 · 2 评论 -
Mybatis取出来的Date没有时间只有日期
最近遇到一个问题,数据库存储的Date是包含时分秒的,数据库用的是Oracle,日期类型用的是date,数据库访问用的是Mybatis,对应的代码是通过Mybatis-Generator生成的。经检查发现是生成的代码中,存储了时分秒的字段在映射的时候对应的jdbcType是DATE,改成TIMESTAMP就好了。原创 2017-05-31 08:57:34 · 14917 阅读 · 0 评论 -
推荐一款Mybatis分页插件
以前也写过一篇博文介绍Mybatis的插件,以及如何通过Mybatis的插件功能实现一个自定义的分页插件,但是那个插件的侵入性是比较大的。前段时间遇到了一款开源的Mybatis分页插件,叫PageHelper,github地址是https://github.com/pagehelper/Mybatis-PageHelper,其原理是通过ThreadLocal来存放分页信信息。原创 2017-05-31 15:12:32 · 16608 阅读 · 4 评论 -
Mybatis的Executor介绍(一)
Mybatis的Executor介绍(一) Mybatis中所有的Mapper语句的执行都是通过Executor进行的,Executor是Mybatis的一个核心接口,其定义如下。从其定义的接口方法我们可以看出,对应的增删改语句是通过Executor接口的update方法进行的,查询是通过query方法进行的。虽然Executor接口的实现类有BaseExecutor和Ca原创 2017-04-28 17:08:54 · 17235 阅读 · 0 评论 -
Mybatis介绍之缓存——一级缓存和二级缓存
Mybatis介绍之缓存Mybatis中有一级缓存和二级缓存,默认情况下一级缓存是开启的,而且是不能关闭的。一级缓存是指SqlSession级别的缓存,当在同一个SqlSession中进行相同的SQL语句查询时,第二次以后的查询不会从数据库查询,而是直接从缓存中获取,一级缓存最多缓存1024条SQL。二级缓存是指可以跨SqlSession的缓存。 Mybatis中进行SQ原创 2017-05-02 17:43:52 · 13838 阅读 · 0 评论 -
Mybatis介绍之参数传递
Mybatis介绍之参数传递9.1 使用Mapper接口时参数传递方式 Mybatis在使用Mapper接口进行编程时,其实底层是采用了动态代理机制,表面上是调用的Mapper接口,而实际上是通过动态代理调用的SqlSession的对应方法,如selectOne(),有兴趣的朋友可以查看DefaultSqlSession的getMapper()方法实现,其最终会获得一个原创 2017-05-03 17:08:49 · 13063 阅读 · 0 评论 -
Mybatis结果集自动映射
Mybatis结果集自动映射 在使用Mybatis时,有的时候我们可以不用定义resultMap,而是直接在语句上指定resultType。这个时候其实就用到了Mybatis的结果集自动映射。Mybatis的自动映射默认是开启的,其在映射的时候会先把没有在resultMap中定义字段映射的字段按照名称相同的方式自动映射到返回类型的对应属性上。自动映射的时候会忽略大小写,比如查原创 2017-05-02 17:02:35 · 14586 阅读 · 0 评论 -
Mybatis的动态Sql
基础部分可以查看我的另一篇博客:http://blog.youkuaiyun.com/elim168/article/details/40622491 MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。MyBatis中用于实现动态SQL的元素主要有: ifchoose(when,otherwise)trimwhereset原创 2014-10-31 11:02:42 · 19396 阅读 · 0 评论 -
基于Mybatis3.0.6的基本操作介绍
每 一 个 MyBatis 的 应 用 程 序 都 以 一 个 SqlSessionFactory 对 象 的 实 例 为 核 心 。SqlSessionFactory本身是由SqlSessionFactoryBuilder创建的,一般而言,在一个应用中,一个数据库只会对应一个SqlSessionFactory,所以一般我们都把SqlSessionFactory定义成单例模式,或通过Spring等原创 2014-10-30 16:44:06 · 21028 阅读 · 0 评论 -
Mybatis之ResultMap简介,关联对象
基础部分可以查看我的另一篇博客http://blog.youkuaiyun.com/elim168/article/details/40622491MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap原创 2014-10-31 10:58:00 · 13757 阅读 · 0 评论 -
Mybatis中配置Mapper的方法
Mybatis中配置Mapper的方法 在这篇文章中我主要想讲一下Mybatis配置文件中mappers元素的配置。关于基础部分的内容可以参考http://blog.youkuaiyun.com/elim168/article/details/40622491。 我们知道在Mybatis中定义Mapper信息有两种方式,一种是利用xml写一个对应的包含Mapper信息原创 2014-11-01 09:34:45 · 19076 阅读 · 1 评论 -
Mybatis整合Spring
Mybatis整合Spring 根据官方的说法,在ibatis3,也就是Mybatis3问世之前,Spring3的开发工作就已经完成了,所以Spring3中还是没有对Mybatis3的支持。因此由Mybatis社区自己开发了一个Mybatis-Spring用来满足Mybatis用户整合Spring的需求。下面就将通过Mybatis-Spring来整合Mybatis跟Spri原创 2014-11-01 09:47:39 · 13301 阅读 · 0 评论 -
Mybatis拦截器介绍及分页插件
Mybatis拦截器介绍及分页插件1.1 目录1.1 目录1.2 前言1.3 Interceptor接口1.4 注册拦截器1.5 Mybatis可拦截的方法1.6 利用拦截器进行分页1.2 前言 拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻原创 2014-11-03 10:28:00 · 14740 阅读 · 0 评论 -
Mybatis返回Map的一种实现
Mybatis返回Map的一种实现前言 在使用Mybatis进行系统开发的时候,有时候我们会有这么一种需求:我们希望通过Mybatis查询某一个表返回的结果是一个Map,而这个Map的Key是表的一个字段,Value是另一个字段。然而当我们按照Mybatis的做法,指定查询Mapper语句的resultType为map时返回的结果是一个Map列表(表中有多条记录时),而且每个元原创 2014-11-03 10:32:51 · 17754 阅读 · 0 评论 -
Mybatis类型转换
Mybatis类型转换1.1 目录1.2 建立TypeHandler1.2.1 TypeHandler接口1.2.2 BaseTypeHandler抽象类1.3 注册TypeHandler1.4 Mybatis自动获取TypeHandler1.5 Mybatis中自动注册的TypeHandler 1.2原创 2014-11-02 11:04:48 · 14050 阅读 · 0 评论 -
Mybatis的Executor介绍(二)——批处理
Mybatis的Executor介绍(二)——批处理 在程序中,有时候我们需要批量的去操作一些数据,批量的新增、修改、删除,如果是通过for循环一条记录一条记录的去更新无疑效率会比较慢。更佳的做法无疑是采用JDBC对批处理的支持。Mybatis基于JDBC对批处理的支持,也提供了进行数据的批量操作的API,BatchExecutor。下面是一段JDBC进行批量操作的示例代码。原创 2017-04-28 17:14:04 · 15319 阅读 · 0 评论 -
Mybatis调用存储过程
调用存储过程mybatis调用存储过程时需要指定statementType=”CALLABLE”,这样Mybatis内部中调用sql语句时将采用CallableStatementHandler,而CallableStatementHandler内部将使用CallableStatement来调用存储过程。如果存储过程是有参数的,需要指定mode属性,可选值有IN、OUT和INOUT。当mode为OUT原创 2017-11-04 20:28:41 · 6275 阅读 · 0 评论