![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mybatis
檬茶茶丶
.......
展开
-
mybatis 使用selectKey返回主键的值示例
<insert id="insert" useGeneratedKeys="true" keyProperty="id"></insert>主键回填的方法只适用于支持主键自增的数据库(如mysql),有些数据库(如oracle)不提供主键自增的功能,而是使用序列得到一个值,然后将这个值赋给id,再将数据插入数据库。对于这种情况,可以采用另外一种方式:使用《select...原创 2019-10-07 15:32:37 · 596 阅读 · 0 评论 -
mybatis插件开发之 下画线键值转小写驼峰形式插件
在使用mybatis时,为了方便拓展而使用Map类型的返回值。使用Map作为返回值时,Map中的键值就是查询结果中的列名,而列名一般都是大小写字母或者下画线,和java中使用的驼峰形式不一致。而且由于不同数据库查询结果列名的大小写也并不一致,因此为了保证在使用Map时的属性一致。可以对Map类型的结果进行特殊处理,即将不同格式的列名转换为Java中的驼峰形式。配置:在mybaits-confi...原创 2019-10-13 12:58:49 · 316 阅读 · 0 评论 -
mybatis缓存-脏数据的产生和避免
二级缓存虽然能提高应用效率,减轻数据库服务器的压力,但是如果使用不当,很容易产生脏数据。这些脏数据会在不知不觉中影响业务逻辑,影响应用的实效,所以我们需要了解在MyBatis缓存中脏数据是如何产生的。也要掌握避免脏数据的技巧。 Mybatis的二级缓存是和命名空间绑定的,所以通常情况下每一个Mapper映射文件都拥有自己的二级缓存,不同mapper的二级缓存互不影响。在常见的数据库操作中,多...原创 2019-10-13 12:58:17 · 1141 阅读 · 0 评论 -
mybatis缓存-集成redis缓存
1、添加项目依赖<dependency> <groupId>org.mybatis.caches</groupId> <artifactId>mybatis-redis</artifactId> <version>1.0.0-beta2</version></depen...原创 2019-10-13 12:57:57 · 189 阅读 · 1 评论 -
mybatis缓存-集成EnCache缓存
EhCache是一个纯粹的Java进程内的缓存框架,具有快速、精干等特点。具体来说,EnCache主要的特性如下。快速。简单。多种缓存策略。缓存数据有内存和磁盘两级,无须担心容量问题。缓存数据会在虚拟机重启的过程中写入磁盘。可以通过rmi、可插入API等方式进行分布式缓存。具有缓存和缓存管理器的侦听接口。支持多缓存管理器实例以及一个实例的多个缓存区域。...原创 2019-10-11 17:20:38 · 171 阅读 · 0 评论 -
mybatis缓存配置
使用缓存可以使应用更快地获取数据,避免频繁的数据库交互,尤其是在查询越多、缓存命中率越高的情况下,使用缓存的作用就越明显。mybatis作为持久化框架,提供了非常强大的查询缓存特性,可以非常方便地配置和定制使用。一般提到mybatis缓存的时候,都是指二级缓存。一级缓存(也叫本地缓存)默认会启用,并且不能控制。一级缓存: mybatis的一级缓存存在于sqlSession的生命周...原创 2019-10-11 17:10:13 · 220 阅读 · 0 评论 -
mybatis 自定义类型处理器
package tk.mybatis.simple.type;public enum Enabled { tow(2),//测试 enabled(1), //启用 disabled(0);//禁用 private final int value; private Enabled(int value) { this.value = value...原创 2019-10-11 16:00:15 · 178 阅读 · 0 评论 -
mybatis高级查询之 存储过程
<select id="selectUserById" statementType="CALLABLE" useCache="false"> {call select_user_by_id( #{id, mode=IN}, #{userName, mode=OUT, jdbcType=VARCHAR}, #{userPasswo...原创 2019-10-11 15:58:29 · 162 阅读 · 0 评论 -
mybatis高级查询之 鉴别器映射
有时一个单独的数据库查询会返回很多不同数据类型(希望有些关联)的结果集。discriminator鉴别器标签就是用来处理这种情况的。鉴别器跟Java语言中的switch语句很相似: discriminator标签常用的两个属性如下。 column:该属性用于设置要进行鉴别比较值的列。 javaType:该属性用于指定列的类型,保证使用相同的java类型来比较值。...原创 2019-10-11 15:54:50 · 184 阅读 · 0 评论 -
mybatis高级结果映射之 一对多映射
collection直接结果映射<resultMap id="userRoleListMap" extends="userMap" type="tk.mybatis.simple.model.SysUser"> <collection property="roleList" columnPrefix="role_" resultMap...原创 2019-10-11 15:32:59 · 173 阅读 · 0 评论 -
mybatis高级结果映射之 一对一映射
1、高级结果映射 1一对一映射 1.1.1 使用resultMap配置一对一映射 association标签的映射查询常用的属性如下。 property: 对应实体类中的属性名,必填项。 javaType:属性对应的Java类型。 resultMap:可以直接使用现有的resultMap,而不需要在这里配置。 columnPrefix:...原创 2019-10-11 15:26:35 · 382 阅读 · 0 评论 -
mybatis动态sql
mybatis的强大特性之一便是它的动态sql。使用过JDBC或其他类似框架的人都会知道,根据不同条件拼接SQL语句时不仅不能忘了必要的空格,还要注意省略掉列名列表最后的逗号,处理方式麻烦且凌乱。mybaits的动态SQL则能让我们摆脱这种痛苦。以下是mybatis的动态SQL在xml中支持的几种标签。 if choose(when,otherwise) trim(wh...原创 2019-10-11 14:50:30 · 181 阅读 · 0 评论 -
mybatis主要配置
mybatis核心配置文件是mybatis-config.xml,该文件配置了mybatis的全局信息,包含数据库连接信息和运行时所需的各种特效,以及设置和影响mybatis属性的一些配置。 文件结构:这些配置顺序是固定的。 configuration:配置 properties: 可以引用别的配置文件 settings :修改M...原创 2019-10-11 14:01:31 · 254 阅读 · 0 评论 -
什么是mybatis
mybatis 是一款优秀的支持自定义SQL语句,存储过程和高级映射的持久层框架。消除了几乎所有jdbc代码和参数的手动设置和结果集的检索。mybatis可以使用xml或注解进行配置和映射,mybatis通过将参数映射到配置的SQL形成最终的执行SQL语句,最后将执行SQL的结果映射成Java对象返回。 与其他的orm(对象关系映射)框架不同,mybatis并没有将Java对象与...原创 2019-10-11 10:59:55 · 422 阅读 · 0 评论 -
mybatis插件开发之 分页插件pagehelper调用原理
/** * Mybatis - 通用分页拦截器<br/> * 项目地址 : http://git.oschina.net/free/Mybatis_PageHelper * * @author liuzh/abel533/isea533 * @version 5.0.0 *///springboot集成pagehelper项目中的简单分页查询如下:@Overrid...原创 2019-10-13 12:59:31 · 421 阅读 · 0 评论