Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
/*Import house keeping stuff that we need to connect with the Database*/
import java.sql.*;
/*Import Scanner Class so as to take input from the user*/
import java.util.Scanner;
public class Main {
static Connection connection;
static Scanner scan;
static Statement statement;
static ResultSet resultSet;
static ResultSetMetaData resultSetMetaData;
public static void main(String args[]) throws SQLException {
/*Create object 'scan' to take input from the keyboard*/
scan = new Scanner(System.in);
try {
/*
* Call the function 'getConnection' from the static class
*'GetConnection' to return the connection to the database
*/
connection = GetConnection.getConnection(); // function at the bottom of file.
System.out.println("Connection established");
/*Create statement object to execute queries*/
statement = connection.createStatement();
} catch (Exception e) {
System.out.println("Check your connection again.");
}
while (true) {
/*transfer control to the function 'executeQuery'*/
executeQuery();
}
}
public static void executeQuery() {
System.out.print("$> ");
try {
/*get query input from the user*/
String query = scan.nextLine();
/*split the query into array of string object using the space delimiter*/
String[] queryBifercation = query.split(" ");
/*if the first word of the query is 'SELECT' or 'SHOW'*/
if (queryBifercation[0].equalsIgnoreCase("SELECT") || queryBifercation[0].equalsIgnoreCase("SHOW")) {
/*execute the query and store the result set returned in resultSet*/
resultSet = statement.executeQuery(query);
/*call the 'printResultSet' function*/
printResultSet();
} else {
/*
* if first word is not 'SELECT' or 'SHOW', call execute
* query with the execute update command
*/
statement.executeUpdate(query);
}
} catch (Exception e) {
System.out.println("Statement Cannot be executed.");
}
}
public static void printResultSet() throws SQLException {
/*get the meta data from the result set*/
resultSetMetaData = resultSet.getMetaData();
/*
* resultSetMetaData -> contains column name data
* resultSet -> contains column data
* getColumnCount() -> gets the number of columns in the Result Set
* getColumnName(i) -> gets the name of the i'th column
*/
for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
//if i is greater than one
if (i > 1) // first column must not have a tab before it
System.out.print("\t");
String columnName = resultSetMetaData.getColumnName(i);
System.out.print(columnName);
}
System.out.println();
while (resultSet.next()) {
for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
if (i > 1)
System.out.print("\t");
String columnValue = resultSet.getString(i);
System.out.print(columnValue);
}
System.out.println("");
}
}
}
class GetConnection {
static Connection conn;
static String USERNAME;
static String PASSWORD;
static String CONNECTION;
public static Connection getConnection() {
USERNAME = "dbuser"; // enter username here
PASSWORD = "dbpassword"; // enter password here
CONNECTION = "jdbc:mysql://localhost/"; // link
try {
/*Coerce the driver on the java application*/
Class.forName("com.mysql.jdbc.Driver");
/*Get the connection from the DriverManager Class and call the function
* 'getConnection'*/
conn = DriverManager.getConnection(CONNECTION, USERNAME, PASSWORD);
/*return the found connection to the function which called it*/
return conn;
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.