/*
* 因为数据库表很多,而且表名都特别长,如果不注意很容易输入错误。
* 为了输入方便,所以把各个表单词的头文字提取出来,作为输入法的热键
* 热键和实际的表名一一对应,生成一个字典。然后导入输入法。笔者以Google输入法为例。
*
* example:
* ehd->ELE_HISTORY_DEFINITION
* eccs->ELE_CUSTTRADE_CONTRL_SET
*/
import java.io.File;
import java.io.FileReader;
import java.io.LineNumberReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class DictGenerator {
/**
* @param args
* @throws IOException
* @throws InterruptedException
*/
private List<String> lst = new ArrayList<String>();
private Map<String , String> dict = new HashMap<String , String>();
//如果key相同,把后者自动加一
private int maker = 1;
public static void main(String[] args) throws Exception {
String path = "C:\\s.txt";
DictGenerator dic = new DictGenerator();
dic.locatedFile(path);
dic.calc();
}
/*
* 生成key
*/
public String generate(String original){
StringBuilder outputStr = new StringBuilder();
char prefix = original.trim().charAt(0);
outputStr.append(Character.toString(prefix));
for ( int i = 0 ; i<original.trim().length();i++ ){
if ( original.charAt(i) == '_'){
char key = original.charAt(i+1);
outputStr.append(Character.toString(key));
}
}
String key = outputStr.toString().toLowerCase();;
//当key相同时的处理逻辑,不好!
if ( !lst.contains(key) ){
lst.add(key);
dict.put(key, original);
return key;
}else{
String temp = key + (maker++);
lst.add(temp);
dict.put(temp, original);
return temp;
}
}
/*
* 根据源文件,打印key与实际表名。
*/
public void locatedFile(String sourcePath) throws Exception{
FileReader reader = new FileReader(new File(sourcePath));
LineNumberReader br = new LineNumberReader(reader);
String str = null;
while ( (str=br.readLine()) != null){
System.out.print(this.generate(str)+ "\t");
System.out.println(str);
}
br.close();
reader.close();
}
public void calc(){
System.out.println("list个数:" + lst.size());
System.out.println("map键值数:" + dict.size());
}
}
分享到:
相关推荐
鼎捷MES 数据库表名与字段名文档,鼎捷MES数据库结构!
生成数据库字典的目的在于提供一个清晰的数据模型概述,帮助数据库管理员和开发人员更好地理解和维护数据库。 2. **生成过程**:通过配置App.config文件,用户可以设置数据库连接信息,包括数据库类型(如MySQL, ...
"MSSQL数据库字典生成器"是一款专门针对Microsoft SQL Server...对于团队协作,尤其是在项目交接或者数据库维护时,数据库字典生成器的作用尤为重要,因为它确保了所有团队成员都能对数据库有一个清晰、一致的理解。
数据字典是数据库管理系统中的一个重要组成部分,它包含了数据库中所有对象的详细信息,如表、视图、存储过程、触发器、索引等。DBDocumentGenerator能自动收集这些信息,生成清晰、规范的数据字典,帮助用户理解...
数据库字典是数据库管理系统中的一个重要组成部分,它存储了数据库中所有对象的元数据,如表、视图、索引、存储过程、函数等。这些元数据提供了关于数据库结构的关键信息,有助于数据库设计、优化和维护。 数据库...
能够根据目前数据库中的表信息,自动生成excel格式的数据字典! 适用项目中后期补开发文档用!超方便!
数据库字典生成器是一种工具,它能够自动生成关于数据库结构的详细文档,也称为数据库模型或数据字典。数据字典在信息系统设计和管理中扮演着至关重要的角色,因为它提供了数据库中所有对象(如表、视图、索引、存储...
数据库逆向工程是一种重要的数据库管理和开发技术,它主要用于从现有的数据库中提取结构信息,然后将这些信息转换为可读性更高、易于理解的形式,如数据字典或模型图。在这个过程中,开发者可以清晰地了解数据库的...
这个“程序员专用数据库字典生成器”显然是针对开发人员设计的,旨在简化数据库管理和维护过程中的文档编写工作。 数据库字典通常包含以下关键信息: 1. **表名**:数据库中的每个数据存储单元,可以理解为电子...
通过java jdbc 链接MySQL数据库,生成数据字典下载到xlsx 单main方法执行 String dbName = "activationservice"; String URL = "jdbc:mysql://127.0.0.1:3306/" + dbName + "?characterEncoding=utf-8&serverTime...
数据字典是数据库管理系统中的一个重要组成部分,它记录了数据库中所有对象的相关信息,如表、字段、索引、视图等的定义、属性和关系。本资源提供的“数据库转成数据字典工具类”旨在帮助IT专业人士高效地从现有的...
1. **表名**:这是数据库中存储数据的主要单元,每个表代表一个实体或概念。 2. **字段名**:表内的列称为字段,每个字段对应一个特定的数据项。 3. **数据类型**:字段可以有不同的数据类型,如整型、浮点型、字符...
Java生成数据库字典表MySQL Doc-Generator是一款实用的工具,旨在帮助开发者将MySQL数据库中的表结构信息导出为Word文档,方便进行数据库设计文档的整理和分享。这个工具简化了手动编写数据库字典表的过程,提高了...
因为工作需要,找了几个数据库字典生成工具,感觉要么就是大高大上,操作复杂,安装复杂,要么就是要注册不可免费用,我就自己动手写了一个,用查询字典和报表技术来实现的,借助于微软的DLL配置连接串,感觉比较...
总的来说,数据库字典生成器是一个高效实用的工具,它利用C#编程语言,对SQL Server和Oracle等数据库进行扫描,将数据库结构转化为易于查阅的CHM文档,极大地提升了数据库管理和维护的效率。对于开发人员和数据库...
Mysql数据库字典一键生成工具,傻瓜式操作,一键即可,成功率百分之九十九!支持Mysql、SQL2005、Oracel三种数据库;提供CHM、WORD、HTML三种导出格式,并且可以自定义HTML风格;
数据字典生成工具是数据库管理和开发过程中的一个重要辅助工具,它可以帮助我们整理并记录数据库的结构、表、字段以及相关的约束信息,便于理解和维护数据库。本工具特别针对SQL、MySQL和Oracle这三种主流的关系型...
一个高效的数据字典生成器能够极大地提高数据库管理和维护的效率。以下是对"数据字典生成器 支持多种数据库,可生成word格式的数据字典"这一主题的详细解释。 1. 数据字典生成器: 数据字典生成器是一种工具,用于...
首先,数据字典的生成是数据库设计过程中的一个关键步骤。它提供了关于数据库结构、数据类型、约束和关系的清晰视图,有助于确保数据的一致性和准确性。通过使用专门的工具如PdmReader,我们可以自动化这个过程,...