编写powerdesigner字段数据设计文档

package com.winway.wcloud.protal.gym;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;

import com.mysql.jdbc.PreparedStatement;

public class ConnectionManager {
    private static Connection conn;
    private static Statement statement;
    public static Connection getConnection(){
        String driver="com.mysql.jdbc.Driver";
        String url="jdbc:mysql://127.0.0.1:3306/c79740000011";
        String user="root";
        String password="123456";
        try {
            Class.forName(driver);
            conn=DriverManager.getConnection(url, user, password);

        } catch (ClassNotFoundException | SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return conn;
    }
    public static void close(PreparedStatement statement,ResultSet resultSet){
        /*if(){

        }*/
    }

    public static void save(List<World> list){
        String sql=getSql(list);
        System.out.println(sql);
        if(sql==null){
            return;
        }
        try {
            if(getConnection()==null){
                System.out.println("连接失败");
                return;
            }
            Statement statement=getConnection().createStatement();
            //删除
            String delete="delete from gym_world";
            boolean dele=statement.execute(delete);
            System.out.println("是否删除"+dele);
            int line=statement.executeUpdate(sql);
            System.out.println("插入["+line+"]行");
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
                try {
                    if(statement!=null)statement.close();
                    if(conn!=null)conn.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
        }
    }
    public static String getSql(List<World> list){
        StringBuffer sqlBf=new StringBuffer("insert into gym_world values ");
        if(list==null||list.size()==0){
            return null;
        }
        for(int i=0;i<list.size();i++){

            sqlBf.append("(‘").append(list.get(i).getXh()).append("‘,");
            sqlBf.append("‘"+list.get(i).getName()).append("‘,");
            sqlBf.append("‘"+list.get(i).getDesc()).append("‘,");
            sqlBf.append("‘"+list.get(i).getDataType()).append("‘,");
            sqlBf.append("‘"+list.get(i).getLength()).append("‘,");
            sqlBf.append("‘"+list.get(i).getIsNull()).append("‘,");
            sqlBf.append("‘").append("‘");
            sqlBf.append(")");
            if(i!=(list.size()-1)){
                sqlBf.append(",");
            }
        }
        return sqlBf.toString();
    }
}
//////////////////////////////////////////////////////////////////////entity反射注释///////////////////////////////////////////////////////////////////////////
package com.winway.wcloud.protal.gym;

import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

import com.winway.edcollection.data.entity.EcTowerEntity;
import com.winway.edcollection.data.entity.EdpOrgInfoEntity;
import com.winway.edcollection.data.entity.EdpRoleInfoEntity;
import com.winway.edcollection.data.entity.EdpRoleUserEntity;
import com.winway.edcollection.data.entity.EdpUserInfoEntity;
import com.winway.edcollection.data.entity.FDamagedDevEntity;
import com.winway.edcollection.data.entity.FMeteorologicalDevEntity;
import com.winway.edcollection.data.entity.FMeteorologicalLogEntity;
import com.winway.edcollection.data.entity.FRealLogEntity;
import com.winway.edcollection.data.entity.FTripEntity;
import com.winway.edcollection.data.entity.FWarningDevEntity;
import com.winway.edcollection.data.entity.FWarningEntity;
import com.winway.edcollection.data.entity.FWarningRecipientEntity;
import com.winway.edcollection.data.entity.TfDamagedDevItem;
import com.winway.edcollection.data.entity.TfDamagedDevTower;
import com.winway.edcollection.data.entity.TfPossiblePathEntity;
import com.winway.edcollection.data.entity.TfRealPointsEntity;
import com.winway.edcollection.data.entity.TfTyphoonEntity;
import com.winway.edcollection.data.entity.TfYbPointsEntity;

public class ExcuteClassEntityColumn {
    public static List<World> getTable(Class<?> clazz){
        List<World> list=new ArrayList<World>();
        //Class<TfTyphoonEntity> clazz=TfTyphoonEntity.class;
        Field[] fields=clazz.getDeclaredFields();
        int indexJ=1;
        for(Field field:fields){
            Annotation[]  annos=field.getAnnotations();
            for(Annotation annotation:annos){
                //System.out.println(annotation.toString());
                if(annotation.toString().contains("@com.winway.wcloud.dbcore.annotation.Id")){
                    continue;
                }
                String annotationStr=annotation.toString();
                String name=annotationStr.substring(annotationStr.indexOf("name=")+5, annotationStr.indexOf(")")).toUpperCase();
                String descccc=annotationStr.substring(annotationStr.indexOf("desc="));

                String desc=descccc.substring(descccc.indexOf("desc=")+5, descccc.indexOf(","));
                String dataType11=annotationStr.substring(annotationStr.indexOf("dataType="));
                String dataType=dataType11.substring(dataType11.indexOf("dataType=")+9, dataType11.indexOf(","));
                String length11=annotationStr.substring(annotationStr.indexOf("length="));
                String length=length11.substring(length11.indexOf("length=")+7, length11.indexOf(","));
                String isNull11=annotationStr.substring(annotationStr.indexOf("isNull="));
                String isNull=isNull11.substring(isNull11.indexOf("isNull=")+7, isNull11.indexOf(","));
                if(isNull.equals("true")){
                    isNull="否";
                }else{
                    isNull="否";
                }
                if(dataType.toUpperCase().endsWith("STRING")){
                    dataType="VARCHAR";
                }
                if(dataType.toUpperCase().endsWith("DECIMAL")){
                    dataType="DOUBLE";
                    length="0";
                }
                System.out.println(indexJ+" "+name+" "+desc+" "+" "+dataType+" "+length+" "+isNull);
                World world=new World(indexJ,name, desc, dataType, Integer.valueOf(length), isNull);
                list.add(world);
                indexJ++;
            }
        }
        return list;
    }
    public static void main(String[] args) {
        //读取entity反射
        List<World> list=ExcuteClassEntityColumn.getTable(EcTowerEntity.class);
        ConnectionManager.save(list);
    }

}
/////////////////////////////////////////////////////////////////////////////Excel内容保持到数据库里////////////////////////////////////////////////////////////////////
package com.winway.wcloud.protal.gym;

import java.io.File;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

import com.winway.wcloud.protal.util.Excel2DBUtils;

public class ExcuteExcelContent {
    static String[] heads={"Name","Code","Data Type","Length"};
    public static List<World> readData(){
        List<World> worlds=new ArrayList<World>();
        Workbook workBook = null;
        Sheet sheet;
        Row row;
        Cell cell;
        try {
            workBook=WorkbookFactory.create(new File("C:/Users/gym/Desktop/world.xlsx"));
            sheet=workBook.getSheetAt(0);
            int rowlastNum=sheet.getLastRowNum();
            int xh=1;
            for(int rowindex=2;rowindex<=rowlastNum;rowindex++){
                boolean reg=false;
                row=sheet.getRow(rowindex);
                World world=new World();
                if(row==null){
                    continue;
                }
                for(int i=0;i<heads.length;i++){
                    cell=row.getCell(i);
                    String value=getCellValue(cell);
                    System.out.println(value);
                    if(i==0&&(value==null||value.equals(""))){
                        break;
                    }
                    changeValue(i, value, world);
                    reg=true;
                }
                if(reg){
                    world.setRemark("");
                    world.setIsNull("否");
                    world.setXh(xh);
                    System.out.println();
                    worlds.add(world);
                    xh++;
                }
            }
        } catch (EncryptedDocumentException | InvalidFormatException
                | IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            try {
                if(workBook!=null)workBook.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return worlds;
    }
    static void changeValue(int i,String value,World world){
        switch (heads[i]) {
        case "Name":
            world.setDesc(value);
            break;
        case "Code":
            world.setName(value);
            break;
        case "Data Type":
            if(value.contains("varchar")){
                value="VARCHAR";
            }
            world.setDataType(value.toUpperCase());
            break;
        case "Length":
            if(value==null||value.equals("")){
                world.setLength(0);
            }else{
                world.setLength(Integer.valueOf(value));
            }
            break;

        default:
            break;
        }

    }
    public static String getCellValue(Cell cell) {
        if(cell==null){
            return null;
        }
        String value = "";
        // 以下是判断数据的类型
        switch (cell.getCellType()) {
        case Cell.CELL_TYPE_NUMERIC:
            value = cell.getNumericCellValue() + "";
            if (DateUtil.isCellDateFormatted(cell)) {
                Date date = cell.getDateCellValue();
                if (date != null) {
                    value = new SimpleDateFormat("yyyy-MM-dd").format(date);
                } else {
                    value = "";
                }
            } else {
                value = new DecimalFormat("0").format(cell.getNumericCellValue());
            }
            break;
        case Cell.CELL_TYPE_STRING: // 字符串
            value = cell.getStringCellValue();
            break;
        case Cell.CELL_TYPE_BOOLEAN: // Boolean
            value = cell.getBooleanCellValue() + "";
            break;
        case Cell.CELL_TYPE_FORMULA: // 公式
            value = cell.getCellFormula() + "";
            break;
        case Cell.CELL_TYPE_BLANK: // 空值
            value = "";
            break;
        case Cell.CELL_TYPE_ERROR: // 故障
            value = "非法字符";
            break;
        default:
            value = "未知类型";
            break;
        }
        return value;
    }
    public static void main(String[] args) {
        List<World> list=ExcuteExcelContent.readData();
        ConnectionManager.save(list);
    }

}
/*
Navicat MySQL Data Transfer

Source Server         : 广西
Source Server Version : 50637
Source Host           : localhost:3306
Source Database       : c79740000011

Target Server Type    : MYSQL
Target Server Version : 50637
File Encoding         : 65001

Date: 2018-03-06 15:39:03
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for gym_world
-- ----------------------------
DROP TABLE IF EXISTS `gym_world`;
CREATE TABLE `gym_world` (
  `xh` int(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `desc` varchar(255) DEFAULT NULL,
  `dataType` varchar(255) DEFAULT NULL,
  `length` int(100) DEFAULT NULL,
  `isNull` varchar(255) DEFAULT NULL,
  `remark` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

-- ----------------------------
-- Records of gym_world
-- ----------------------------
INSERT INTO `gym_world` VALUES (‘1‘, ‘TF_EVALUATION_RESULT_ID‘, ‘结果ID‘, ‘INT‘, ‘0‘, ‘否‘, ‘‘);
INSERT INTO `gym_world` VALUES (‘2‘, ‘EVALUATION_TIME‘, ‘评估时间‘, ‘DATETIME‘, ‘0‘, ‘否‘, ‘‘);
INSERT INTO `gym_world` VALUES (‘3‘, ‘CAPTION‘, ‘标题‘, ‘VARCHAR‘, ‘50‘, ‘否‘, ‘‘);
INSERT INTO `gym_world` VALUES (‘4‘, ‘GRADE‘, ‘评分‘, ‘DOUBLE‘, ‘0‘, ‘否‘, ‘‘);
INSERT INTO `gym_world` VALUES (‘5‘, ‘GRADE_LEVEL‘, ‘评分等级‘, ‘INT‘, ‘0‘, ‘否‘, ‘‘);
INSERT INTO `gym_world` VALUES (‘6‘, ‘RESULT_DESC‘, ‘结果描述‘, ‘VARCHAR‘, ‘100‘, ‘否‘, ‘‘);
INSERT INTO `gym_world` VALUES (‘7‘, ‘RESULT_SHOW‘, ‘结果显示‘, ‘VARCHAR‘, ‘300‘, ‘否‘, ‘‘);

原文地址:https://www.cnblogs.com/gym2017/p/8514654.html

时间: 2024-10-12 16:37:02

编写powerdesigner字段数据设计文档的相关文章

Storm项目:流数据监控1《设计文档…

该文档为实实在在的原创文档,转载请注明作者及出处. 类型 详细 备注 2 该文档为原创模拟项目:流数据监控<1>文档<流数据监控设计文档>,相继会给出流数据监控<2>文档<流数据监控代码解析>及其他文档 2  该部分有源码(熬夜写出来的哦) CSDN中相应项目CODE链接:戳这里     相关描述 2  有任何其他想法,可以邮件[email protected] 2 文档及相关资料下载请到个人360云盘http://yunpan.cn/QGf2GDaRFpc

定向数据爬虫和搜索引擎(Directional Spider)设计文档

  定向数据网络爬虫和搜索引擎项目设计 (新闻数据抓取.分析.加工.检索) 版本号:            v 1.0.0 编写人:          张  文  豪 日  期:       2014年6月10日 文档说明:这个文档还在编写之中,文章中很多写在“保留”二字的不是每月东西,而是没有写.虽然没有具体实现,但是我觉得我把我的经验和思考都写进去了.虽然对于读者来说这个文档相当粗糙,但是是我一个很看重的东西.如果真的有人愿意认真阅读这篇文章,我会很开心和大家交流探讨,欢迎留言和联系我. [

什么是功能需求设计文档

在很多软件公司,特别是一些创业型的团队中,对于这样的情景可能大家都很熟悉:项目经理或者产品经理(产品狗)口头或者简单记录一下软件产品的大致要做的功能,直接就让研发团队的兄弟(程序猿)去狂撸代码.然后他就去喝茶撩妹或者回家陪老婆了... 这种撸起袖子就开干的方式,看似简单高效,便于直接沟通,能够快速迭代.却不知,发现没有一份正规且实时更新的功能需求设计文档,会付出三四倍的代价来弥补. 最终会引发一场产品狗和程序猿之间的"猿狗大战"... WHY - 为什么需要功能需求设计说明书 在没有功

java智能四子棋人机大战游戏设计(附项目,以及原创PSD,设计文档)

本项目是使用java技术+自创"假设下子"算法开发的人机大战四子棋游戏客户端. 具体项目,以及原创PSD,设计文档,在文件末尾的百度云连接. 一. 小组说明: 组名:CST 组长:陈飞良(C): 组员: 沈珂 (S): 谭明航 (T): 二.分工说明: ①算法思想上: 本程序的代码实现思想由三人共同讨论得出,其中组员沈珂的"假设下子"思想尤为精妙,让代码实现更为简单,在这基础上,组员谭明航 ,心思缜密,考虑到各种特殊情况,让整个更加智能.组长陈飞良则负责在他们的基础

软件需求工程与建模--搜索引擎项目--设计文档

第一章      绪论 一.  搜索引擎出现的背景及意义 网络的出现以及发展对于世界发展的意义是极其重要的,它让地球村的理念变成的现实,信息的传输不再受到时间和空间的限制. 随着网络技术和应用的不断发展,互联网已经成为了信息的重要来源地,人们越来越依靠网络来査找他们所需要的信息.我们所处的是一个信息爆炸的时代, Google的索引在1998年开始工作,当时他们]收集了2600万个页面,2000年就突破了10亿,到10年后的2008年达到了1,000,000,000,000,Google的数据库变

朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素

朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素 [下载文本PDF进行阅读] 本文我会来说说我认为架构评审中应该看的一些点,以及我写设计文档的一些心得.助你在架构评审中过五关斩六将,助你写出能让人收藏点赞的设计文档. 技术架构评审 架构评审或技术方案评审的价值在于集众人的力量大家一起来分析看看方案里是否有坑,方案上线后是否会遇到不可逾越的重大技术问题,提前尽可能把一些事情先考虑到提出质疑其实对项目的健康发展有很大的好处.很多公司都有架构评审委员会都有架构评审的流程,做业务的兄弟要

设计文档1.0

今天吃啥APP设计文档 项目组长:杨乾成 张陈杰成员:林朝洋 梁翘楚 孟苏 李景怡 叶沛玟 赵昕颖 1 设计概述 1.1 条件与限制 建议系统的运行寿命:5 年 经费.投资方面的来源和限制:自营 法律和政策方面的限制:不得侵犯学生和商家权利,不得与相关政策违背 硬件环境:性能良好的服务器 开发环境:Android Stdio.MySQL.JAVA 相关的开发软件等 可利用的信息和资源:参考文献,所学的高级编程语言和数据库知识 系统投入使用的最晚时间:2 个月 1.2 运行环境概述 支持环境:An

《团队-科学计算器-设计文档》

设计文档: 项目:科学计算器 编辑器:python 所运用知识: 1.字符串的处理 2.正则表达式的运用 3.函数递归 基本思路: 需要优先处理内层括号运算--外层括号运算--先乘除后加减的原则: 1.正则处理用户输入的字符串,然后对其进行判断,判断计算公式是否有括号,有就先将计算公式进行正则处理,先获取最里层的每一个数据,然后一一计算 2.把有括号的计算公式计算出来的结果替换原来初始公式的位置,计算之前分别对重复运算符进行处理需要处理的重复运算 3.然后依次从里到外去除括号并进行计算,和位置替

《结对编项目作业名称-设计文档》

项目:关灯游戏,所用软件,pygame 成员:祁昊,刘孝东 关灯游戏设计文档: pygame作为一种游戏编程语言,以其简单性.可移植性等优点,得到了广泛地应用,特别是py使用比c,c++等语言简便,使其成为网络编程首选编程语言.,Pygame是跨平台Python模块,专为电子游戏设计.基于这样一个设想,所有需要的游戏功能和理念都(主要是图像方面)都完全简化为游戏逻辑本身,所有的资源结构都可以由高级语言提供,如Python.工具tile编辑器和一个关卡编辑器.得到广大程序员的接受和认可. "关灯游