0

自己动手编写一个Mybatis插件:Mybatis脱敏插件

1. 前言在日常开发中,身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。否则容易造成个人隐私泄露,客户资料泄露,给不法分子可乘之机。但是数据脱敏不是把敏感信息隐藏起来,而是看起来像真的一样,实际上不能是真的。我以前的公司就因为不重视脱敏,一名员工在离职的时候通过后台的导出功能导出了核心的客户资料卖给了竞品,给公司造成了重大的损失。当然这里有数据管理的原因,但是脱敏仍旧是不可忽略的一环,脱敏可以从一定程度上保证数据的合规使用。下面就是一份经过脱敏的数据:2. Mybatis 脱敏插件最近在研究Mybatis的插件,所以考虑能不能在ORM中搞一搞脱敏,所以就尝试了一下,这里分享一下思路...

阅读全文>>

0

SpringBoot+shiro+mybatis实现权限登录

SpringBoot+shiro+mybatis+Thymeleaf实现权限登录系统记录一下,学习shiro的一个小Demo:1.首先是底层数据库:-- ---------------------------- -- Table structure for role -- ---------------------------- CREATE TABLE `role` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色表主键', `role_name` varchar(32) DEFAULT NULL COMMENT '角色名称', ...

阅读全文>>

0

Mybatis中不建议使用动态sql

Mybatis是一个优秀的Java持久层框架,它通过xml的方式来管理要执行的sql语句,屏蔽了jdbc底层细节,让开发人员可以方便的操作数据库。动态SQL说到动态SQL,绝对是Mybatis引以为豪的东西,因为它可以使配置文件简洁,就像下面这个配置,我可以使用selectEntryByWhere来适配所有的查询语句,是不是感觉很爽。<select id="selectEntryByWhere" parameterType="Order" resultType="Order"> SELECT <include refid="Base_Column"/> FROM ord...

阅读全文>>

0

MyBatis 的 DAO 接口跟 XML 文件里面的 SQL 是如何建立关系的?

我们在使用 MyBatis 的时候,都用的是 Dao 接口和 XML 文件里的 SQL 一一对应来进行使用的。那你是否思考过二者是如何建立关系的?在开始正文之前,首先解释 Dao 接口和 XML 文件里的 SQL 是如何一一对应的?一句话讲完就是:MyBatis 会先解析这些 XML 文件,通过 XML 文件里面的命名空间 (namespace)跟 DAO 建立关系;然后 XML 中的每段 SQL 会有一个id 跟 DAO 中的接口进行关联。那么问题来了: "如果我有两个这个 XML 文件都跟这个 DAO 建立关系了,那不是就是冲突了?"带着这个疑问我们就要开始下面的正题了!一、初始化首先我们...

阅读全文>>

0

Mybatis中三种关联关系的实现,看这篇就够了

三种关联关系:一对多,一对一,多对多两种查询方式:嵌套查询,连接查询(也可称作:多表单独查询,多表连接查询)每一种关联关系都可以通过嵌套查询和连接查询来实现。嵌套查询相当于进行了两次查询,而连接查询将两张表连接然后再进行查询,这样只进行了一次查询由于数据表要对实体类进行映射,所以每一种关联关系中都需要在java类中定义属性来进行关联,可以通过如图关联:一对一查询数据表实现:通过A表的主键引用B表的主键作为外键,就是说在A中主键和外键同一字段。查询方式:嵌套查询,连接查询;关系:丈夫和妻子(Husband Wife)嵌套查询实现:在实体类husband中关联wife,进行连接查询之后,需要使用r...

阅读全文>>

0

如果面试官问你MyBatis SQL是如何执行的?这里会有你想要的答案

初识 MyBatisMyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。MyBatis 能够支持简单的 XML 和注解配置规则。使 Map 接口和 POJO 类映射到数据库字段和记录。MyBatis 的特点那么 MyBatis 具有什么特点呢?或许我们可以从如下几个方面来描述:MyBatis 中的 SQL 语句和主要业务代码分离,我们一般会把 MyBatis 中的 SQL 语句统一放在 XML 配置文件中,便于统一维护。解除 SQL 与程序代码的耦合,通过提供 DAO 层,将业务逻辑和数据访问...

阅读全文>>

0

mybatis打印带参数sql几种实现方式及优缺点

mybatis打印带参数sql几种实现方式及优缺点1. log4jdbclog4jdbc是google开源的用于专们打印sql日志的工具jar包,使用方法很简单。第一步:引入maven包,如下:<dependency><groupId>com.googlecode.log4jdbc</groupId><artifactId>log4jdbc</artifactId><version>1.2</version></dependency>第二步:更改jdbc的驱动名称和连接名称,主要是标红部分:(jdb...

阅读全文>>

0

java数据库框架mybatis的事务处理

MyBatis作为Java语言的数据库框架,对数据库的事务管理是其非常重要的一个方面。   本文将讲述MyBatis的事务管理的实现机制,首先介绍MyBatis的事务Transaction的接口设计以及其不同实现JdbcTransaction 和 ManagedTransaction;接着,从MyBatis的XML配置文件入手,讲解MyBatis事务工厂的创建和维护,进而阐述了MyBatis事务的创建和使用;最后分析JdbcTransaction和ManagedTransaction的实现和二者的不同特点。   目...

阅读全文>>

2

springboot下配置mybatis的call-setters-on-nulls属性

使用Mybatis时,如果查询语句中某些字段值是null的,则这个字段就无法返回。对于后台数据处理来说,这是一个致命的问题,于是通过修改Mybatis的配置来解决这个问题。 在springmvc下,在mybatis的配置文件里面增加以下配置即可: mybatis.configuration.call-setters-on-nulls=true 但在springboot中,则有时不起作用。经过研究,其实在SqlSessionFactory增加callSettersOnNulls的配置就可以了,这里记录一下: SqlSessionFactoryBean...

阅读全文>>

0

Mybatis入门学习整理1

初次使用java来开发项目,选择了ssm框架,则少不了对Mybatis的学习。 先总体对项目结构进行一个梳理,其实主要分为以下几个方面: -控制器Controller -业务逻辑service -Mybatis-config:mappers的配置 -Mybatis-mapper:.xml -Mybatis-dao -数据实体Mybatis-model 接下来就要开始设计项目文件夹结构,在src/main/java下创建项目包名:com.dwu.ssmframe,并创建以下目录结构: co...

阅读全文>>