|
@@ -0,0 +1,111 @@
|
|
|
|
|
+package captiveportal;
|
|
|
|
|
+
|
|
|
|
|
+import java.sql.*;
|
|
|
|
|
+
|
|
|
|
|
+public class Database {
|
|
|
|
|
+ private Connection conn = null;
|
|
|
|
|
+ private Statement stmt = null;
|
|
|
|
|
+ private ResultSet resultSet = null;
|
|
|
|
|
+ private int count = 0;
|
|
|
|
|
+
|
|
|
|
|
+ //#######Database details#######
|
|
|
|
|
+ private String dbHost = "192.168.2.22"; //The ip or hostname of the database host e.g: localhost or 127.0.0.1 etc.
|
|
|
|
|
+ private String dbPort = "3306"; //The port the database is listening to
|
|
|
|
|
+ private String dbName = "CaptivePortal"; //The name of the scheme
|
|
|
|
|
+ private String dbUser = "CaptivePortal"; //The username of the account that can 'Update and Select' on the scheme
|
|
|
|
|
+ private String dbPass = "raspberry"; //The password of the account that can 'Update and Select' on the scheme
|
|
|
|
|
+ //##############################
|
|
|
|
|
+
|
|
|
|
|
+ //Create method for checking if ticket/lastname combination exists (On SUCCES => true else => false)
|
|
|
|
|
+ public boolean Select(String ticket, String lastName) throws Exception {
|
|
|
|
|
+ try {
|
|
|
|
|
+ //Load the MySQL driver
|
|
|
|
|
+ Class.forName("com.mysql.jdbc.Driver");
|
|
|
|
|
+ //Setup the connection with the database
|
|
|
|
|
+ conn = DriverManager.getConnection("jdbc:mysql://" +dbHost+ ":" +dbPort+ "/" +dbName, dbUser, dbPass);
|
|
|
|
|
+ //Create statement to execute query
|
|
|
|
|
+ stmt = conn.createStatement();
|
|
|
|
|
+ //Execute query
|
|
|
|
|
+ resultSet = stmt.executeQuery("select lastname, ticket from users where ticket='" +ticket+ "'and lastname='" +lastName+ "'");
|
|
|
|
|
+ //Count the results that are returned (affected rows) this should be 1 (unique ticket/lastname combination)
|
|
|
|
|
+ while(resultSet.next())
|
|
|
|
|
+ {
|
|
|
|
|
+ //increment count by 1
|
|
|
|
|
+ count++;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (count == 1)
|
|
|
|
|
+ {
|
|
|
|
|
+ //If there is 1 row with the ticket/lastname combination => return true
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ //If there is an error, throw it
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ throw e;
|
|
|
|
|
+ //Finally close the connections
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ if (stmt != null) stmt.close();
|
|
|
|
|
+ if (conn != null) conn.close();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ //Create method for registering internet usage per user (On SUCCES => true else => false)
|
|
|
|
|
+ public boolean Update(String ticket, String lastName) throws Exception {
|
|
|
|
|
+ try {
|
|
|
|
|
+ //Load the MySQL driver
|
|
|
|
|
+ Class.forName("com.mysql.jdbc.Driver");
|
|
|
|
|
+ //Setup the connection with the database
|
|
|
|
|
+ conn = DriverManager.getConnection("jdbc:mysql://" +dbHost+ ":" +dbPort+ "/" +dbName, dbUser, dbPass);
|
|
|
|
|
+ //Create statement to execute query
|
|
|
|
|
+ stmt = conn.createStatement();
|
|
|
|
|
+ //Execute query
|
|
|
|
|
+ int result = stmt.executeUpdate("update users set internet = '1' where ticket='" +ticket+ "' and lastname='" +lastName+ "'");
|
|
|
|
|
+ //Result is already an int so, if good => true else => false (executeUpdate returns the number of rows updated, so it should be 1)
|
|
|
|
|
+ if(result == 1) {
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ else {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ //If there is an error, throw it
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ throw e;
|
|
|
|
|
+ //Finally close the connections
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ if (stmt != null) stmt.close();
|
|
|
|
|
+ if (conn != null) conn.close();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //Create method for resetting user in database (set internet to 0) (On SUCCES => true else => false)
|
|
|
|
|
+ public boolean Reset(String ticket, String lastName) throws Exception {
|
|
|
|
|
+ try {
|
|
|
|
|
+ //Load the MySQL driver
|
|
|
|
|
+ Class.forName("com.mysql.jdbc.Driver");
|
|
|
|
|
+ //Setup the connection with the database
|
|
|
|
|
+ conn = DriverManager.getConnection("jdbc:mysql://" +dbHost+ ":" +dbPort+ "/" +dbName, dbUser, dbPass);
|
|
|
|
|
+ //Create statement to execute query
|
|
|
|
|
+ stmt = conn.createStatement();
|
|
|
|
|
+ //Execute query
|
|
|
|
|
+ int result = stmt.executeUpdate("update users set internet = '0' where ticket='" +ticket+ "' and lastname='" +lastName+ "'");
|
|
|
|
|
+ //Result is already an int so, if good => true else => false (executeUpdate returns the number of rows updated, so it should be 1)
|
|
|
|
|
+ if(result == 1) {
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ else {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ //If there is an error, throw it
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ throw e;
|
|
|
|
|
+ //Finally close the connections
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ if (stmt != null) stmt.close();
|
|
|
|
|
+ if (conn != null) conn.close();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|