import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import net.sf.jsqlparser.JSQLParserException;
public class SQLDisplay {
public static void listFunctions() throws ClassNotFoundException,
SQLException {
Class.forName(SQLDisplay.DRIVER);
final Connection connection = DriverManager.getConnection(
SQLDisplay.URL, SQLDisplay.USERNAME, SQLDisplay.PASSWORD);
final DatabaseMetaData metadata = connection.getMetaData();
final ResultSet rs = metadata.getFunctions(null, null, null);
SQLDisplay.printRS("Functions", rs);
}
public static void listNumericFunctions() throws ClassNotFoundException,
SQLException {
Class.forName(SQLDisplay.DRIVER);
final Connection connection = DriverManager.getConnection(
SQLDisplay.URL, SQLDisplay.USERNAME, SQLDisplay.PASSWORD);
final DatabaseMetaData metadata = connection.getMetaData();
final String[] functions = metadata.getNumericFunctions()
.split(",\\s*");
for (final String function : functions) {
System.out.println("Numeric Function = " + function);
}
}
public static void listSQLKeywords() throws ClassNotFoundException,
SQLException {
Class.forName(SQLDisplay.DRIVER);
final Connection connection = DriverManager.getConnection(
SQLDisplay.URL, SQLDisplay.USERNAME, SQLDisplay.PASSWORD);
final DatabaseMetaData metadata = connection.getMetaData();
final String[] functions = metadata.getSQLKeywords().split(",\\s*");
for (final String function : functions) {
System.out.println("SQL keyword = " + function);
}
}
public static void listStringFunctions() throws ClassNotFoundException,
SQLException {
Class.forName(SQLDisplay.DRIVER);
final Connection connection = DriverManager.getConnection(
SQLDisplay.URL, SQLDisplay.USERNAME, SQLDisplay.PASSWORD);
final DatabaseMetaData metadata = connection.getMetaData();
final String[] functions = metadata.getStringFunctions().split(",\\s*");
for (final String function : functions) {
System.out.println("String Function = " + function);
}
}
public static void listSystemFunctions() throws ClassNotFoundException,
SQLException {
Class.forName(SQLDisplay.DRIVER);
final Connection connection = DriverManager.getConnection(
SQLDisplay.URL, SQLDisplay.USERNAME, SQLDisplay.PASSWORD);
final DatabaseMetaData metadata = connection.getMetaData();
final String[] functions = metadata.getSystemFunctions().split(",\\s*");
for (final String function : functions) {
System.out.println("System Function = " + function);
}
}
/**
* @param args
* @throws JSQLParserException
*/
public static void main(final String[] args) throws Exception {
// String sqlQuery = "Select MAX(foo) as junk from tbl";
// CCJSqlParserManager parserManager = new CCJSqlParserManager();
// final Statement stmt = parserManager.parse(new StringReader(
// sqlQuery));
// System.out.println( stmt.toString() );
SQLDisplay.listSystemFunctions();
SQLDisplay.listStringFunctions();
SQLDisplay.listNumericFunctions();
SQLDisplay.listSQLKeywords();
SQLDisplay.listFunctions();
}
private static void printRS(final String name, final ResultSet rs)
throws SQLException {
final ResultSetMetaData meta = rs.getMetaData();
System.out.println(String.format("%s", name));
while (rs.next()) {
for (int i = 1; i <= meta.getColumnCount(); i++) {
System.out.println(String.format("%s=%s",
meta.getColumnName(i), rs.getObject(i)));
}
}
}
private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://127.0.0.1/test";
private static final String USERNAME = "claude";
private static final String PASSWORD = "";
public SQLDisplay() {
// TODO Auto-generated constructor stub
}
}