📄 databasemanager.java
字号:
* Method declaration
*
*
* @param b
* @param name
* @param items
*/
void addMenu(MenuBar b, String name, String[] items) {
/* It's a very poor design to encapsulate menu creation this way.
* Can't customize the menus this way (e.g. shortcut keys,
* mnemonics, disabling, etc. */
Menu menu = new Menu(name);
if (name.equals("Tools") && !TT_AVAILABLE) {
// Terrible place to do this. Forced to due to method design.
menu.setEnabled(false);
}
addMenuItems(menu, items);
b.add(menu);
}
/**
* Method declaration
*
*
* @param f
* @param m
*/
void addMenuItems(Menu f, String[] m) {
for (int i = 0; i < m.length; i++) {
MenuItem item = new MenuItem(m[i].substring(1));
char c = m[i].charAt(0);
if (c != '-') {
item.setShortcut(new MenuShortcut(c));
}
item.addActionListener(this);
f.add(item);
}
}
/**
* Method declaration
*
*
* @param k
*/
public void keyPressed(KeyEvent k) {}
/**
* Method declaration
*
*
* @param k
*/
public void keyReleased(KeyEvent k) {}
/**
* Method declaration
*
*
* @param k
*/
public void keyTyped(KeyEvent k) {
if (k.getKeyChar() == '\n' && k.isControlDown()) {
k.consume();
execute();
}
}
/**
* Method declaration
*
*
* @param ev
*/
public void actionPerformed(ActionEvent ev) {
String s = ev.getActionCommand();
if (s == null) {
if (ev.getSource() instanceof MenuItem) {
MenuItem i;
s = ((MenuItem) ev.getSource()).getLabel();
}
}
if (s == null) {}
else if (s.equals("Execute")) {
execute();
} else if (s.equals("Clear")) {
clear();
} else if (s.equals("Exit")) {
windowClosing(null);
} else if (s.equals("Transfer")) {
Transfer.work(null);
} else if (s.equals("Dump")) {
Transfer.work(new String[]{ "-d" });
} else if (s.equals("Restore")) {
Transfer.work(new String[]{ "-r" });
refreshTree();
} else if (s.equals("Logging on")) {
JavaSystem.setLogToSystem(true);
} else if (s.equals("Logging off")) {
JavaSystem.setLogToSystem(false);
} else if (s.equals("Help")) {
showHelp(new String[] {
"", HELP_TEXT
});
} else if (s.equals("About")) {
showHelp(new String[] {
"", ABOUT_TEXT
});
} else if (s.equals("Refresh Tree")) {
refreshTree();
} else if (s.startsWith("#")) {
int i = Integer.parseInt(s.substring(1));
txtCommand.setText(sRecent[i]);
} else if (s.equals("Connect...")) {
connect(ConnectionDialog.createConnection(fMain, "Connect"));
refreshTree();
} else if (s.equals("Results in Grid")) {
iResult = 0;
pResult.removeAll();
pResult.add("Center", gResult);
pResult.doLayout();
} else if (s.equals("Open Script...")) {
FileDialog f = new FileDialog(fMain, "Open Script",
FileDialog.LOAD);
// (ulrivo): set default directory if set from command line
if (defDirectory != null) {
f.setDirectory(defDirectory);
}
f.show();
String file = f.getFile();
if (file != null) {
StringBuffer buf = new StringBuffer();
ifHuge = DatabaseManagerCommon.readFile(f.getDirectory()
+ file);
if (4096 <= ifHuge.length()) {
buf.append(
"This huge file cannot be edited.\n Please execute or clear\n");
txtCommand.setText(buf.toString());
} else {
txtCommand.setText(ifHuge);
}
}
} else if (s.equals("Save Script...")) {
FileDialog f = new FileDialog(fMain, "Save Script",
FileDialog.SAVE);
// (ulrivo): set default directory if set from command line
if (defDirectory != null) {
f.setDirectory(defDirectory);
}
f.show();
String file = f.getFile();
if (file != null) {
DatabaseManagerCommon.writeFile(f.getDirectory() + file,
txtCommand.getText());
}
} else if (s.equals("Save Result csv...")) {
FileDialog f = new FileDialog(fMain, "Save Result CSV",
FileDialog.SAVE);
// (ulrivo): set default directory if set from command line
if (defDirectory != null) {
f.setDirectory(defDirectory);
}
f.show();
String dir = f.getDirectory();
String file = f.getFile();
if (dir != null) {
file = dir + "/" + file;
}
if (file != null) {
showResultInText();
saveAsCsv(file);
}
} else if (s.equals("Save Result...")) {
FileDialog f = new FileDialog(fMain, "Save Result",
FileDialog.SAVE);
// (ulrivo): set default directory if set from command line
if (defDirectory != null) {
f.setDirectory(defDirectory);
}
f.show();
String file = f.getFile();
if (file != null) {
showResultInText();
DatabaseManagerCommon.writeFile(f.getDirectory() + file,
txtResult.getText());
}
} else if (s.equals("Results in Text")) {
iResult = 1;
pResult.removeAll();
pResult.add("Center", txtResult);
pResult.doLayout();
showResultInText();
} else if (s.equals("AutoCommit on")) {
try {
cConn.setAutoCommit(true);
} catch (SQLException e) {}
} else if (s.equals("AutoCommit off")) {
try {
cConn.setAutoCommit(false);
} catch (SQLException e) {}
} else if (s.equals("Enlarge Tree")) {
Dimension d = tTree.getMinimumSize();
d.width += 20;
tTree.setMinimumSize(d);
fMain.pack();
} else if (s.equals("Shrink Tree")) {
Dimension d = tTree.getMinimumSize();
d.width -= 20;
if (d.width >= 0) {
tTree.setMinimumSize(d);
}
fMain.pack();
} else if (s.equals("Enlarge Command")) {
txtCommand.setRows(txtCommand.getRows() + 1);
fMain.pack();
} else if (s.equals("Shrink Command")) {
int i = txtCommand.getRows() - 1;
txtCommand.setRows(i < 1 ? 1
: i);
fMain.pack();
} else if (s.equals("Commit")) {
try {
cConn.commit();
} catch (SQLException e) {}
} else if (s.equals("Insert test data")) {
insertTestData();
} else if (s.equals("Rollback")) {
try {
cConn.rollback();
} catch (SQLException e) {}
} else if (s.equals("Disable MaxRows")) {
try {
sStatement.setMaxRows(0);
} catch (SQLException e) {}
} else if (s.equals("Set MaxRows to 100")) {
try {
sStatement.setMaxRows(100);
} catch (SQLException e) {}
} else if (s.equals("SELECT")) {
showHelp(DatabaseManagerCommon.selectHelp);
} else if (s.equals("INSERT")) {
showHelp(DatabaseManagerCommon.insertHelp);
} else if (s.equals("UPDATE")) {
showHelp(DatabaseManagerCommon.updateHelp);
} else if (s.equals("DELETE")) {
showHelp(DatabaseManagerCommon.deleteHelp);
} else if (s.equals("CREATE TABLE")) {
showHelp(DatabaseManagerCommon.createTableHelp);
} else if (s.equals("DROP TABLE")) {
showHelp(DatabaseManagerCommon.dropTableHelp);
} else if (s.equals("CREATE INDEX")) {
showHelp(DatabaseManagerCommon.createIndexHelp);
} else if (s.equals("DROP INDEX")) {
showHelp(DatabaseManagerCommon.dropIndexHelp);
} else if (s.equals("CHECKPOINT")) {
showHelp(DatabaseManagerCommon.checkpointHelp);
} else if (s.equals("SCRIPT")) {
showHelp(DatabaseManagerCommon.scriptHelp);
} else if (s.equals("SHUTDOWN")) {
showHelp(DatabaseManagerCommon.shutdownHelp);
} else if (s.equals("SET")) {
showHelp(DatabaseManagerCommon.setHelp);
} else if (s.equals("Test Script")) {
showHelp(DatabaseManagerCommon.testHelp);
}
}
/**
* Method declaration
*
*
* @param s
* @param help
*/
void showHelp(String[] help) {
txtCommand.setText(help[0]);
txtResult.setText(help[1]);
bHelp = true;
pResult.removeAll();
pResult.add("Center", txtResult);
pResult.doLayout();
txtCommand.requestFocus();
txtCommand.setCaretPosition(help[0].length());
}
/**
* Method declaration
*
*
* @param e
*/
public void windowActivated(WindowEvent e) {}
/**
* Method declaration
*
*
* @param e
*/
public void windowDeactivated(WindowEvent e) {}
/**
* Method declaration
*
*
* @param e
*/
public void windowClosed(WindowEvent e) {}
/**
* Method declaration
*
*
* @param ev
*/
public void windowClosing(WindowEvent ev) {
try {
if (cConn != null) {
cConn.close();
}
} catch (Exception e) {}
fMain.dispose();
if (bMustExit) {
System.exit(0);
}
}
/**
* Method declaration
*
*
* @param e
*/
public void windowDeiconified(WindowEvent e) {}
/**
* Method declaration
*
*
* @param e
*/
public void windowIconified(WindowEvent e) {}
/**
* Method declaration
*
*
* @param e
*/
public void windowOpened(WindowEvent e) {}
/**
* Method declaration
* Clear SQL Statements.
*/
void clear() {
ifHuge = "";
txtCommand.setText(ifHuge);
}
/**
* Method declaration
* Adjust this method for large strings...ie multi megabtypes.
*/
void execute() {
String sCmd = null;
if (4096 <= ifHuge.length()) {
sCmd = ifHuge;
} else {
sCmd = txtCommand.getText();
}
if (sCmd.startsWith("-->>>TEST<<<--")) {
testPerformance();
return;
}
String[] g = new String[1];
lTime = System.currentTimeMillis();
try {
if (sStatement == null) {
return;
}
sStatement.execute(sCmd);
lTime = System.currentTimeMillis() - lTime;
int r = sStatement.getUpdateCount();
if (r == -1) {
formatResultSet(sStatement.getResultSet());
} else {
g[0] = "update count";
gResult.setHead(g);
g[0] = String.valueOf(r);
gResult.addRow(g);
}
addToRecent(txtCommand.getText());
} catch (SQLException e) {
lTime = System.currentTimeMillis() - lTime;
g[0] = "SQL Error";
gResult.setHead(g);
String s = e.getMessage();
s += " / Error Code: " + e.getErrorCode();
s += " / State: " + e.getSQLState();
g[0] = s;
gResult.addRow(g);
}
updateResult();
System.gc();
}
/**
* Method declaration
*
*/
void updateResult() {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -