吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1348|回复: 8
收起左侧

[求助] 看不懂这个类

[复制链接]
163585580 发表于 2022-4-19 10:05
哪位大佬能帮忙看一下这个类(如下代码)是干什么的么?已知的是service类(如下图)要继承它



[Java] 纯文本查看 复制代码
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.daowen.ssm.simplecrud;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;

public class SimpleBizservice<MapperClass extends SimpleMapper> implements Bizservice<MapperClass> {
    @Autowired
    private MapperClass mapper = null;

    public SimpleBizservice() {
    }

    public MapperClass getMapper() {
        return this.mapper;
    }

    public List getEntity() {
        return this.mapper.getAllEntity();
    }

    public <T> T save(T t) {
        Class<?>[] funIntf = this.mapper.getClass().getInterfaces();
        Class<?> mapperClazz = null;
        if (funIntf != null && funIntf.length > 0) {
            mapperClazz = funIntf[0];
        }

        Class<?> clz = this.getEntityClass(mapperClazz);
        if (clz != null && !clz.isInstance(t)) {
            System.out.println("不是实体类");
            return null;
        } else {
            this.mapper.save(t);
            return t;
        }
    }

    public List getPageEntitys(String where, int pageIndex, int pageSize) {
        return this.mapper.getPageEntitys(where, pageIndex, pageSize);
    }

    public int getRecordCount(String where) {
        return this.mapper.getRecordCount(where);
    }

    public List getEntity(String where) {
        return this.mapper.getEntitys(where);
    }

    public <T> List<T> getTopEntity(String where, int topCount) {
        return this.mapper.getTopEntity(where, topCount);
    }

    private Class<?> getEntityClass(Class<?> mapperClass) {
        Type[] types = mapperClass.getGenericInterfaces();
        Class<?> entityClass = null;
        Type[] var4 = types;
        int var5 = types.length;

        for(int var6 = 0; var6 < var5; ++var6) {
            Type type = var4[var6];
            if (type instanceof ParameterizedType) {
                ParameterizedType t = (ParameterizedType)type;
                if (t.getRawType() == SimpleMapper.class) {
                    entityClass = (Class)t.getActualTypeArguments()[0];
                    break;
                }
            }
        }

        return entityClass;
    }

    public <T> int update(T t) {
        return this.mapper.update(t);
    }

    public int delete(String where) {
        return this.mapper.delete(where);
    }

    public Boolean isExist(String where) {
        return this.getRecordCount(where) > 0;
    }

    public <T> T load(int id) {
        Class<?>[] funIntf = this.mapper.getClass().getInterfaces();
        Class<?> mapperClazz = null;
        if (funIntf != null && funIntf.length > 0) {
            mapperClazz = funIntf[0];
        }

        Class<?> entityClzz = this.getEntityClass(mapperClazz);
        TableMetadata tm = TableMetadata.forClass(entityClzz);
        String where = MessageFormat.format("where  {0}={1}", tm.getPkColumn(), id);
        List list = this.getEntity(where);
        return list == null ? null : list.get(0);
    }

    public <T> T load(String where) {
        List<T> list = this.mapper.getEntitys(where);
        return list != null && list.size() != 0 ? list.get(0) : null;
    }

    public <T> List<T> query(String nativateSql) {
        return this.mapper.query(nativateSql);
    }

    public List<HashMap<String, Object>> queryToMap(String nativateSql) {
        return this.mapper.queryToMap(nativateSql);
    }

    public int executeUpdate(String sql) {
        return this.mapper.nativeUpdate(sql);
    }
}
类.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

w1066602520 发表于 2022-4-19 10:31
看不懂啊
lhlking 发表于 2022-4-19 10:35
凭我小学的拼音水平,感觉像是什么会员之类的
若无zz 发表于 2022-4-19 10:40
就是一个扩展的Service  可以理解为是个有一堆基础方法的基类, 单表CRUD操作都包含,减少开发工作量
icysky0605 发表于 2022-4-19 10:42
这不就是个框架中的数据操作类喽,已经集成了几个常用的对象操作功能,更新,删除,判断存在等,有啥不明白的?
若无zz 发表于 2022-4-19 10:42
lhlking 发表于 2022-4-19 10:35
凭我小学的拼音水平,感觉像是什么会员之类的

以我幼儿园的拼音水平,感觉我也没必要上小学了
157239486 发表于 2022-4-19 10:42
这个是mvc架构里的servcie层,调用数据库的,mapper就是对应数据库的操作,至于具体的业务逻辑你得自己知道。
du2009 发表于 2022-4-19 11:07
直接引用应该就可以。
头像被屏蔽
xiadongming 发表于 2022-4-19 22:01
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 15:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表