package test.prefuse.data.io.sql; import java.util.logging.Logger; import javax.swing.JFrame; import junit.framework.TestCase; import prefuse.data.Table; import prefuse.data.io.sql.ConnectionFactory; import prefuse.data.io.sql.DatabaseDataSource; import prefuse.util.ui.JPrefuseTable; import test.prefuse.TestConfig; public class MySQLConnectionTest extends TestCase { // logger private static final Logger s_logger = Logger.getLogger(MySQLConnectionTest.class.getName()); private Table m_table; public void testLoadFromMySQLDatabase() { String host = "localhost"; String database = "friendster"; String user = "anonymous"; String password = ""; String keyField = "uid"; String query1 = "SELECT profiles.* FROM profiles, graph WHERE " + "(graph.uid1 = 186297 AND profiles.uid = graph.uid2)"; String query2 = "SELECT profiles.* FROM profiles, graph WHERE " + "(graph.uid1 = 21721 AND profiles.uid = graph.uid2)"; //String query = "SELECT gender, age, COUNT(*) FROM profiles GROUP BY gender,age"; s_logger.info(TestConfig.memUse()); Table t = null; try { DatabaseDataSource db = ConnectionFactory.getMySQLConnection( host, database, user, password); s_logger.info(TestConfig.memUse()); t = db.getData(t, query1, keyField); db.loadData(t, query2, keyField); } catch ( Exception e ) { e.printStackTrace(); fail("Error connecting to database"); } // text-dump StringBuffer sbuf = new StringBuffer('\n'); sbuf.append("--[Table: ").append(t.getRowCount()).append(" rows, ") .append(t.getColumnCount()).append(" cols]--\n"); for (int c = 0, idx = -1; c < t.getColumnCount(); ++c) { String name = t.getColumnType(c).getName(); if ( (idx=name.lastIndexOf('.')) >= 0 ) name = name.substring(idx+1); sbuf.append(c).append("\t").append(name).append("\t") .append(t.getColumnName(c)).append('\n'); } sbuf.append('\n'); sbuf.append(TestConfig.memUse()).append('\n'); s_logger.info(sbuf.toString()); m_table = t; } public static void main(String[] args) { MySQLConnectionTest test = new MySQLConnectionTest(); test.testLoadFromMySQLDatabase(); JFrame f = JPrefuseTable.showTableWindow(test.m_table); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }