竹山一叶

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  390 随笔 :: 0 文章 :: 0 评论 :: 192万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  MyBatis

1 2 3 下一页

摘要:typeAliasesPackage 默认只能扫描某一个路径下,或以逗号等分割的 几个路径下的内容,不支持通配符和正则,采用重写的方式解决[html] view plain copy print?package com.xxxx.xxx.util.common; import com.xxxx.xxx.util.LogUtil; import org.apache.common... 阅读全文
posted @ 2017-02-14 09:55 竹山一叶 编辑

摘要:Mybatis拦截器只能拦截四类对象,分别为:Executor、ParameterHandler、StatementHandler、ResultSetHandler,而SQL数据库的操作都是从Executor开始,因此要记录Mybatis数据库操作的耗时,需要拦截Executor类,代码实现如下:/** * 数据库操作性能拦截器,记录耗时 * @Intercepts定义Signature数... 阅读全文
posted @ 2017-02-10 17:23 竹山一叶 编辑

摘要:MyBatis拦截器介绍MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能。那么拦截器拦截MyBatis中的哪些内容呢?我们进入官网看一看:MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:Executor (update, query, flushStatements, commit... 阅读全文
posted @ 2017-02-10 17:20 竹山一叶 编辑

摘要:转载自:http://my.oschina.net/SEyanlei/blog/188919 mybatis提供了EnumTypeHandler和EnumOrdinalTypeHandler完成枚举类型的转换,两者的功能已经基本满足了日常的使用。但是可能有这样的需求:由于某种原因,我们不想使用枚举的name和ordinal作为数据存储字段。mybatis的自定义转换类出现了。... 阅读全文
posted @ 2017-02-09 10:57 竹山一叶 编辑

摘要:一、简介 我们在用MyBatis里,很多时间有这样一个需求:bean里有个属性是枚举,在DB存储时我们想存的枚举的代号,从DB拿出来时想直接映射成目标枚举类型,也即代号字段与Java枚举类的相互类型转换。 当然,你可以为每个枚举写一个MyEnumTypeHandler,但问题是要为每个类都写一个TypeHandler,过于繁琐。 有了泛型,一个通用的TypeHandler直接搞定。二、源码源... 阅读全文
posted @ 2017-02-09 10:52 竹山一叶 编辑

摘要:引言typeHandlers阅读官方文档 typeHandlers 一节 {:target="_blank"}MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,Java对象将通过ps.setInt、ps.setString、ps.setTimeStamp等方法转换成数据库需要的数据在从结果集(ResultSet)中取出一个值时,将使用rs.getInt、rs.ge... 阅读全文
posted @ 2017-02-09 10:20 竹山一叶 编辑

摘要:平时咱们写程序实体类内或多或少都会有枚举类型属性,方便嘛。但是mybatis里怎么处理他们的增删改查呢?要求:插入的时候,会用枚举的定义插入数据库,我们希望在数据库中看到的是数字或者其他东西;查询的时候,数据库的值可以自动转换为我们对应的枚举值。举例,我有一个这样的枚举类型:Java Code复制内容到剪贴板package cn.com.shuyangyang.domain; public ... 阅读全文
posted @ 2017-02-09 10:02 竹山一叶 编辑

摘要:在运行mybatis配置文件的时候,出现错误: mybatis:"configuration" must match "(properties?,settings?,typeAliase..... 配置文件 configuration 中的元素,不但有类型限制,也有顺序限制。必须按照以下配置顺序配置 阅读全文
posted @ 2017-01-15 22:55 竹山一叶 编辑

摘要:今天和大家分享下mybatis的一个分页插件PageHelper,在讲解PageHelper之前我们需要先了解下mybatis的插件原理。PageHelper的官方网站:https://github.com/pagehelper/Mybatis-PageHelper一、Plugin接口mybatis定义了一个插件接口org.apache.ibatis.plugin.Interceptor,任何自定... 阅读全文
posted @ 2017-01-14 23:03 竹山一叶 编辑

摘要:之前的文章中我们意见分析了一级缓存、二级缓存的相关源码和基本原理,今天我们来分享下了mybatis二级缓存和redis的结合,当然mybatis二级缓存也可以和ehcache、memcache、OSCache、Hazelcast结合使用。二级缓存相关的源码分享请参考《Mybatis源码分析之Cache二级缓存原理》。我们通过两种方式来实战,一种是自己编写缓存、另外一种是官方给出的demo地址:h... 阅读全文
posted @ 2017-01-14 23:00 竹山一叶 编辑

摘要:一:Cache类的介绍讲解缓存之前我们需要先了解一下Cache接口以及实现MyBatis定义了一个org.apache.ibatis.cache.Cache接口作为其Cache提供者的SPI(ServiceProvider Interface) ,所有的MyBatis内部的Cache缓存,都应该实现这一接口Cache的实现类中,Cache有不同的功能,每个功能独立,互不影响,则对于不同的Cache... 阅读全文
posted @ 2017-01-13 20:36 竹山一叶 编辑

摘要:之前的文章我已经基本讲解到了SqlSessionFactory、SqlSession、Excutor以及Mpper执行SQL过程,下面我来了解下myabtis的缓存,它的缓存分为一级缓存和二级缓存,本文我们主要分析下一级缓存。先看一个例子,代码还是之前(第一篇)的的demo public static void main(String[] args) throws Exception { ... 阅读全文
posted @ 2017-01-13 20:35 竹山一叶 编辑

摘要:上两篇已经讲解了SqlSessionFactory的创建和SqlSession创建过程。今天我们来分析myabtis的sql是如何一步一步走到Excutor。还是之前的demo public static void main(String[] args) throws Exception { SqlSessionFactory sessionFactory = null; ... 阅读全文
posted @ 2017-01-12 12:31 竹山一叶 编辑

摘要:通过上一篇文章的分析我们,我初步了解了它是如何创建sessionFactory的(地址:Mybatis源码分析之SqlSessionFactory(一)),今天我们分析下Mybatis如何创建SqlSession( sessionFactory.openSession())和Excutor到底做了什么事情还是上篇的代码demo public static void main(String[] a... 阅读全文
posted @ 2017-01-12 11:57 竹山一叶 编辑

摘要:简介MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和... 阅读全文
posted @ 2017-01-11 16:05 竹山一叶 编辑

摘要:随着系统用户访问量的不断增加,数据库的频繁访问将成为我们系统的一大瓶颈之一。由于项目前期用户量不大,我们实现单一的数据库就能完成。但是后期单一的数据库根本无法支撑庞大的项目去访问数据库,那么如何解决这个问题呢?实际的应用中,数据库都是读多写少(读取数据的频率高,更新数据的频率相对较少),而读取数据通常耗时比较长,占用数据库服务器的CPU较多,从而影响用户体验。我们通常的做法就是把查询从主库中抽取出... 阅读全文
posted @ 2017-01-11 15:59 竹山一叶 编辑

摘要:延迟加载什么是延迟加载?resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 需求: 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。延迟加载:先从单表查询、需要时再从关联表去关联... 阅读全文
posted @ 2017-01-10 09:43 竹山一叶 编辑

摘要:Mybatis 高级知识安排:对订单商品数据模型进行分析订单商品数据模型数据模型分析思路:1、每张表记录的数据内容(分模块对每张表记录的内容进行熟悉,相当于学习系统需求的过程)2、每张表重要的的字段设置(非空字段、外键字段)3、数据库级别表与表之间的关系(外键关系)4、表与表业务之间的关系(要建立在每个业务意义的基础上去分析)数据模型分析模型用户表 user:记录购买商品的用户信息订单表 orde... 阅读全文
posted @ 2017-01-10 09:34 竹山一叶 编辑

摘要:Mybatis 解决 jdbc 编程的问题1、 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。解决:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。2、 Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变Java代码。解决:将Sql语句配置在XXXXmapper.xml文件中与jav... 阅读全文
posted @ 2017-01-09 17:29 竹山一叶 编辑

摘要:MybatisMybatis 和 SpringMVC 通过订单商品案例驱动官方中文地址:http://www.mybatis.org/mybatis-3/zh/官方托管地址:https://github.com/mybatis/mybatis-3本项目全部代码地址:https://github.com/zhisheng17/mybatis基础知识:对原生态 jdbc 程序(单独使用 jdbc 开发... 阅读全文
posted @ 2017-01-09 17:15 竹山一叶 编辑

1 2 3 下一页
点击右上角即可分享
微信分享提示