尚医通——数据字典开发

2023-10-27

这里写目录标题

一、数据字典介绍

何为数据字典?数据字典就是管理系统常用的分类数据或者一些固定数据,例如:省市区三级联动数据、民族数据、行业数据、学历数据等,由于该系统大量使用这种数据,所以我们要做一个数据管理方便管理系统数据,一般系统基本都会做数据管理。

parent_id:
上级id,通过id与parent_id构建上下级关系,例如:我们要获取所有行业数据,那么只需要查询parent_id=20000的数据

name:名称,例如:填写用户信息,我们要select标签选择民族,“汉族”就是数据字典的名称

value:值,例如:填写用户信息,我们要select标签选择民族,“1”(汉族的标识)就是数据字典的值

dict_code:编码,编码是我们自定义的,全局唯一,例如:我们要获取行业数据,我们可以通过parent_id获取,但是parent_id是不确定的,所以我们可以根据编码来获取行业数据
http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/index.html
说明:系统中会使用省市区三级联动数据,该数据我们来自“国家统计局”官方数据,地址:http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/index.html

根据页面效果分析数据接口
数据字典是树形展示,由于数据众多,我们使用“树形数据与懒加载”的方式展现数据列表,其他就是对数据的新增、修改与删除操作,因此需要提供的接口如下:

1,根据上级id获取下级数据(构造树形数据),参考文档:https://element.eleme.cn/#/zh-CN/component/table,页面搜索:树形数据与懒加载
2,导入接口
3,导出接口

接下来我们封装服务器端数据接口,接口测试通过后再做页面渲染

二、数据字典开发

1,搭建service-cmn模块

1.1 搭建service-cmn模块

搭建过程参考service-hosp模块

1.2 修改配置

修改pom.xml

<?xml version="1.0"encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.atguigu.yygh</groupId>
<artifactId>service</artifactId>
<version>1.0</version>
</parent>

<version>1.0</version>
<artifactId>service-cmn</artifactId>
<packaging>jar</packaging>
<name>service-cmn</name>
<description>service-cmn</description>

<dependencies>
</dependencies>

<build>
<finalName>service-cmn</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>

1、添加配置文件application.properties

# 服务端口
server.port=8202
# 服务名
spring.application.name=service-cmn

# 环境设置:dev、test、prod
spring.profiles.active=dev

# mysql数据库连接
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.44.165:3306/yygh_cmn?characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root123

#返回json的全局时间格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

1.3 启动类

package com.atguigu.yygh;

@SpringBootApplication
public class ServiceCmnApplication {
public static void main(String[] args) {
      SpringApplication.run(ServiceCmnApplication.class, args);
   }
}

2、数据字典列表

根据element组件要求,返回列表数据必须包含hasChildren字典,如图:
https://element.eleme.cn/#/zh-CN/component/table

2.1 数据字典列表接口

2.1.1 model模块添加数据字典实体

在model模块查看实体:com.atguigu.yygh.model.cmn.Dict

@Data
@ApiModel(description = "数据字典")
@TableName("dict")
public class Dict extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "上级id")
    @TableField("parent_id")
    private Long parentId;

    @ApiModelProperty(value = "名称")
    @TableField("name")
    private String name;

    @ApiModelProperty(value = "值")
    @TableField("value")
    private String value;

    @ApiModelProperty(value = "编码")
    @TableField("dict_code")
    private String dictCode;

    @ApiModelProperty(value = "是否包含子节点")
    @TableField(exist = false)
    private boolean hasChildren;
}

说明:hasChildren为树形组件所需字典,标识为数据库表不存在该字段

2.1.2 添加数据字典mapper

添加com.atguigu.yygh.cmn.mapper.DictMapper

public interface DictMapper extends BaseMapper<Dict> {
}

2.1.3 添加数据字典service

1、添加com.atguigu.yygh.cmn.service.DictService

public interface DictService extends IService<Dict> {
    //根据数据id查询子数据列表
    List<Dict> findChlidData(Long id);
}

2、添加com.atguigu.yygh.cmn.service.impl.DictServiceImpl接口实现

@Service
public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements DictService {
    //根据数据id查询子数据列表
    @Override
    public List<Dict> findChlidData(Long id) {
        QueryWrapper<Dict> wrapper = new QueryWrapper<>();
        wrapper.eq("parent_id",id);
        List<Dict> dictList = baseMapper.selectList(wrapper);
        //向list集合每个dict对象中设置hasChildren
        for (Dict dict:dictList) {
            Long dictId = dict.getId();
            boolean isChild = this.isChildren(dictId);
            dict.setHasChildren(isChild);
        }
        return dictList;
    }
    //判断id下面是否有子节点
    private boolean isChildren(Long id) {
        QueryWrapper<Dict> wrapper = new QueryWrapper<>();
        wrapper.eq("parent_id",id);
        Integer count = baseMapper.selectCount(wrapper);
        // 0>0    1>0
        return count>0;
    }
}

2.1.4 添加数据字典controller

添加com.atguigu.yygh.cmn.controller.DictController

@Api(description = "数据字典接口")
@RestController
@RequestMapping("/admin/cmn/dict")
public class DictController {

    @Autowired
    private DictService dictService;

    //根据数据id查询子数据列表
    @ApiOperation(value = "根据数据id查询子数据列表")
    @GetMapping("findChildData/{id}")
    public Result findChildData(@PathVariable Long id) {
        List<Dict> list = dictService.findChlidData(id);
        return Result.ok(list);
    }
}

2.2 数据字典列表前端

2.2.1 添加路由

在 src/router/index.js 文件添加路由

  {
    path: '/cmn',
    component: Layout,
    redirect: '/cmn/list',
    name: '数据管理',
    alwaysShow: true,
    meta: { title: '数据管理', icon: 'example' },
    children: [
      {
        path: 'list',
        name: '数据字典',
        component: () => import('@/views/dict/list'),
        meta: { title: '数据字典', icon: 'table' }
      }
    ]
  },

说明:列表与查看都添加了

2.2.2 定义api

创建文件 src/api/cmn/dict.js

export default {
  dictList(id) {//数据字典列表
    return request ({
      url: `/admin/cmn/dict/findChildData/${id}`,
      method: 'get'
    })
  }
}

2.2.2 方法调用

<script>
import dict from '@/api/dict'
export default {
    data() {
        return {
            list:[] //数据字典列表数组
        }
    },
    created() {
        this.getDictList(1)
    },
    methods: {
        //数据字典列表
        getDictList(id) {
            dict.dictList(id)
                .then(response => {
                    this.list = response.data
                })
        },
        getChildrens(tree, treeNode, resolve) {
            dict.dictList(tree.id).then(response => {
                resolve(response.data)
            })
        }
    }
}
</script>

2.2.3 表格渲染

<template>
    <div class="app-container">
        <el-table
        :data="list"
        style="width: 100%"
        row-key="id"
        border
        lazy
        :load="getChildrens"
        :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
            <el-table-column label="名称" width="230" align="left">
            <template slot-scope="scope">
            <span>{{ scope.row.name }}</span>
            </template>
            </el-table-column>

            <el-table-column label="编码" width="220">
            <template slot-scope="{row}">
                    {{ row.dictCode }}
            </template>
            </el-table-column>
            <el-table-column label="值" width="230" align="left">
            <template slot-scope="scope">
            <span>{{ scope.row.value }}</span>
            </template>
            </el-table-column>
            <el-table-column label="创建时间" align="center">
            <template slot-scope="scope">
            <span>{{ scope.row.createTime }}</span>
            </template>
            </el-table-column>
        </el-table>
    </div>
</template>

三、数据字典导出

3.1 导出接口封装

3.1.1 在model模块添加导出实体

在model模块查看实体:com.atguigu.yygh.vo.cmn.DictEeVo

package com.atguigu.yygh.vo.cmn;

@Data
public class DictEeVo {

@ExcelProperty(value = "id",index = 0)
private Long id;

@ExcelProperty(value = "上级id",index = 1)
private Long parentId;

@ExcelProperty(value = "名称",index = 2)
private String name;

@ExcelProperty(value = "值",index = 3)
private String value;

@ExcelProperty(value = "编码",index = 4)
private String dictCode;

}

3.1.2 在service-cmn模块添加service方法

1、在DictService类添加接口

/**
 * 导出
 * @param response
*/
void exportData(HttpServletResponse response);

2、在DictServiceImpl类添加接口实现类

@Override
public void exportData(HttpServletResponse response) {
try {
      response.setContentType("application/vnd.ms-excel");
      response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
String fileName = URLEncoder.encode("数据字典", "UTF-8");
      response.setHeader("Content-disposition", "attachment;filename="+ fileName + ".xlsx");

      List<Dict> dictList = dictMapper.selectList(null);
      List<DictEeVo> dictVoList = new ArrayList<>(dictList.size());
for(Dict dict : dictList) {
         DictEeVo dictVo = new DictEeVo();
         BeanUtils.copyBean(dict, dictVo, DictEeVo.class);
         dictVoList.add(dictVo);
      }

      EasyExcel.write(response.getOutputStream(), DictEeVo.class).sheet("数据字典").doWrite(dictVoList);
   } catch (IOException e) {
      e.printStackTrace();
   }
}

说明:直接复制示例代码中的“web中的写”,改造即可

3.1.3 在service-cmn模块添加controller方法

在DictController类添加方法

@ApiOperation(value="导出")
@GetMapping(value = "/exportData")
public void exportData(HttpServletResponse response) {
dictService.exportData(response);
}

3.1.4 测试

直接通过浏览器导出数据:http://localhost:8202/admin/cmn/dict/exportData

3.2 导出前端实现

3.2.1 列表页面添加导出按钮

src/views/cmn/dict/list.vue

<div class="el-toolbar">
<div class="el-toolbar-body"style="justify-content: flex-start;">
<el-button type="text"@click="exportData"><i class="fa fa-plus"/> 导出</el-button>
</div>
</div>

3.2.2 添加导出方法

exportData() {
window.location.href = 'http://localhost:8202/admin/cmn/dict/exportData'
}

四、数据字典导入

4.1 导入接口封装

4.1.1 创建回调监听器

public class DictListener extends AnalysisEventListener<DictEeVo> {

    private DictMapper dictMapper;
    public DictListener(DictMapper dictMapper) {
        this.dictMapper = dictMapper;
    }

    //一行一行读取
    @Override
    public void invoke(DictEeVo dictEeVo, AnalysisContext analysisContext) {
        //调用方法添加数据库
        Dict dict = new Dict();
        BeanUtils.copyProperties(dictEeVo,dict);
        dictMapper.insert(dict);
    }
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }
}

4.1.2 在service-cmn模块添加service方法

//导入数据字典
@Override
public void importDictData(MultipartFile file) {
    try {
        EasyExcel.read(file.getInputStream(),DictEeVo.class,new DictListener(baseMapper)).sheet().doRead();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

4.1.3 在service-cmn模块添加controller方法

在DictController类添加方法

@ApiOperation(value = "导入")
@PostMapping("importData")
public Result importData(MultipartFile file) {
 dictService.importData(file);
 return Result.ok();
}

4.2 导入前端实现

4.2.1 列表页面添加导入按钮

src/views/cmn/dict/list.vue
<el-button type="text"@click="importData"><i class="fa fa-plus"/> 导入</el-button>

说明:按钮位置与导出并列

4.2.2 添加导入弹出层

<el-dialog title="导入":visible.sync="dialogImportVisible"width="480px">
<el-form label-position="right"label-width="170px">

<el-form-item label="文件">
<el-upload
:multiple="false"
:on-success="onUploadSuccess"
:action="'http://localhost:8202/admin/cmn/dict/importData'"
class="upload-demo">
<el-button size="small"type="primary">点击上传</el-button>
<div slot="tip"class="el-upload__tip">只能上传xls文件,且不超过500kb</div>
</el-upload>
</el-form-item>

</el-form>
<div slot="footer"class="dialog-footer">
<el-button @click="dialogImportVisible = false">
      取消
</el-button>
</div>
</el-dialog>

4.2.3 添加弹出可见模型

// 定义数据
data() {
return {
list: [],
listLoading: true,
dialogImportVisible: false
}
}

4.2.4 添加方法

importData() {
this.dialogImportVisible = true
},

onUploadSuccess(response, file) {
this.$message.info('上传成功')
this.dialogImportVisible = false
  this.fetchData()
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尚医通——数据字典开发 的相关文章

  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • 如何使用 Ansible playbook 中的 service_facts 模块检查服务是否存在且未安装在服务器中?

    我用过service facts检查服务是否正在运行并启用 在某些服务器中 未安装特定的软件包 现在 我如何知道这个特定的软件包没有安装在该特定的服务器上service facts module 在 Ansible 剧本中 它显示以下错误
  • 使用 on_bad_lines 将 pandas.read_csv 中的无效行写入文件

    我有一个 CSV 文件 我正在使用 Python 来解析该文件 我发现文件中的某些行具有不同的列数 001 Snow Jon 19801201 002 Crom Jake 19920103 003 Wise Frank 19880303 l
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • BeautifulSoup 中的嵌套标签 - Python

    我在网站和 stackoverflow 上查看了许多示例 但找不到解决我的问题的通用解决方案 我正在处理一个非常混乱的网站 我想抓取一些数据 标记看起来像这样 table tbody tr tr tr td td td table tr t
  • Flask如何获取请求的HTTP_ORIGIN

    我想用我自己设置的 Access Control Allow Origin 标头做出响应 而弄清楚请求中的 HTTP ORIGIN 参数在哪里似乎很混乱 我在用着烧瓶 0 10 1 以及HTTP ORIGIN似乎是这个的特点之一object
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 向 Altair 图表添加背景实心填充

    I like Altair a lot for making graphs in Python As a tribute I wanted to regenerate the Economist graph s in Mistakes we
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • 使用其构造函数初始化 OrderedDict 以便保留初始数据的顺序的正确方法?

    初始化有序字典 OD 以使其保留初始数据的顺序的正确方法是什么 from collections import OrderedDict Obviously wrong because regular dict loses order d O
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc

随机推荐

  • Word不同页面设置不同页眉

    Word不同页面设置不同页眉 每页加上分页符号 取消链接到前一页 实现任意页面页眉不一样 每页加上分页符号 取消链接到前一页
  • python:批量对文件匹配excel改名

    需求 需要将excel内文件名所对应的修改应用到实际文件中 思路 1 读取文件的名字 2 打开excel 3 将文件名与excel内文件名做循环匹配 4 匹配上后 读取相邻单元格所需修改的数据 5 然后改名 保存 先上结果 然后上代码 im
  • 论文笔记:Tip-Adapter: Training-free CLIP-Adapter for Better Vision-Language Modeling详解

    论文 https arxiv org abs 2111 03930 代码 GitHub gaopengcuhk Tip Adapter 摘要 对比性视觉语言预训练模型 即CLIP 为使用大规模图像 文本对学习视觉表征提供了一个新的范式 它通
  • --------三种简单的程序设计模式实例

    1 题目名称 1 简单工厂模式 使用简单工厂模式模拟女娲 Nvwa 造人 Person 如果传入参数M 则返回一个Man对象 如果传入参数W 则返回一个Woman对象 请实现该场景 现需要增加一个新的Robot类 如果传入参数R 则返回一个
  • Winform无法加载基类的错误解决

    相信在vs2010进行开发的人 如果用到了继承窗体的功能 基本上都会遇到 无法加载基类 的错误 这类错误说大也不大 可说小也不小 基本上都是vs2010分析数据时遇到错误造成的 基本上解决方法有三 1 重新生成解决方案 2 删除第三方引用控
  • harbor离线安装

    1 介绍 Docker容器应用的开发和运行离不开可靠的镜像管理 虽然Docker官方也提供了公共的镜像仓库 但是从安全和效率等方面考虑 部署我们私有环境内的Registry也是非常必要的 Harbor是由VMware公司开源的企业级的Doc
  • 花里胡哨的CentOS

    花里胡哨的CentOS 文章基于如下环境 WSL2下的CentOS7 下载地址为 CentOS7 在WSL2下安装CentOS7 首先启用win10或者win11的wsl2功能 这里不过多介绍 不会的自行问度娘 把下载好的CentOS7 z
  • 电脑重置网络 解决网络异常问题

    电脑重置网络可以解决网络异常问题 修复网络链接不畅问题 步骤 1 首先在屏幕左下角的开始 单点击右键 在弹出的菜单中xz选择 Windows Power Shell 管理员 A 打开命令提示符 2 然后在弹出的命令符窗口输入 netsh w
  • 主动扫描系列文章(1):nmap的基础使用

    20201024 目录 主动扫描系列文章 1 nmap的基础使用 主动扫描系列文章 2 masscan zmap扫描主机与端口 主动扫描系列文章 3 nmap与masscan的配合使用 0 引言 关于nmap的使用 这种文章网上满天飞 本篇
  • 哈夫曼树实现文件的压缩与解压

    一 哈夫曼树的构造方法 1 首先要拿到一组数据及其权重 其中每个数据都作为一颗哈夫曼树 也可以被视为一个结点 2 在这些树中找到权重最小的两棵树 将其合并为一棵树 合并方法 将这两棵树的权重相加 权重和为一个新的结点 并且为原来两棵树的父节
  • 计算均值的95%置信区间的下限值和上限值(计算置信区间)

    计算均值的95 置信区间的下限值和上限值 计算置信区间 在统计学中 置信区间是用来估计总体参数的范围 当我们想要估计总体均值的置信区间时 可以使用R语言进行计算 下面将介绍如何使用R语言计算均值的95 置信区间的下限值和上限值 首先 我们需
  • MySQL数据库之表中的数据增删改查

    前置操作 在数据库中新建表kk2 1 增 insert into 表名 字段1 字段2 values 数据1 数据2 向表中新增数据 可以选择部分字段插入数据 注意 编写插入语句时 在前面括号内写的字段和后面括号内的数据的位置 数量必须保持
  • 第二章 软件测试策略

    第二章 软件测试策略 根据mooc课程所做的笔记 课程链接 文章目录 第二章 软件测试策略 2 1 软件开发过程及模型 2 2 软件测试过程 单元测试 2 3 软件测试过程 集成测试 2 4 静态白盒测试 2 5 静态黑盒测试 2 1 软件
  • 手把手教你做计算机网络基础大题—地址分配

    一 题目 某单位分配到一个起始地址为14 24 74 0 24的地址块 该单位需要用到三个子网 它们的三个子网地址块的具体要求是 子网N1需要120个地址 子网N2需要60个地址 子网N3需要10个地址 请给出地址的分配方案 二 解答 起始
  • 通信上的RX、TX分别表示什么?

    RX 表示接收数据 Receive rx Data 的简写形式 TX 表示发送数据 Transmit tx Data 的简写形式
  • 使用 Docker-Compose部署JavaWeb项目并运行JavaWeb项目

    一共需要两个容器 Tomcat mysql 然后需要jpress的war包 创建一个新的composeJava目录 将war包放入该目录下 并且以下操作都在 该目录下进行 创建server xml 内容如下
  • 名人名言(持续更新中)

    杰克威尔逊 他说 领导者的工作 就是每天把全世界各地最优秀的人才延揽过来 他们必须热爱自己的员工 拥抱自己的员工 激励自己的员工 作为一个过来人 韦尔奇给公司领导者传授的用人秘诀是他自创的 活力曲线 一个组织中 必有20 的人是最好的 70
  • Android 删除文件功能代码

    Hello everyone 我是鲁班 一个热衷于科研和软开的胖子 亲测有效 废话不说 直接上代码 有问题评论或私信 public static boolean deleteFoder File file if file exists 判断
  • 实用插件_《FF14》将封禁一批第三方插件 其中不乏实用插件

    SE旗下人气网游 最终幻想14 Final Fantasy 14 的最新5 2版本即将上线 正在所有光之战士准备摩拳擦掌大干一场时 官方似乎给这些玩家浇了一盆冷水 先是制作人吉田直树希望玩家们在游戏中停止使用一些色情mod 然后官方表示在此
  • 尚医通——数据字典开发

    这里写目录标题 一 数据字典介绍 二 数据字典开发 1 搭建service cmn模块 1 1 搭建service cmn模块 1 2 修改配置 1 3 启动类 2 数据字典列表 2 1 数据字典列表接口 2 1 1 model模块添加数据