package com.robonobo.console.cmds; import static com.robonobo.common.util.TextUtil.*; import java.io.PrintWriter; import java.sql.*; import com.robonobo.common.exceptions.SeekInnerCalmException; import com.robonobo.console.RobonoboConsole; public class dbupdate implements ConsoleCommand { public void printHelp(PrintWriter out) { out.println("'dbupdate [meta|page] \"<query>\"' runs the supplied update query against the local db"); } public void run(RobonoboConsole console, String[] args, PrintWriter out) throws Exception { if (args.length <2) { printHelp(out); return; } Connection conn; if(args[0].equalsIgnoreCase("meta")) conn = console.getController().getMetadataDbConnection(); else if(args[0].equalsIgnoreCase("page")) conn = console.getController().getPageDbConnection(); else { printHelp(out); return; } String query = args[1]; try { Statement st = conn.createStatement(); int rowCount = st.executeUpdate(query); st.close(); out.println(numItems(rowCount, "row")+" updated"); } catch(SQLException e) { out.println("SQL error: "+e.getMessage()); } finally { if(args[0].equalsIgnoreCase("meta")) console.getController().returnMetadataDbConnection(conn); else if(args[0].equalsIgnoreCase("page")) console.getController().returnPageDbConnection(conn); else throw new SeekInnerCalmException(); } } }