view src/main/java/org/mpi/openmind/scripts/RenameAttributes.java @ 8:478fd6f26ea8

(none)
author jurzua
date Tue, 24 Feb 2015 10:45:45 +0000
parents
children
line wrap: on
line source

package org.mpi.openmind.scripts;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class RenameAttributes {
	
	public static void execute(String oc, String oldAttName, String newAttName, String mysqlUser, String mysqlPwd){
		System.out.println("RenameAttributes " + oc + " [from: " + oldAttName + " to " + newAttName + "]");
		
		try {
			Connection conn = DBUtils.getConn(mysqlUser, mysqlPwd);
			renameAtts(conn, oc, oldAttName, newAttName);
			renameDefAtt(conn, oc, oldAttName, newAttName);
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}
	
	public static void renameAtts(Connection conn, String oc, String oldAttName, String newAttName){
		System.out.println("Rename all Atts");
		try {
	    	Statement st = conn.createStatement();
	    	String st0 = "UPDATE node " +
	    	"SET object_class='" + newAttName + "' " + 
	    	"WHERE node_type = 'ATTRIBUTE' and source_obj_class = '" + oc + "' and object_class = '" + oldAttName + "'";
	    	System.out.println(st0);
			int counter = st.executeUpdate(st0);
			System.out.println(counter + " rows modfied!");
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public static void renameDefAtt(Connection conn, String oc, String oldAttName, String newAttName) throws SQLException{
		System.out.println("Rename Definition Atts");
		ResultSet rs = DBUtils.getDefAtts(conn, oc, oldAttName);
		
		while(rs.next()){
			Long attRowId = rs.getLong("row_id");
			renameDefAtt(conn, attRowId, newAttName);
		}
	}
	
	public static void renameDefAtt(Connection conn, Long attRowId, String newAttName) throws SQLException{
		Statement st = conn.createStatement();
    	String st0 = "UPDATE node " +
    	"SET own_value='" + newAttName + "' " + 
    	"WHERE row_id = '" + attRowId + "'";
    	System.out.println(st0);
		int counter = st.executeUpdate(st0);
		System.out.println(counter + " rows modfied!");
	}
	
	
	public static void main(String[] args){
		execute("WITNESS", "notes", "notes_old", "root", "admin");
		execute("TEXT", "notes", "notes_old", "root", "admin");
		execute("CODEX", "notes", "notes_old", "root", "admin");
		execute("PERSON", "notes", "notes_old", "root", "admin");
	}
	
}