随笔分类 - (8)Mybatis
摘要:在使用 association和collection 进行关联查询的时候 column 参数可能会有多个,如下: 注意: parameterType 一定要是 java.util.Map
阅读全文
摘要:作者:黎明你好的技术博客 有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息。使用Oracle的序列、mysql的函数生成Id。这时我们可以使用动态sql。 下文均采用mysql语法和
阅读全文
摘要:一个好的讲解mybatis的博客地址http://www.jianshu.com/nb/5226994 推荐:digdeep 引言 对于使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真不想花双倍的时间
阅读全文
摘要:作者:ilovejava_2010 MyBatis的创建基于这样一个思想:数据库并不是您想怎样就怎样的。虽然我们希望所有的数据库遵守第三范式或BCNF(修正的第三范式),但它们不是。如果有一个数据库能够完美映射到所有应用程序,也将是非常棒的,但也没有。结果集映射就是MyBatis为解决这些问题而提供
阅读全文
摘要:作者:夕下奕林 问题描述 现在有三张数据表,表名为orders,orderdetail,items,分别表示订单,订单详情,商品。 其中一个订单包含多个订单详情,表示订单中的不同个具体的商品,订单详情唯一对应一件商品。所以orderdetail中的外键order_id为orders的主键,order
阅读全文
摘要:作者:moshenglv的专栏 拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法。Mybatis拦截器设计的一个初衷就是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis
阅读全文
摘要:作者:yhjyumi的专栏 数据权限实现(Mybatis拦截器+JSqlParser) Mybatis的拦截器实现机制,使用的是JDK的InvocationHandler. 当我们调用ParameterHandler,ResultSetHandler,StatementHandler,Executo
阅读全文
摘要:作者:南柯梦 Mybatis中的TypeHandler是什么? 无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换成 Java 类型。Mybatis默认为我们实现了许多TypeHandle
阅读全文
摘要:作者:W&L 推荐: 陶邦仁的博客 (1)加载配置并初始化 触发条件:加载配置文件 配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。 (2)接收调
阅读全文
摘要:相信很多人可能都遇到过下面这些异常: "Parameter 'xxx' not found. Available parameters are [...]" "Could not get property 'xxx' from xxxClass. Cause: "The expression 'xx
阅读全文
摘要:当你想在实体类中使用Java.util.Date类型,而且还想在数据库中保存时分秒时,你可以在xml中修改为: #{xxdate,jdbcType=TIMESTAMP} 就是将#{}中的jdbcType属性设置成TIMESTAMP,这样在保存的时候就会将时分秒也包含进去。 如果你xml中使用了<re
阅读全文
摘要:MyBatis中的OGNL教程 有些人可能不知道MyBatis中使用了OGNL,有些人知道用到了OGNL却不知道在MyBatis中如何使用,本文就是讲如何在MyBatis中使用OGNL。 如果我们搜索OGNL相关的内容,通常的结果都是和Struts有关的,你肯定搜不到和MyBatis有关的,虽然和S
阅读全文
摘要:SqlMapConfig.xml mybatis的全局配置文件SqlMapConfig.xml,配置内容如下: properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plug
阅读全文
摘要:where后不存在and,这是因为prefixoverride="AND |OR"代表去掉第一个and或者是or。 可以参考第一个例子理解。 大家可以自行理解一下。
阅读全文
摘要:作者:余家小子 1、一对多查询 1.1 需求 查询订单及订单明细的信息。 1.2 sql语句 确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查询基础上添加订单明细表关联即可。 1.3 分析 使用resultType将上边的 查询结果映射到pojo中,订单信息的就是重复。 要求: 对ord
阅读全文
摘要:作者:学无先后 达者为先 作者:偶尔记一下 foreach一共有三种类型,分别为List,[](array),Map三种。 下面表格是我总结的各个属性的用途和注意点。 foreach属性 注:Map类型没有默认的map,所以不能直接写collection="map",如果这么写,需要保证传入的Map
阅读全文
摘要:作者:digdeep 作者:EasonJim 原理:拦截器。 使用方法: RowBounds:在mapper.java中的方法中传入RowBounds对象。 mappep.xml里面正常配置,不用对rowBounds任何操作。mybatis的拦截器自动操作rowBounds进行分页。 PageHel
阅读全文
摘要:在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]>来解决。 <![CDATA[ ]]> 是什么,这是XML语法。在CDATA内部的所有内容都会被解析器忽略。
阅读全文
摘要:mybatis 中使用 sqlMap 进行 sql 查询时,经常需要动态传递参数,例如我们需要根据用户的姓名来筛选用户时,sql 如下: 上述 sql 中,我们希望 name 后的参数 "ruhua" 是动态可变的,即不同的时刻根据不同的姓名来查询用户。在 sqlMap 的 xml 文件中使用如下的
阅读全文
摘要:##Example example = new ##Example(); example.setOrderByClause("字段名 ASC"); //升序排列,desc为降序排列。 example.setDistinct(false)//去除重复,boolean型,true为选择不重复的记录。 Criteria criteria = new Example().crea...
阅读全文