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

📄 createtablescriptsgenerator.java

📁 eq跨平台查询工具源码 eq跨平台查询工具源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * CreateTableScriptsGenerator.java * * Copyright (C) 2002, 2003, 2004, 2005, 2006 Takis Diakoumis * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. * */package org.executequery.gui.scriptgenerators;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import java.util.Hashtable;import java.util.Vector;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JOptionPane;import javax.swing.JProgressBar;import javax.swing.SwingUtilities;import org.executequery.GUIUtilities;import org.executequery.gui.GeneratedScriptViewer;import org.executequery.gui.browser.ColumnConstraint;import org.executequery.gui.browser.ColumnData;import org.executequery.util.Log;import org.underworldlabs.util.DateUtils;import org.underworldlabs.swing.util.SwingWorker;/* ---------------------------------------------------------- * CVS NOTE: Changes to the CVS repository prior to the  *           release of version 3.0.0beta1 has meant a  *           resetting of CVS revision numbers. * ---------------------------------------------------------- *//** * * @author   Takis Diakoumis * @version  $Revision: 1.5 $ * @date     $Date: 2006/07/16 06:48:37 $ */public class CreateTableScriptsGenerator {        public static final int SUCCESS = 0;        public static final int CANCEL_FAIL = 1;        /** The generator object */    private ScriptGenerator generator;        /** The progress dialog */    private ProgressDialog progDialog;        /** The worker thread */    private SwingWorker worker;        /** The file to save to */    private File file;        public CreateTableScriptsGenerator(ScriptGenerator generator) {        this.generator = generator;    }        public void generate() {        worker = new SwingWorker() {            public Object construct() {                return doWork();            }            public void finished() {                progDialog.setStatus(-1);                Hashtable result = (Hashtable)get();                                try {                    Thread.sleep(400);                } catch (InterruptedException intExc) {}                                progDialog.dispose();                                if (result.containsKey("Done")) {                    int yesno = GUIUtilities.displayYesNoDialog(                        "The script was generated successfully to " +                        result.get("Done") +                        ".\nDo you wish to view the generated script?", "Finished");                                        if (yesno == JOptionPane.YES_OPTION) {                        final String script = (String)result.get("script");                        //String fileName = (String)result.get("Done");                        SwingUtilities.invokeLater(new Runnable() {                            public void run() {                                GUIUtilities.addCentralPane(                                        GeneratedScriptViewer.TITLE,                                        GeneratedScriptViewer.FRAME_ICON,                                         new GeneratedScriptViewer(script, file),                                        GeneratedScriptViewer.TITLE,                                        true);                            }                        });                    }                    generator.setResult(SUCCESS);                    generator.dispose();                    return;                }                                 else if (result.containsKey("cancelled")) {                    GUIUtilities.displayInformationMessage("Process Cancelled.");                    generator.setResult(CANCEL_FAIL);                }                                 else if (result.containsKey("Failed")) {                    String message = "An error occured generating the script.\n";                    Object object = result.get("Failed");                    if (object instanceof Exception) {                        Exception e = (Exception)object;                        message += "\n" + e.getMessage();                        GUIUtilities.displayExceptionErrorDialog(message, e);                    }                     else {                        GUIUtilities.displayErrorMessage(message);                    }                    generator.setResult(CANCEL_FAIL);                }                generator.dispose();            }        };        worker.start();    }        private Object doWork() {                Vector selections = generator.getSelectedTables();                Hashtable result = new Hashtable();                file = new File(generator.getScriptFilePath());        progDialog = new ProgressDialog(selections.size());                PrintWriter writer = null;                String CREATE_TABLE = "CREATE TABLE ";        String ALTER_TABLE = "ALTER TABLE ";        String NOT_NULL = " NOT NULL";        String CONSTRAINT = "CONSTRAINT ";        String KEY = " KEY ";        String REFERENCES = " REFERENCES ";        String ADD = " ADD ";        String EMPTY = "";                char B_OPEN = '(';        char B_CLOSE = ')';        char SPACE = ' ';        char NEW_LINE = '\n';        char COMMA = ',';        char SEMI_COLON = ';';        char DOT = '.';                boolean includeConstraints = generator.includeConstraints();        boolean useCreateForConstraints = generator.includeConstraintsInCreate();        boolean useAlterForConstraints = generator.includeConstraintsAsAlter();                StringBuffer pKeys = null;        StringBuffer fKeys = null;                if (useAlterForConstraints) {            pKeys = new StringBuffer();            fKeys = new StringBuffer();        }                 try {            generator.enableButtons(false);                        Log.info("Generating SQL script...");            writer = new PrintWriter(new FileWriter(file, false), true);            StringBuffer sb_script = new StringBuffer(1000);                        StringBuffer sb_header = new StringBuffer(500);            String line_1 = "-- ---------------------------------------------------\n";            sb_header.append(line_1).append("--\n-- SQL script ").            append("generated by Execute Query.\n-- Generated ");                        DateUtils dt = new DateUtils();            sb_header.append(dt.getLongDateTime()).append("\n--\n").            append(line_1).append("--\n-- Program:      ").            append(file.getName()).append("\n-- Description:  SQL create ").            append("tables script.\n-- Schema:       ").            append(generator.getSchemaName()).append("\n-- Database:     ").            append(generator.getDatabaseProductName()).append("\n--\n").append(line_1).            append(NEW_LINE).append(NEW_LINE);                        writer.println(sb_header.toString());            sb_script.append(sb_header);            sb_header = null;            line_1 = null;            dt = null;                        int sepLength = -1;            StringBuffer sb = new StringBuffer(500);            StringBuffer sb_spaces_1 = new StringBuffer(50);            StringBuffer sb_spaces_2 = new StringBuffer(30);            String initialSpaces = "               ";                        int s_size = selections.size();            Vector columnConstraints = new Vector();                        for (int i = 0; i < s_size; i++) {                                if (Thread.interrupted()) {                    file.delete();                    progDialog.setStatus(-1);                    throw new InterruptedException();                }                                 String tableName = selections.elementAt(i).toString();                ColumnData[] cda = generator.getColumnDataArray(tableName);                sb.append(CREATE_TABLE).                   append(tableName).                   append(SPACE).                   append(B_OPEN);                if (cda.length > 0) {                    sb_spaces_1.append(initialSpaces);                                        int tn_length = tableName.length();                    // spaces between beginning of line and column name                    for (int k = 0; k < tn_length; k++) {                        sb_spaces_1.append(SPACE);                    }                                        String spaces_1 = sb_spaces_1.toString();                                        for (int j = 0; j < cda.length; j++) {                        ColumnData column = cda[j];                        sepLength = getSpaceLength(cda) + 5;                                                if (j > 0) {                            sb.append(spaces_1);                        }

⌨️ 快捷键说明

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