⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frameofdict.java~33~

📁 读取Oracle数据库中的所有表
💻 JAVA~33~
📖 第 1 页 / 共 4 页
字号:
                                selectRow01 = selectRow01 - count01;
                            String valueOfTable01 = table01.getValueAt(selectRow01, 0).toString();
                            if (tableName.compareTo(valueOfTable01) == 0)
                                break;
                        }
                        table01.setRowSelectionInterval(selectRow01, selectRow01);
                        rowBeSelected01 = selectRow01;

                        int index02 = rowBeSelected02;
                        int count02 = table02.getRowCount();
                        if(rowBeSelected02 >= count02) {//防止在table02中选中不存在的多余字段
                            rowBeSelected02 = 0;
                            index02 = rowBeSelected02;
                        }
                        for (int i = 1; i <= count02; i++) {//从当前选中的字段的下一个字段开始寻找,遍历table02全表一遍
                            selectRow02 = index02 + i;
                            if(selectRow02 >= count02)
                                selectRow02 = selectRow02 - count02;
                            String valueOfTable02 = table02.getValueAt(selectRow02, 1).toString();
                            if (commentValue.compareTo(valueOfTable02) == 0)
                                break;
                        }
                        table02.setRowSelectionInterval(selectRow02, selectRow02);
                        rowBeSelected02 = selectRow02;
                    }
                    if(flag == true)//如果已经寻找到所求字段,则推出此次查找
                        break;
                    c ++;
                }
                if(flag == false) {
                    JOptionPane.showMessageDialog(subframe, "没有找到所要查找的字段!");
                }
            }
        });
        menu.add(menuItem);
        //----------------------------
        menuItem = new JMenuItem("当前表查找字段名注释",KeyEvent.VK_T);
        menuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JFrame subframe = new JFrame();
                JOptionPane optionPane = new JOptionPane();
                if(fileName == " ") {
                   JOptionPane.showMessageDialog(subframe, "不存在可查询的表!");
                   return;
                }
                String commentValue = (String) optionPane.showInputDialog(subframe,
                                                                        "只对当前表进行检索,可查找该表内的重复字段。 \n"+
                                                                        "     输入所要查找字段名注释:",
                                                                        "查找字段名注释",
                                                                        JOptionPane.QUESTION_MESSAGE);
                Vector allTables = new Vector();
                allTables = dict.collectTable(fileName);
                Vector tableValue = new Vector();
                tableValue = (Vector)allTables.elementAt(rowBeSelected01);
                String tableName = tableValue.elementAt(0).toString();

                int selectRow02 = 0;
                boolean flag = false;

                if (dict.findColumnComment(fileName,tableName,commentValue)) {
                    flag = true;
                    int index02 = rowBeSelected02;
                    int count02 = table02.getRowCount();
                    if(rowBeSelected02 >= count02) {//防止在table02中选中不存在的多余字段
                        rowBeSelected02 = 0;
                        index02 = rowBeSelected02;
                    }
                    for (int i = 1; i <= count02; i++) {//从当前选中的字段的下一个字段开始寻找,遍历table02全表一遍
                        selectRow02 = index02 + i;
                        if(selectRow02 >= count02)
                            selectRow02 = selectRow02 - count02;
                        String valueOfTable02 = table02.getValueAt(selectRow02, 1).toString();
                        if (commentValue.compareTo(valueOfTable02) == 0)
                            break;
                    }
                    table02.setRowSelectionInterval(selectRow02, selectRow02);
                    rowBeSelected02 = selectRow02;
                }
                if(flag == false) {
                    JOptionPane.showMessageDialog(subframe, "没有找到所要查找的字段!");
                }
            }
        });
        menu.add(menuItem);

        //----------------------------
        menuBar.add(menu);
        //----------------------------------------------------------------------
        menu = new JMenu("帮助");
        //----------------------------
        menuItem = new JMenuItem("关于...",KeyEvent.VK_T);
        menuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JFrame subframe = new JFrame();
                JOptionPane optionPane = new JOptionPane();
                optionPane.showMessageDialog(subframe, "数据字典 \n"
                                             +" 1.连接数据库,并读入数据库文件,对数据库文件形成可查询的数据字典。\n "
                                             +"2.连接到数据库时,用户将自己保证数据库名字等信息的正确性。 \n"
                                             +" 3.已连接的数据库,可对其创建数据字典,如果字典已经存在,将覆盖旧字典。 \n"
                                             +" 4.已连接到数据库时,可直接打开该数据库对应已存在的字典。 \n"
                                             +" 4.未连接到数据库时,用户可打开确实已经存在的字典,此时用户自己确定字典名字。 \n"
                                             +" 6.对打开的字典,用户可以查询。对映射名字的修改将保存。不允许修改表名及字段名。 \n"
                                             +"Version: 1.0 \n");
            }
        });
        menu.add(menuItem);
        //----------------------------
        menuBar.add(menu);
        //----------------------------------------------------------------------
        setJMenuBar(menuBar);
    }
    /**
     *以一个JTable组件的形式,显示在table02中指定名字的表中所有字段属性。
     */
    public void showAttributesInTable02(String tableName) {
        if(fileName == null||fileName == " ")
            return;
        if(tableName == null)
            return;

        Vector columnNames = new Vector();
        columnNames.addElement("字段名");
        columnNames.addElement("注释");
        columnNames.addElement("字段类型");
        columnNames.addElement("字段长度");
        columnNames.addElement("是否允许空值");

        Vector dataOfColumn = dict.collectColumn(fileName,tableName);

        table02 = new JTable(dataOfColumn, columnNames);
        table02.setAutoResizeMode(0);
        TableColumn column = null;//设置列宽度
        column = table02.getColumnModel().getColumn(0);
        column.setPreferredWidth(120);
        column = table02.getColumnModel().getColumn(1);
        column.setPreferredWidth(90);
        column = table02.getColumnModel().getColumn(2);
        column.setPreferredWidth(90);
        column = table02.getColumnModel().getColumn(3);
        column.setPreferredWidth(60);
        column = table02.getColumnModel().getColumn(4);
        column.setPreferredWidth(50);

        column = table02.getColumnModel().getColumn(0);//禁止用户修改第一列
        column.setCellEditor(new TableCellEditor () {
            public Object getCellEditorValue() {
                return null;
            }
            public boolean isCellEditable(EventObject anEvent) {
                return false;
            }
            public boolean shouldSelectCell(EventObject anEvent) {
                return false;
            }
            public boolean stopCellEditing() {
                return false;
            }
            public void cancelCellEditing() {
            }
            public void addCellEditorListener(CellEditorListener l) {
            }
            public void removeCellEditorListener(CellEditorListener l) {
            }
            public Component getTableCellEditorComponent(JTable table,
                    Object value, boolean isSelected, int row, int column) {
                return null;
            }
        });

        scrollPanel02.getViewport().setView(table02);

        table02.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        ListSelectionModel rowSM = table02.getSelectionModel();
        rowSM.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent e) {
                rowBeSelected02 = table02.getSelectedRow();
            }
        });
        table02.getModel().addTableModelListener(new TableModelListener() {
            public void tableChanged(TableModelEvent e) {
                int row = e.getFirstRow();
                int column = e.getColumn();
                if(column == 1){
                    TableModel model = (TableModel) e.getSource();
                    String commentValue = model.getValueAt(row, column).toString();
                    String tableName = table01.getValueAt(rowBeSelected01,0).toString();
                    String columnName = model.getValueAt(row, 0).toString();
                    dict.setColumnComment(fileName,tableName,columnName,commentValue);
                }
            }
        });
    }
    /**
     *将所连接到的数据库的名字转化为对应XML文档的名字。
     */
    public String convertName(String databaseName) {
        String fileName = "";
        boolean isStringEmpty = true;
        int c = 0;
        if(databaseName != null)
            while(c < databaseName.length()) {
                if(databaseName.charAt(c) != ':'
                   &databaseName.charAt(c) != '.'
                   &databaseName.charAt(c) != '@') {
                    fileName = fileName + databaseName.charAt(c);
                } else {
                    fileName = fileName + "_";
                }
                c++;
            }
        return fileName + ".xml";
    }
    /**
     *初始函数。
     */
    private void jbInit() throws Exception {
        getContentPane().setLayout(new BorderLayout());
    }
}
/**
 * 保证打开文件只能是".xml"后缀
 */
class XMLFilter extends FileFilter {

    public boolean accept(File f) {
        if (f.isDirectory()) {
            return true;
        }
        String fileName = f.getName();
        int lenth = fileName.length();
        String extension = " ";
        extension = fileName.substring(lenth - 4,lenth);
        if (extension != null) {
            if (extension.equals(".xml")) {
                    return true;
            } else {
                return false;
            }
        }

        return false;
    }

    //The description of this filter
    public String getDescription() {
        return ".xml文件";
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -