3

MyBatis Generator 代码自动生成器,从此解放你的双手

前言在日常开发工作中,我们往往需要自己去构建各种数据表所对应的持久化对象(PO)、用于操作数据库的接口(DAO)以及跟 DAO 所绑定的对应 XML。这都是一些重复性的操作,不需要多大技术含量,这时候我们不禁会去想,有没有一种工具,能够帮助我们去自动生成这些文件呢?答案是:有的!本文接下来的内容主要适用于使用 MyBatis 来做持久层框架开发的工作,如果不是使用 MyBatis,那么可能本文不太适合你的开发场景。MyBatis Generator 简介作为一个基于 MyBatis 的独立工具,MyBatis Generator 能够满足我们以上的要求,能够通过简单的配置去帮我们生成数据表所对...

阅读全文>>

1

MyBatis 执行流程及源码解析

我们在日常工作中广泛使用mybatis作为数据持久层框架, 但是mybatis的执行流程是怎么样的,你了解过吗。本文将从源码角度,带你分析mybatis的工作原理。先看一个简单的例子,以Service调用Mapper接口为例:public interface StudentMapper { @Select("select * from student") public List<Map<String,Object>> query(); }@Service("studentService") public class StudentServiceImpl ...

阅读全文>>

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的实现和二者的不同特点。   目...

阅读全文>>