public static Instances readDB(String sqlQuery, String tableName, int sourceIndex) { /* proper mysql query is needed. sqlQuery : "SELECT * FROM AccelerometerSensorProbe" */ if (!sqlQuery.contains(tableName)) { System.out.println("tableName must be included in sqlQuery!"); System.out.println("tableName : " + tableName + " / sqlQuery : " + sqlQuery); System.exit(-1); } ProjectEvaluator.tableUsed(tableName); Instances dataSet = null; try { InstanceQuery query = new InstanceQuery(); if (sourceIndex == 0) { query.setDatabaseURL(DBConn.url); query.setUsername(DBConn.user); query.setPassword(DBConn.pwd); } else if (sourceIndex == 1) { query.setDatabaseURL(DBConn.url_validation); query.setUsername(DBConn.user_validation); query.setPassword(DBConn.pwd_validation); } else if (sourceIndex == 2) { query.setDatabaseURL(ProjectEvaluator.testUrl); query.setUsername(ProjectEvaluator.testUser); query.setPassword(ProjectEvaluator.testPwd); } else { throw new Exception("source index must be 0, 1 or 2!"); } query.setQuery(sqlQuery); dataSet = query.retrieveInstances(); dataSet.setClassIndex(dataSet.numAttributes() - 1); } catch (Exception e) { e.printStackTrace(); } return dataSet; }
/** Queries the user enough to make a database query to retrieve experiment results. */ protected void setInstancesFromDBaseQuery() { try { if (m_InstanceQuery == null) { m_InstanceQuery = new InstanceQuery(); } String dbaseURL = m_InstanceQuery.getDatabaseURL(); String username = m_InstanceQuery.getUsername(); String passwd = m_InstanceQuery.getPassword(); /*dbaseURL = (String) JOptionPane.showInputDialog(this, "Enter the database URL", "Query Database", JOptionPane.PLAIN_MESSAGE, null, null, dbaseURL);*/ DatabaseConnectionDialog dbd = new DatabaseConnectionDialog(null, dbaseURL, username); dbd.setVisible(true); // if (dbaseURL == null) { if (dbd.getReturnValue() == JOptionPane.CLOSED_OPTION) { m_FromLab.setText("Cancelled"); return; } dbaseURL = dbd.getURL(); username = dbd.getUsername(); passwd = dbd.getPassword(); m_InstanceQuery.setDatabaseURL(dbaseURL); m_InstanceQuery.setUsername(username); m_InstanceQuery.setPassword(passwd); m_InstanceQuery.setDebug(dbd.getDebug()); m_InstanceQuery.connectToDatabase(); if (!m_InstanceQuery.experimentIndexExists()) { System.err.println("not found"); m_FromLab.setText("No experiment index"); m_InstanceQuery.disconnectFromDatabase(); return; } System.err.println("found"); m_FromLab.setText("Getting experiment index"); Instances index = m_InstanceQuery.retrieveInstances("SELECT * FROM " + InstanceQuery.EXP_INDEX_TABLE); if (index.numInstances() == 0) { m_FromLab.setText("No experiments available"); m_InstanceQuery.disconnectFromDatabase(); return; } m_FromLab.setText("Got experiment index"); DefaultListModel lm = new DefaultListModel(); for (int i = 0; i < index.numInstances(); i++) { lm.addElement(index.instance(i).toString()); } JList jl = new JList(lm); jl.setSelectedIndex(0); int result; // display dialog only if there's not just one result! if (jl.getModel().getSize() != 1) { ListSelectorDialog jd = new ListSelectorDialog(null, jl); result = jd.showDialog(); } else { result = ListSelectorDialog.APPROVE_OPTION; } if (result != ListSelectorDialog.APPROVE_OPTION) { m_FromLab.setText("Cancelled"); m_InstanceQuery.disconnectFromDatabase(); return; } Instance selInst = index.instance(jl.getSelectedIndex()); Attribute tableAttr = index.attribute(InstanceQuery.EXP_RESULT_COL); String table = InstanceQuery.EXP_RESULT_PREFIX + selInst.toString(tableAttr); setInstancesFromDatabaseTable(table); } catch (Exception ex) { // 1. print complete stacktrace ex.printStackTrace(); // 2. print message in panel m_FromLab.setText("Problem reading database: '" + ex.getMessage() + "'"); } }
public void processFolder(File folder) throws Exception { if (!folder.isDirectory()) { // manipulate file here String fileName = folder.getName(); System.out.println(fileName); // String extension = getFileExtension(fileName); testdata = new Instances(new BufferedReader(new FileReader(folder))); if (!fileName.startsWith(".") && (fileName.contains(".csv") || fileName.contains(".xls"))) { CSVLoader loader = new CSVLoader(); loader.setSource(new File(folder.getAbsolutePath())); traindata = loader.getDataSet(); System.out.println(traindata.toSummaryString()); this.chooseClassifier(); } else if (!fileName.startsWith(".") && fileName.contains(".txt")) { TextDirectoryLoader loader = new TextDirectoryLoader(); System.out.println("About to load text file " + fileName); System.out.println("Name of path " + folder.getAbsolutePath()); loader.setSource(folder); traindata = loader.getDataSet(); System.out.println(traindata.toSummaryString()); this.chooseClassifier(); } else if (!fileName.startsWith(".") && fileName.contains(".json")) { JSONLoader loader = new JSONLoader(); loader.setSource(new File(folder.getAbsolutePath())); traindata = loader.getDataSet(); System.out.println(traindata.toSummaryString()); this.chooseClassifier(); } else if (!fileName.startsWith(".") && fileName.contains(".xrff")) { XRFFLoader loader = new XRFFLoader(); loader.setSource(new File(folder.getAbsolutePath())); traindata = loader.getDataSet(); System.out.println(traindata.toSummaryString()); this.chooseClassifier(); } else if (!fileName.startsWith(".") && fileName.contains(".arff")) { traindata = new Instances(new BufferedReader(new FileReader(folder.getAbsolutePath()))); testdata = new Instances(new BufferedReader(new FileReader(folder))); System.out.println(traindata.toSummaryString()); this.chooseClassifier(); } else if (!fileName.startsWith(".") && fileName.contains(".mdf")) { DatabaseConnection loader = new DatabaseConnection(); loader.connectToDatabase(); InstanceQuery query = new InstanceQuery(); query.setUsername("lamogha"); query.setPassword("l@mmyPHD"); query.setQuery("select * from customers"); // You can declare that your data set is sparse // query.setSparseData(true); Instances data = query.retrieveInstances(); System.out.println(data.toSummaryString()); this.chooseClassifier(); } } else { for (final File fileEntry : folder.listFiles()) { if (fileEntry.isDirectory()) { this.processFolder(fileEntry); } else { // manipulate file here String fileName = fileEntry.getName(); System.out.println(fileName); if (!fileName.startsWith(".") && (fileName.contains(".csv") || fileName.contains(".xls"))) { CSVLoader loader = new CSVLoader(); loader.setSource(new File(fileEntry.getAbsolutePath())); traindata = loader.getDataSet(); System.out.println(traindata.toSummaryString()); this.chooseClassifier(); } else if (!fileName.startsWith(".") && fileName.contains(".txt")) { TextDirectoryLoader loader = new TextDirectoryLoader(); System.out.println("About to load text file " + fileName); System.out.println("Name of path " + fileEntry.getAbsolutePath()); loader.setSource(folder); traindata = loader.getDataSet(); System.out.println(traindata.toSummaryString()); this.chooseClassifier(); } else if (!fileName.startsWith(".") && fileName.contains(".json")) { JSONLoader loader = new JSONLoader(); loader.setSource(new File(fileEntry.getAbsolutePath())); traindata = loader.getDataSet(); System.out.println(traindata.toSummaryString()); this.chooseClassifier(); } else if (!fileName.startsWith(".") && fileName.contains(".xrff")) { XRFFLoader loader = new XRFFLoader(); loader.setSource(new File(fileEntry.getAbsolutePath())); traindata = loader.getDataSet(); System.out.println(traindata.toSummaryString()); this.chooseClassifier(); } else if (!fileName.startsWith(".")) { traindata = new Instances(new BufferedReader(new FileReader(fileEntry.getAbsolutePath()))); System.out.println(traindata.toSummaryString()); this.chooseClassifier(); } else if (!fileName.startsWith(".") && fileName.contains(".mdf")) { DatabaseConnection loader = new DatabaseConnection(); loader.connectToDatabase(); InstanceQuery query = new InstanceQuery(); query.setUsername("lamogha"); query.setPassword("l@mmyPHD"); query.setQuery("select * from customers"); // You can declare that your data set is sparse // query.setSparseData(true); Instances data = query.retrieveInstances(); System.out.println(data.toSummaryString()); this.chooseClassifier(); } } } // System.exit(0); } }