美文网首页代码记忆一个Java码农眼中的技术世界IT@程序员猿媛
增强Mybatis处理多表查询 我再也不用写VO类!!!

增强Mybatis处理多表查询 我再也不用写VO类!!!

作者: hihuzi | 来源:发表于2019-02-19 14:57 被阅读8次

每当我们辛苦的解决好表与表直接的耦合是 ,却发现接下来的的连表查询特别恶性(重名的列名,重名的属性名)我们不得不小心翼翼写xml,小心翼翼修改查询内容.这个还没完,突然需求改了 , 实体类又改了, wot,我又得改xml,改vo类,还有无休止的测试!!!!!啊,我是个浪人,我不想这般所以>>>>.....>>>>>

1.工具说明

应用背景:

1.Mybatis对连表(多表查询)查询映射实体对象的不足(压根没有这些方法)
2.修改实体后VO类还得修改
3.填写完复杂的多表查询条件,还有痛苦的测试(一旦修改实体类VO类也要跟着修改如果关联的多 我感觉身体被掏空,油墨有)
技术:注解+(设计模式)(单例-内部类懒加载,责任链,工厂模式)
优点:
1.非侵入式插件(可以很容易添加到你的SpringBoot项目)
2.易学习 易用
3.不需要写VO类
4.直接填充到对应对象List<E>
5.支持自定义规则
6.多列重名的情况

2.使用

1.直接撸代码(具体的方法)


    /**
     * tips sql+ 增强工具(带缓存) 自动填充对象
     *
     * @notice: 返回值  "List<Map>" "Map<String,List<E>" "list<E>"
     * @author: hihuzi 2019/2/14 9:08
     */
    public abstract <E> Object listToEntity(List<Map> list, SQLConfig config) throws Exception;

    /**
     * tips sql+ 增强工具(带缓存) 自动填充对象
     *
     * @notice: 返回值  "List<Map>" "Map<String,List<E>" "list<E>"
     * @author: hihuzi 2019/2/14 9:08
     */
    public abstract <E> Object listToEntity(List<Map> list, E... e) throws Exception;

    /**
     * tips sql+ 增强工具(带缓存) 自动填充对象
     *
     * @notice: 返回值  "List<Map>" "Map<String,List<E>" "list<E>"
     * @author: hihuzi 2019/2/14 9:08
     */
    public abstract <E> Object listToEntity(List<Map> list, SQLConfig config, E... e) throws Exception;

    /**
     * tips sql+ 增强工具(带缓存) 自动填充对象
     *
     * @notice: 返回值  "List<Map>" "Map<String,List<E>" "list<E>"
     * @author: hihuzi 2019/2/14 9:08
     */
    public abstract <E> Object getSQL(SQLBean config) throws Exception;

2.加入你的项目

A.第一步 83662e09e7d50cb726150f686b18326.png
没啥好讲的直接复制包到你的项目的工具文件下

1.非侵入式插件(可以很容易添加到你的SpringBoot项目)
>>2.易学习 易用
>>3.不需要写VO类
>>4.直接填充到对应对象List<E>
>>5.支持自定义规则
>>6.多列重名的情况
##2.使用
>1.直接撸代码(具体的方法)
/** * tips sql+ 增强工具(带缓存) 自动填充对象 * * @notice: 返回值 "List<Map>" "Map<String,List<E>" "list<E>" * @author: hihuzi 2019/2/14 9:08 */ public abstract <E> Object listToEntity(List<Map> list, SQLConfig config) throws Exception; /** * tips sql+ 增强工具(带缓存) 自动填充对象 * * @notice: 返回值 "List<Map>" "Map<String,List<E>" "list<E>" * @author: hihuzi 2019/2/14 9:08 */ public abstract <E> Object listToEntity(List<Map> list, E... e) throws Exception; /** * tips sql+ 增强工具(带缓存) 自动填充对象 * * @notice: 返回值 "List<Map>" "Map<String,List<E>" "list<E>" * @author: hihuzi 2019/2/14 9:08 */ public abstract <E> Object listToEntity(List<Map> list, SQLConfig config, E... e) throws Exception; /** * tips sql+ 增强工具(带缓存) 自动填充对象 * * @notice: 返回值 "List<Map>" "Map<String,List<E>" "list<E>" * @author: hihuzi 2019/2/14 9:08 */ public abstract <E> Object getSQL(SQLBean config) throws Exception;
>>2.加入你的项目
A.第一步

83662e09e7d50cb726150f686b18326.png
没啥好讲的直接复制包到你的项目的工具文件下
B.还是第一步(高手可以生成jar包直接引用) efb744bd4e71dd45ba6debe88a38234.png
C.第二步 4a012eee5d7e1ae14c0938039c022d3.png
D.第三步 直接看SQL
1b4cc78ccb1a12cf012d8f43fdb127e.png
E.第四部 等待发出SQL等结果
重复的名称会用 类名.属性名
list.parallelStream().forEach(map -> {
            map.put("uId", map.get("User.id"));
            map.put("aId", map.get("Agent.id"));
            map.put("cid", map.get("Car.id"));

        });

F.第五步 吧这个list给前台吧
G.好吧 !!!还是给出源码地址吧 欢迎搞事
https://gitee.com/hihuzi-top/collection_tool.git

https://github.com/hioo520/collectionTool.git
https://gitee.com/hihuzi-top/collection_tool.git

莫忘了点赞
累了!

相关文章

  • 增强Mybatis处理多表查询 我再也不用写VO类!!!

    每当我们辛苦的解决好表与表直接的耦合是 ,却发现接下来的的连表查询特别恶性(重名的列名,重名的属性名)我们不得不小...

  • mybatis-plus配置xml进行多表查询

    mybatis-plus多表查询,需自己写xml进行查询。 在mapper中定义,如需分页查询可添加page。 在...

  • 5/10day51_查询&多表

    回顾 优化测试方法 mybatis查询和多表 一 Mybatis单表查询 1.1 resultMap标签 如果数据...

  • Mybatis多表查询

    mybatis的连接池 我们在实际开发中都会用到连接池,因为他可以减少我们获取连接消耗的时间。 mybatis提供...

  • mybatis联合多表查询

    数据库表 pms_user_tea表保存教师用户信息 pms_exp表保存实验室信息查询信息:所有教师下的所有实验...

  • mybatis多表联合查询

    开发环境:postgresql数据库、idea工具、easy code插件、springboot+mybatis数...

  • MyBatis多表查询(1)

    两表联查(一对一) 1、创建一个丈夫(husband)表和妻子(wife)表 2、创建Husband和Wife的实...

  • MyBatis多表查询(2.1)

    两表联查(一对多) 1、创建学生(student)表和班级(grade)表 2、创建Student和Grade实体...

  • 06 Mybatis 多表查询

    一、 一对一查询 建立user与account表之间的关联 sql实现查询 定义一个实体类来接受连表查询结果集, ...

  • Mybatis--多表查询

    一、一对一查询 1.实体类 2.映射类 3.表结构 [图片上传失败...(image-bbcc2c-1554098...

网友评论

    本文标题:增强Mybatis处理多表查询 我再也不用写VO类!!!

    本文链接:https://www.haomeiwen.com/subject/aygxyqtx.html