# mybatis-3-master **Repository Path**: gu_yongqiang/mybatis-3-master ## Basic Information - **Project Name**: mybatis-3-master - **Description**: 改造MyBatis3源码,添加MyBatis插件。增加若干注解与策略接口,降低字典查询复杂度,插入更新自动带入各种基本数据,完全依靠注解完成。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-03-03 - **Last Updated**: 2024-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 版本号 3.5.5-SNAPSHOT ### 构建须知: 该项目使用了MySQL数据库,以及自带的库World。 ### 该项目的研究目标: 研究MyBatis中的源代码,分析其流程,并寻找可插入的点扩展其新功能。提升业务功能。 ### 目前已拓展的功能: 1.添加了拦截器对MyBatis的参数Handler进行了拦截。 2.通过对参数的拦截,添加了自定义注解。自定义注解包括了创建者信息自动插入,更新者信息,主键自动插入自动插入。使用策略模式来使用户能够自动自定义实际的策略。 3.添加了拦截器对MyBatis的结果Handler进行了拦截。 4.通过拦截器,实现了对结果集的加密,字典填充。 #### MyBatis增强: 1.前置增强 2.后置增强 3.执行增强 4.SQL语句增强 通过对MyBatis进行前置增强和后置增强,可以在不影响原有业务和原有业务代码的下,实现各种的升级功能(使用Spring的AOP也可以实现该功能)。除了基本的字典自动注入、自动使用Redis生成的主键,将查询结果缓存到NoSQL数据库当中去之外,还可以结合Kafka实现流式数据的统计,整理,归总,日志等功能,结合Nginx+lua+Redis实现高效的用户身份验证 #### 自定义语言驱动 该功能可以自动根据JavaBean生成对应的SQL语句。将简单的单表SQL管理,通过使用相应注解,自动动态实现简单SQL,从而消灭掉一些机械式的SQL语句。一方面这能减少代码的复杂量,留下关键代码。另一方面,可以减少程序员的工作量。该驱动不同于MyBatisPlus的实现,采用的是注解生成的方式,以低污染,低侵入的方式自动生成代码。 * countAll() ----------> select count(1) from tableX 更新全部变量 * delete() -----------> delete from tableX 根据id删除变量 * select() ----------> select A,B,C,D from tableX 选择变量 * update() ----------> update xxx set xxx = xxx where id = xxx 局部更新,更新传入值不为null的变量 * updateAll() ----------> update xxx set xxx = xxx where id = xxx 全量更新 * insert() -----------> insert xxx into x values() 局部插入