📄 xmlschema.java
字号:
package com.icbcsdc.ddlexp.pub.xml.nodeinfo;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.icbcsdc.ddlexp.pub.staticLog.Logger;
import com.icbcsdc.ddlexp.pub.connectionpool.JDBCCnn;
import com.icbcsdc.ddlexp.pub.connectionpool.JDBCPool;
import com.icbcsdc.ddlexp.pub.connectionpool.JDBCPoolManager;
/**
* @author zhangyc
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/
public class XMLSchema extends XMLNode {
String sqlCompareTables="SELECT COUNT(*) FROM COMPARE_TABLES WHERE SRC_OWNER=?";
String sqlCompareViews="SELECT COUNT(*) FROM COMPARE_VIEWS WHERE SRC_OWNER=?";
String sqlCompareSequences="SELECT COUNT(*) FROM COMPARE_SEQUENCES WHERE SRC_OWNER=?";
String sqlCompareSynonyms="SELECT COUNT(*) FROM COMPARE_SYNONYMS WHERE SRC_OWNER=?";
String sqlCompareTypes="SELECT COUNT(*) FROM COMPARE_TYPES WHERE SRC_OWNER=?";
String sqlComparePackages="SELECT COUNT(*) FROM COMPARE_PACKAGES WHERE SRC_OWNER=? ";
String sqlCompareFunctions="SELECT COUNT(*) FROM COMPARE_FUNCTIONS WHERE SRC_OWNER=? ";
String sqlCompareProcedures="SELECT COUNT(*) FROM COMPARE_PROCEDURES WHERE SRC_OWNER=?";
// String sqlComparedSchemas="SELECT SRC_OWNER FROM COMPARE_TABLES WHERE ATTR_NAME='MYSTYLE' UNION SELECT SRC_OWNER FROM COMPARE_SEQUENCES WHERE ATTR_NAME='MYSTYLE' UNION SELECT SRC_OWNER FROM COMPARE_SYNONYMS WHERE ATTR_NAME='MYSTYLE' UNION SELECT SRC_OWNER FROM COMPARE_TYPES WHERE ATTR_NAME='MYSTYLE' UNION SELECT SRC_OWNER FROM COMPARE_VIEWS WHERE ATTR_NAME='MYSTYLE'";
//String sqlTriggers = "select name, MAX(LINE) from DBA_SOURCE where type= 'TRIGGER' and owner=? GROUP by name";
//String sqlTriggersWrapped="select name from DBA_SOURCE where type='TRIGGER' and line=1 and owner=? and text like '% wrapped%'";
public XMLSchema(String name) throws NodeException{
this.name=name;
}
/**
* @see com.mysqlecc.pub.xml.XmlProcess.XMLNode#getType()
*/
public int getType() {
return XMLNode.XML_SCHEMA;
}
/**从数据库中获取数据对象比较后的结果*/
public void refreshChangedProperties() throws Exception{
if(hasTables()){
XMLTables tables=new XMLTables();
tables.setCompareStatus(ComparedNode.COMPARED);
this.addChild(tables);
}
if(hasViews()){
XMLViews views=new XMLViews();
views.setCompareStatus(ComparedNode.COMPARED);
this.addChild(views);
}
if(hasSequences()){
XMLSequences seqs=new XMLSequences();
seqs.setCompareStatus(ComparedNode.COMPARED);
this.addChild(seqs);
}
if(hasSynonyms()){
XMLSynonyms syns=new XMLSynonyms();
syns.setCompareStatus(ComparedNode.COMPARED);
this.addChild(syns);
}
if(hasTypes()){
XMLTypes types=new XMLTypes();
types.setCompareStatus(ComparedNode.COMPARED);
this.addChild(types);
}
// /**处理sources对象*/
// Logger.log(Logger.INFO,"hasPackages:"+hasPackages());
// Logger.log(Logger.INFO,"hasProcedures:"+hasProcedures());
// Logger.log(Logger.INFO,"hasFunctions:"+hasFunctions());
if(hasPackages()||hasProcedures()||hasFunctions()){
XMLSources sources=new XMLSources();
sources.setCompareStatus(ComparedNode.COMPARED);
this.addChild(sources);
}
}
/**从数据库中获取数据对象定义*/
public void refreshDDLInfo() throws Exception{
this.addChild(new XMLTypes());
this.addChild(new XMLSources());
this.addChild(new XMLSynonyms());
this.addChild(new XMLSequences());
this.addChild(new XMLViews());
this.addChild(new XMLTables());
}
/**
* @see com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLNode#refresh()
*/
public void refresh() throws Exception{
refreshNodeNeedAccessDB();
super.refresh();
}
/**
* Manager类型的节点下面只能添加Database类型的节点
* */
public boolean chkChildType(XMLNode node){
if(node.getType()==XMLNode.XML_VIEWS) return true;
if(node.getType()==XMLNode.XML_TYPES) return true;
if(node.getType()==XMLNode.XML_SOURCES) return true;
if(node.getType()==XMLNode.XML_SYNONYMS) return true;
if(node.getType()==XMLNode.XML_SEQUENCES) return true;
if(node.getType()==XMLNode.XML_TABLES) return true;
return false;
}
/**
* Returns the 返回定义导出语句.
* @return String
*/
public String getSqlDDL(){
return "";
}
public XMLNode getIndirectChildren(XMLNode path){
XMLNode result=null;
switch(path.getType()){
case XMLNode.XML_SOURCES:
result=this.getDirectChildren(XMLNode.XML_SOURCES,XMLSources.NAME);
break;
case XMLNode.XML_FUNCTIONS:
result=this.getDirectChildren(XMLNode.XML_SOURCES,XMLSources.NAME)
.getDirectChildren(XMLNode.XML_FUNCTIONS,XMLFunctions.NAME);
break;
case XMLNode.XML_FUNCTION:
result=this.getDirectChildren(XMLNode.XML_SOURCES,XMLSources.NAME)
.getDirectChildren(XMLNode.XML_FUNCTIONS,XMLFunctions.NAME)
.getDirectChildren(XMLNode.XML_FUNCTION,path.getName());
break;
case XMLNode.XML_PACKAGES:
result=this.getDirectChildren(XMLNode.XML_SOURCES,XMLSources.NAME)
.getDirectChildren(XMLNode.XML_PACKAGES,XMLPackages.NAME);
break;
case XMLNode.XML_PACKAGE:
result=this.getDirectChildren(XMLNode.XML_SOURCES,XMLSources.NAME)
.getDirectChildren(XMLNode.XML_PACKAGES,XMLPackages.NAME)
.getDirectChildren(XMLNode.XML_PACKAGE,path.getName());
break;
case XMLNode.XML_PACKAGEBODIES:
result=this.getDirectChildren(XMLNode.XML_SOURCES,XMLSources.NAME)
.getDirectChildren(XML_PACKAGEBODIES,XMLPackageBodies.NAME);
break;
case XMLNode.XML_PACKAGEBODY:
result=this.getDirectChildren(XMLNode.XML_SOURCES,XMLSources.NAME)
.getDirectChildren(XML_PACKAGEBODIES,XMLPackageBodies.NAME)
.getDirectChildren(XMLNode.XML_PACKAGEBODY,path.getName());
break;
case XMLNode.XML_PROCEDURES:
result=this.getDirectChildren(XMLNode.XML_SOURCES,XMLSources.NAME)
.getDirectChildren(XMLNode.XML_PROCEDURES,XMLProcedures.NAME);
break;
case XMLNode.XML_PROCEDURE:
result=this.getDirectChildren(XMLNode.XML_SOURCES,XMLSources.NAME)
.getDirectChildren(XMLNode.XML_PROCEDURES,XMLProcedures.NAME)
.getDirectChildren(XMLNode.XML_PROCEDURE,path.getName());
break;
case XMLNode.XML_TABLES:
result=this.getDirectChildren(XMLNode.XML_TABLES,XMLTables.NAME);
break;
case XMLNode.XML_TABLE:
result=this.getDirectChildren(XMLNode.XML_TABLES,XMLTables.NAME)
.getDirectChildren(XMLNode.XML_TABLE,path.getName());
break;
case XMLNode.XML_TABCOMMENT:
result=this.getDirectChildren(XMLNode.XML_TABLES,XMLTables.NAME)
.getDirectChildren(XMLNode.XML_TABLE,path.getTable().getName())
.getDirectChildren(XMLNode.XML_TABCOMMENT,XMLTabComment.NAME);
break;
case XMLNode.XML_TABCOLUMNS:
result=this.getDirectChildren(XMLNode.XML_TABLES,XMLTables.NAME)
.getDirectChildren(XMLNode.XML_TABLE,path.getTable().getName())
.getDirectChildren(XMLNode.XML_TABCOLUMNS,XMLTabColumns.NAME);
break;
case XMLNode.XML_TABCOLUMN:
result=this.getDirectChildren(XMLNode.XML_TABLES,XMLTables.NAME)
.getDirectChildren(XMLNode.XML_TABLE,path.getTable().getName())
.getDirectChildren(XMLNode.XML_TABCOLUMNS,XMLTabColumns.NAME)
.getDirectChildren(XMLNode.XML_TABCOLUMN,path.getName());
break;
case XMLNode.XML_TABCOLCOMMENT:
result=this.getDirectChildren(XMLNode.XML_TABLES,XMLTables.NAME)
.getDirectChildren(XMLNode.XML_TABLE,path.getTable().getName())
.getDirectChildren(XMLNode.XML_TABCOLUMNS,XMLTabColumns.NAME)
.getDirectChildren(XMLNode.XML_TABCOLUMN,path.getTabColumn().getName())
.getDirectChildren(XMLNode.XML_TABCOLCOMMENT,path.getName());
break;
case XMLNode.XML_INDEXES:
result=this.getDirectChildren(XMLNode.XML_TABLES,XMLTables.NAME)
.getDirectChildren(XMLNode.XML_TABLE,path.getTable().getName())
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -