Skip to content

Commit

Permalink
Added QueryBuilder class for query builder functionality and implemen…
Browse files Browse the repository at this point in the history
…ted some basic queries methods
  • Loading branch information
SamuelAl committed Jul 4, 2020
1 parent 93e848e commit 8a94db5
Show file tree
Hide file tree
Showing 4 changed files with 106 additions and 2 deletions.
1 change: 1 addition & 0 deletions .classpath
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@
<classpathentry kind="lib" path="lib/mysql-connector-java-8.0.20.jar"/>
<classpathentry kind="lib" path="lib/sqlite-jdbc-3.30.1.jar"/>
<classpathentry kind="lib" path="lib/postgresql-42.2.14.jar"/>
<classpathentry kind="lib" path="lib/sqlbuilder-3.0.0.jar"/>
<classpathentry kind="output" path="resources/code"/>
</classpath>
Binary file added lib/sqlbuilder-3.0.0.jar
Binary file not shown.
90 changes: 90 additions & 0 deletions src/samuelal/squelized/QueryBuilder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
package samuelal.squelized;

import java.sql.Types;

import com.healthmarketscience.sqlbuilder.CreateTableQuery;
import com.healthmarketscience.sqlbuilder.CustomSql;
import com.healthmarketscience.sqlbuilder.InsertQuery;
import com.healthmarketscience.sqlbuilder.OrderObject.Dir;
import com.healthmarketscience.sqlbuilder.SelectQuery;
import com.healthmarketscience.sqlbuilder.dbspec.basic.DbSchema;
import com.healthmarketscience.sqlbuilder.dbspec.basic.DbSpec;
import com.healthmarketscience.sqlbuilder.dbspec.basic.DbTable;

/* Helper class to support CRUD database operations
* using SqlQueryBuilder library
*/
public class QueryBuilder {

static DbSchema dbSchema;
static DbSpec dbSpecs;


private static void loadSQLBuilderSchema() {
dbSpecs = new DbSpec();
dbSchema = dbSpecs.addDefaultSchema();
}

public static String createTable(String tableName, String[] columnNames, int[] columnTypes, Integer[] columnLength) {

// Specify table name
DbTable newTable = dbSchema.addTable(tableName);

// Add columns
for (int i = 0; i < columnNames.length; i++) {
newTable.addColumn(columnNames[i], columnTypes[i], columnLength[i]);
}

String query = new CreateTableQuery(newTable, true).validate().toString();
return query;
}

public static String insertData(String tableName, String[] columns, Object[] data) {

InsertQuery insertQuery = new InsertQuery(tableName).addCustomColumns(columns, data);

String query = insertQuery.validate().toString();

return query;

}

public static String displayAllTableRecords(String tableName) {

SelectQuery selectQuery = new SelectQuery().addCustomFromTable(tableName).addAllColumns();

String query = selectQuery.validate().toString();

return query;
}

public static String displayRecords(String tableName, String[] columns) {

SelectQuery selectQuery = new SelectQuery().addCustomFromTable(tableName);

for (String column : columns) {
selectQuery.addCustomColumns(column);
}

String query = selectQuery.validate().toString();

return query;
}

public static String displayRecords(String tableName, String[] columns, String orderColumn, boolean ascending) {

SelectQuery selectQuery = new SelectQuery().addCustomFromTable(tableName);

for (String column : columns) {
selectQuery.addCustomColumns(column);
}

selectQuery.addCustomOrdering(orderColumn, ascending ? Dir.ASCENDING : Dir.DESCENDING);

String query = selectQuery.validate().toString();

return query;
}


}
17 changes: 15 additions & 2 deletions src/samuelal/squelized/SQLConnection.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import processing.core.*;
import processing.data.Table;
import processing.data.TableRow;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
Expand Down Expand Up @@ -145,7 +144,21 @@ public Table runQuery(String query)
}
return queryResult;
}



public Table getTable(String tableName) {
return runQuery(QueryBuilder.displayAllTableRecords(tableName));
}

public Table getColumn(String tableName, String columnName) {
return getColumns(tableName, new String[] {columnName});
}


public Table getColumns(String tableName, String[] columnNames) {
return runQuery(QueryBuilder.displayRecords(tableName, columnNames));
}


/**
* return the version of the Library.
Expand Down

0 comments on commit 8a94db5

Please sign in to comment.