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

📄 xmlnode.java

📁 导出ORACLE数据库对象DDL语句的程序
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		 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 + -