package net.sourceforge.subsonic.dao; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; import org.springframework.jdbc.datasource.DriverManagerDataSource; import javax.sql.DataSource; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintWriter; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Date; import java.util.List; /** * @author Sindre Mehus * @version $Id$ */ public class scratch { public static void main(String[] args) throws IOException { new scratch(); } public scratch() throws FileNotFoundException { for (int i = 57; i <= 96; i++) { try { process(i); } catch (Exception e) { System.out.println(e); } } } private void process(int i) throws FileNotFoundException { System.out.println("Processing " + i); List<Redirection> redirections = getRedirections(i); PrintWriter writer = new PrintWriter(new File("csv", i + ".csv")); writer.println("id, redirect_to, local_redirect_to, last_updated, last_read"); for (Redirection redirection : redirections) { writer.println(redirection.id + ", " + redirection.redirectTo + ", " + redirection.localRedirectTo + ", " + (redirection.lastUpdated == null ? 0 : redirection.lastUpdated.getTime()) + ", " + (redirection.lastRead == null ? 0 : redirection.lastRead.getTime())); } writer.close(); } public List<Redirection> getRedirections(int i) { JdbcTemplate template = getJdbcTemplate(i); List result = template.query("select id, redirect_to, local_redirect_to, last_updated, last_read from redirection", new MyRowMapper()); template.update("shutdown") ; return result; } private JdbcTemplate getJdbcTemplate(int i) { return new JdbcTemplate(createDataSource(i)); } private DataSource createDataSource(int i) { DriverManagerDataSource ds = new DriverManagerDataSource(); ds.setDriverClassName("org.hsqldb.jdbcDriver"); ds.setUrl("jdbc:hsqldb:file:/Users/sindre/tmp/backups/" + i); ds.setUsername("sa"); ds.setPassword(""); return ds; } private class MyRowMapper implements ParameterizedRowMapper<Redirection> { public Redirection mapRow(ResultSet rs, int rowNum) throws SQLException { Redirection redirection = new Redirection(); redirection.id = rs.getInt(1); redirection.redirectTo = rs.getString(2); redirection.localRedirectTo = rs.getString(3); redirection.lastUpdated = rs.getTimestamp(4); redirection.lastRead = rs.getTimestamp(5); return redirection; } } private static class Redirection { int id; String redirectTo; String localRedirectTo; Date lastUpdated; Date lastRead; } }