📄 xmlnode.java
字号:
datIn=new BufferedWriter(new FileWriter(scriptFile,true));
// System.out.println("scriptfile:writing "+scriptFile.getPath());
//Logger.log(Logger.INFO,"writeComparedSQLToFil: before getComparedSQL()");
comparedSql=this.getComparedSQL();
//Logger.log(Logger.INFO,"writeComparedSQLToFil: after getComparedSQL()");
//Logger.log(Logger.INFO,"writeComparedSQLToFil:"+comparedSql);
//if(comparedSql!=null && comparedSql.trim().length() > 0){
datIn.write("--------------------" + type2String(this.getType())+" : "+this.name + "--------------------");
datIn.newLine();
datIn.write(comparedSql);
// char[] compared=comparedSql.toCharArray();
// int length=comparedSql.length();
datIn.newLine();
datIn.newLine();
datIn.newLine();
datIn.newLine();
//datIn.write("/");
//datIn.newLine();
//datIn.newLine();
//}
datIn.close();
}
Enumeration enum=this.getDirectChildren();
while(enum.hasMoreElements()){
Hashtable list=(Hashtable)enum.nextElement();
Enumeration enum1=list.elements();
while(enum1.hasMoreElements()){
XMLNode childNode=(XMLNode)enum1.nextElement();
childNode.writeComparedSQLToFil(scriptFile);
}
}
}
protected String getGrantedDDLStr(String grantee){
XMLDatabase db=(XMLDatabase)this.getDatabase();
String type=XMLNode.getDDLType(this.getType());
//String grantee=this.getName();
JDBCPool cnn=null;
String sql="BEGIN ? := DBMS_METADATA.GET_GRANTED_DDL(?,?); END;";
String strDDL = null;
try {
if(JDBCPoolManager.getInstance().isDebug())
System.out.println(this.getClass().toString());
if(db!=null) cnn = db.getConnPool();
else return null;
CallableStatement cStmt = cnn.prepareCall(sql);
cStmt.registerOutParameter(1,Types.VARCHAR);
cStmt.setString(2,type);
cStmt.setString(3,grantee);
cStmt.executeUpdate();
strDDL = cStmt.getString(1);
cStmt.close();
} catch (Exception e) {
e.printStackTrace();
Logger.log(Logger.ERROR,e.getMessage());
return null;
}
return strDDL;
}
protected String getSchemaDDLStr(){
JDBCPool cnn=null;
XMLDatabase db=(XMLDatabase)this.getDatabase();
String type=XMLNode.getDDLType(this.getType());
String name=this.getName();
String owner=this.getSchema().getName();
String sql="BEGIN ? := dbms_metadata.get_ddl(?,?,?); END;";
String strDDL = null;
try {
if(JDBCPoolManager.getInstance().isDebug())
System.out.println(this.getClass().toString());
if(db!=null) cnn = db.getConnPool();
else return null;
Logger.log(Logger.INFO,"getSchemaDDLStr");
Logger.log(Logger.INFO,"type:"+type);
Logger.log(Logger.INFO,"name:"+name);
Logger.log(Logger.INFO,"owner:"+owner);
CallableStatement cStmt = cnn.prepareCall(sql);
cStmt.registerOutParameter(1,Types.VARCHAR);
cStmt.setString(2,type);
cStmt.setString(3,name);
cStmt.setString(4,owner);
cStmt.executeUpdate();
strDDL = cStmt.getString(1);
//System.out.println("getSchemaDDLStr 2:"+strDDL);
cStmt.close();
} catch (Exception e) {
e.printStackTrace();
Logger.log(Logger.ERROR,e.getMessage());
return null;
}
return strDDL;
}
protected String getSchemaDependentDDLStr(){
JDBCPool cnn=null;
XMLDatabase db=(XMLDatabase)this.getDatabase();
String type=XMLNode.getDDLType(this.getType());
String name=this.getName();
String owner=this.getSchema().getName();
String sql="BEGIN ? := dbms_metadata.get_dependent_ddl(?,?,?); END;";
String strDDL = null;
try {
if(JDBCPoolManager.getInstance().isDebug())
System.out.println(this.getClass().toString());
if(db!=null) cnn = db.getConnPool();
else return null;
/**
System.out.println("getSchemaDDLStr 1");
System.out.println(type);
System.out.println(name);
System.out.println(owner);
**/
CallableStatement cStmt = cnn.prepareCall(sql);
cStmt.registerOutParameter(1,Types.VARCHAR);
cStmt.setString(2,type);
cStmt.setString(3,name);
cStmt.setString(4,owner);
cStmt.executeUpdate();
strDDL = cStmt.getString(1);
//System.out.println("getSchemaDDLStr 2:"+strDDL);
cStmt.close();
} catch (Exception e) {
e.printStackTrace();
Logger.log(Logger.ERROR,e.getMessage());
return null;
}
return strDDL;
}
protected String getNoSchemaDDLStr(){
JDBCPool cnn=null;
XMLDatabase db=(XMLDatabase)this.getDatabase();
String type=XMLNode.getDDLType(this.getType());
String name=this.getName();
String sql="BEGIN ? := dbms_metadata.get_ddl(?,?,null); END;";
String strDDL = null;
try {
if(JDBCPoolManager.getInstance().isDebug())
System.out.println(this.getClass().toString());
if(db!=null) cnn = db.getConnPool();
else return null;
CallableStatement cStmt = cnn.prepareCall(sql);
cStmt.registerOutParameter(1,Types.VARCHAR);
cStmt.setString(2,type);
cStmt.setString(3,name);
cStmt.executeUpdate();
strDDL = cStmt.getString(1);
cStmt.close();
} catch (Exception e) {
e.printStackTrace();
Logger.log(Logger.ERROR,e.getMessage());
return null;
}
//System.out.println(strDDL);
return strDDL;
}
/**将DDL语句写入文件*/
public void writeDDLToFil(String fileName) throws Exception{
File scriptFile=new File(fileName);
writeDDLToFil(scriptFile);
}
/**将DDL语句写入文件*/
public void writeDDLToFil(File scriptFile) throws Exception{
BufferedWriter datIn=new BufferedWriter(new FileWriter(scriptFile,true));
String sqlDDL=this.getSqlDDL();
//System.out.println("writeDDLToFil"+sqlDDL);
if(sqlDDL!=null){
datIn.write(sqlDDL.trim());
datIn.write(";\n");
datIn.write("\n");
}
datIn.close();
Enumeration enum=this.getDirectChildren();
while(enum.hasMoreElements()){
Hashtable list=(Hashtable)enum.nextElement();
Enumeration enum1=list.elements();
while(enum1.hasMoreElements()){
XMLNode childNode=(XMLNode)enum1.nextElement();
if(childNode.isSelected()) childNode.writeDDLToFil(scriptFile);
}
}
}
public boolean canDoubleClick(){
return true;
}
public void printChildren(){
Enumeration enum=this.getDirectChildren();
while(enum.hasMoreElements()){
Hashtable list=(Hashtable)enum.nextElement();
Enumeration enum1=list.elements();
while(enum1.hasMoreElements()){
XMLNode childNode=(XMLNode)enum1.nextElement();
System.out.println(childNode.getName()+"\t"+childNode.getType()+"\t"+childNode.toString());
}
}
}
void printChangedProperties(){
Hashtable array = this.getChangedProperties();
System.out.println("array.size:"+array.size());
if(array.size() > 0){
Enumeration enum=array.elements();
while(enum.hasMoreElements()){
PropertyChanged property=(PropertyChanged)enum.nextElement();
System.out.println("Property: "+property.getName()+"/"+property.getOldValue()+"/"+property.getNewValue());
}
}
}
public void appendChildren2Node(PVNode node){
//System.out.println("appendChildren2Node 1");
Enumeration enum=this.getDirectChildren();
while(enum.hasMoreElements()){
Hashtable list=(Hashtable)enum.nextElement();
Enumeration enum1=list.elements();
while(enum1.hasMoreElements()){
XMLNode childXMLNode=(XMLNode)enum1.nextElement();
PVNode childPVNode = PVNodeFactory.createNode(childXMLNode);
node.add(childPVNode);
childXMLNode.appendChildren2Node(childPVNode);
}
}
//System.out.println("appendChildren2Node 2");
}
public static String type2String(int type){
return (String)type2StrContainer.get(new Integer(type));
}
public static String getDDLType(int type){
return (String)type2DDLTypeContainer.get(new Integer(type));
}
/**
* Returns the compareStatus.
* @return byte
*/
public byte getCompareStatus() {
return compareStatus;
}
/**
* Sets the compareStatus.
* @param compareStatus The compareStatus to set
*/
public void setCompareStatus(byte compareStatus) {
this.compareStatus = compareStatus;
}
public void putChangedProperty(String name,String oldValue,String newValue){
this.changedProperties.putChangedProperty(name,oldValue,newValue);
}
public String getChangedPropertyNewValue(String name){
return this.changedProperties.getChangedPropertyNewValue(name);
}
public String getChangedPropertyOldValue(String name){
return this.changedProperties.getChangedPropertyOldValue(name);
}
public Hashtable getChangedProperties(){
return changedProperties.getChangedProperties();
}
public static byte toCompareStatus(String attrValue) throws NodeException{
Byte result=(Byte)str2CompareStatus.get(attrValue);
if(result==null) throw new NodeException("比较对象的MYSTYLE属性不能为:"+attrValue);
return result.byteValue();
}
/**
* Returns the overflow.
* @return boolean
*/
public boolean isOverflow() {
return overflow;
}
/**
* Sets the name.
* @param name The name to set
public void setName(String name) {
this.name = name;
}*/
/**
* Sets the overflow.
* @param overflow The overflow to set
*/
public void setOverflow(boolean overflow) {
this.overflow = overflow;
}
/**
* Returns the wrapped.
* @return boolean
*/
public boolean isWrapped() {
return wrapped;
}
/**
* Sets the wrapped.
* @param wrapped The wrapped to set
*/
public void setWrapped(boolean wrapped) {
this.wrapped = wrapped;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -