编写powerdesigner字段数据设计文档

Posted 学无止境、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写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, , ‘‘);

 

以上是关于编写powerdesigner字段数据设计文档的主要内容,如果未能解决你的问题,请参考以下文章

PowerDesigner使用技巧

数据库建模工具PowerDesigner总结(组图)

使用PowerDesigner工具设计数据库

如何用Powerdesigner的PDM生成数据库

如何使用PowerDesigner软件进行数据库设计(多对多关系)

与PowerDesigner相同功能的PDMan最新版本的完整下载安装使用教程