随笔分类 - Mybatis
摘要:今天遇到个需求需要对现有的数据进行脱敏处理。于是简单研究了下。 其实拦截器对脱敏处理主要处理两种数据,一种是bean类型,一种是map类型。 普通的javabean利用注解+反射来处理,map的数据自己维护需要脱敏的key以及规则。bean类型是用mybatis以及mybatis-plus自动生成的
阅读全文
摘要:mybatis-plus也只是听过,可是终究没有使用过。于是自己花几天晚上的时间研究mybatis-plus的使用。 下面的研究也是基于其官网:http://mp.baomidou.com/guide/ 。官网的介绍非常详细。 官网有基于springboot,也有基于spring的原始方式。 MyB
阅读全文
摘要:一、mybatis 简单注解 关键注解词 : 2.Mapper接口定义: MessageCustomMapper.java(最后五个方法注解实现) MessageCustomMapper.xml(只实现部分方法) 3.测试如下: 结果: (1)testAdd方法: (2)testSelect方法:
阅读全文
摘要:1. 引入分页插件 引入分页插件有下面2种方式,推荐使用 Maven 方式。 1). 引入 Jar 包 你可以从下面的地址中下载最新版本的 jar 包 https://oss.sonatype.org/content/repositories/releases/com/github/pagehelp
阅读全文
摘要:mybatis讲解的非常好的连接: https://www.jianshu.com/nb/5226994 执行流程简介参考:http://www.cnblogs.com/dongying/p/4142476.html#3723640
阅读全文
摘要:在开头: 需要查阅本文的基本都是需要传入多个参数的,这里记住一句话:无论你传的参数是什么样的,最后mybtis都会将你传入的转换为map的,那么既然这样,当我们要传入多个参数时,何不直接给与map类型即可,然后mapper.xml通过#{map.key}来获取值即可,这个特别适合动态搜索,或者多个参
阅读全文
摘要:使用Mybatis的时候,有些时候能输出(主要是指sql,参数,结果)日志。有些时候就不能。 无法输出日志的时候,无论怎么配置log4j,不管是properties的还是xml的,都不起作用。 有些时候,我们没做什么配置就能输出日志.... 这是一个让无数人烦躁的问题。其实解决问题很容易(我过了这么
阅读全文
摘要:1、#{}和${}的区别是什么? 注:这道题是面试官面试我同事的。 答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换 为com.mysql.jdbc.Driver。#{}是sql的参数占位符,Mybatis会将
阅读全文
摘要:参考:http://blog.csdn.net/ashan_li/article/details/50351080 MappedStatement说明 一个MappedStatement对象对应Mapper配置文件中的一个select/update/insert/delete节点,主要描述的是一条S
阅读全文
摘要:SQL注入,大家都不陌生,是一种常见的攻击方式。攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如“or ‘1’=’1’”这样的语句),有可能入侵参数检验不足的应用程序。所以,在我们的应用中需要做一些工作,来防备这样的攻击方式。在一些安全性要求很高的应用中(比如银行软件),经常使用将SQ
阅读全文
摘要:1.xml中配置: 2.Java测试: 结果: 总结: map中的list同普通的一样,只是在遍历的时候collection要写出map中的List的键值。如: 补充:也可以获取到遍历集合的顺序,比如: java传入的参数如下: 生成的SQL如下:
阅读全文
摘要:一对多映射的使用:
阅读全文
摘要:第一种方法: 用了转义字符把>和<替换掉,然后就没有问题了。 SELECT * FROM test WHERE 1 = 1 AND start_date <= CURRENT_DATE AND end_date >= CURRENT_DATE 附:XML转义字符 < < 小于号 &
阅读全文
摘要:1. mybatis缓存介绍 如下图,是mybatis一级缓存和二级缓存的区别图解: mybatis提供查询缓存,用于减轻数据压力,提高数据库性能。 mybaits提供一级缓存,和二级缓存。 一级缓存是SqlSession级别的缓存。在操作数据库时需要构造 sqlSession对象,在对象中有一个数
阅读全文
摘要:1. 什么是延迟加载 resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 需求: 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询
阅读全文
摘要:resultType: 作用: 将查询结果按照sql列名pojo属性名一致性映射到pojo中。 场合: 常见一些明细记录的展示,比如用户购买商品明细,将关联查询信息全部展示在页面时,此时可直接使用resultType将每一条记录映射到pojo中,在前端页面遍历list(list中是pojo)即可。
阅读全文
摘要:1.需求 查询用户及用户购买商品信息。 2 sql语句 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关联表: orders、orderdetail、items 3 映射思路 将用户信息映射到user中。 在user类中添加订单列表属性List<Orders
阅读全文
摘要:1.需求: 查询所有订单信息及订单下的订单明细信息。 订单信息与订单明细为一对多关系。 2. sql语句 确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查询基础上添加订单明细表关联即可。 3. 分析(只能使用resultMap) 使用resultType将上边的 查询结果映射到pojo中
阅读全文
摘要:1.需求 查询所有订单信息,关联查询下单用户信息。 注意: 因为一个订单信息只会是一个人下的订单,所以从查询订单信息出发关联查询用户信息为一对一查询。如果从用户信息出发查询用户下的订单信息则为一对多查询,因为一个用户可以下多个订单。 2. 方法一:resultType 使用resultType,定义
阅读全文
摘要:1. 数据模型分析思路 1、每张表记录的数据内容 分模块对每张表记录的内容进行熟悉,相当 于你学习系统 需求(功能)的过程。 2、每张表重要的字段设置 非空字段、外键字段 3、数据库级别表与表之间的关系 外键关系 4、表与表之间的业务关系 在分析表与表之间的业务关系时一定要建立 在某个业务意义基础上
阅读全文