Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Creative commons Attribution-NonCommercial license. http://creativecommons.org/licenses/by-nc/2.5/au/deed.en_GB NO WARRANTY IS GIVEN OR IMPLIED, USE AT YOUR OWN RISK.
  
  package base.query;
  
 import java.util.List;
 import java.util.Map;
 
 
 import base.Query;
Report on each of the current system settings.
 
 public class SqlTables extends Query<TableInfo> {
 
 	private DataSource ds;
 	private String owner;

Unused constructor for the ServiceLoader
 
 	public SqlTables() {
 	}

Parameters:
ds
Throws:
java.sql.SQLException
 
 	public SqlTables(DataSource dsString ownerthrows SQLException {
 		this. = ds;
 		this. = owner;
 	}
 
 	public List<TableInfoexecute() throws IOException {
 		List<TableInforesults = null;
 		Connection c = null;
 
 		try {
 			c = .getConnection();
 			c.setAutoCommit(false);
 
 			results = executeQuery(c);
 
 			c.rollback();
 			c.close();
 			c = null;
 		} catch (SQLException e) {
 			if(c != null) {
 				try { c.rollback(); } catch (SQLException e1) { }
 				try { c.close(); } catch (SQLException e1) { }
 			}
 			throw new IOException(e);
 		}
 
 		return results;
 	}

Return each setting in the form of key value pairs.
 
 	public List<TableInfoexecuteQuery(Connection cthrows SQLException {
 		List<TableInfolist = new ArrayList<>();
 
 		PreparedStatement s = null;
 		ResultSet r = null;
 		Map<StringTableInfotables = new Hashtable<>();
 
 		try {
 			s = c.prepareStatement(
 					"select distinct table_name,column_name,data_type,data_length,column_id " +
 					"from all_tab_columns " +
 					"where owner = ?" +
 					"order by table_name,column_id");
 			s.setString(1, );
 			r = s.executeQuery();
 			while(r.next()) {
 				String tableName = r.getString(1);
 				if(!tables.containsKey(tableName)) {
 					TableInfo t = new TableInfo(tableName);
 					tables.put(tableNamet);
 					list.add(t);
 				}
				tables.get(tableName)..add(new String[]{r.getString(2), r.getString(3), r.getString(4)});
			}
			r.close();
			r = null;
			s.close();
			s = null;
finally {
			if(r != null) { try { r.close(); } catch(Exception f) {} }
			if(s != null) { try { s.close(); } catch(Exception f) {} }
		}
		try {
					"SELECT " +
							"c_list.CONSTRAINT_NAME as NAME, " +
							"c_src.TABLE_NAME as SRC_TABLE, " +
							"c_src.COLUMN_NAME as SRC_COLUMN, " +
							"c_dest.TABLE_NAME as DEST_TABLE, " +
							"c_dest.COLUMN_NAME as DEST_COLUMN " +
					"FROM ALL_CONSTRAINTS c_list, ALL_CONS_COLUMNS c_src, ALL_CONS_COLUMNS c_dest " +
					"WHERE c_list.CONSTRAINT_NAME = c_src.CONSTRAINT_NAME " +
							"AND c_list.R_CONSTRAINT_NAME = c_dest.CONSTRAINT_NAME " +
							"AND c_list.CONSTRAINT_TYPE = 'R' " +
							"and (c_src.owner=? or c_dest.owner=?) " +
					"GROUP BY c_list.CONSTRAINT_NAME, c_src.TABLE_NAME,  " +
							"c_src.COLUMN_NAME, c_dest.TABLE_NAME, c_dest.COLUMN_NAME "
					);
			r = s.executeQuery();
			while(r.next()) {
				String tableName = r.getString(2);
				String tableName2 = r.getString(4);
				if(!tables.containsKey(tableName)) {
					TableInfo t = new TableInfo(tableName);
					tables.put(tableNamet);
					list.add(t);
				}
				if(!tables.containsKey(tableName2)) {
					TableInfo t = new TableInfo(tableName2);
					tables.put(tableName2t);
					list.add(t);
				}
				tables.get(tableName).addKey(r.getString(1), r.getString(2), r.getString(3), r.getString(4), r.getString(5));
				tables.get(tableName2).addKey(r.getString(1), r.getString(2), r.getString(3), r.getString(4), r.getString(5));
			}
			r.close();
			r = null;
			s.close();
			s = null;
finally {
			if(r != null) { try { r.close(); } catch(Exception f) {} }
			if(s != null) { try { s.close(); } catch(Exception f) {} }
		}
		return list;
	}
		return "{\"owner\":\"" +  + "\"}";
	}
		throw new IllegalArgumentException("SqlTables may not be instantiated with a parameter map.");
	}
class TableInfo implements QueryResult {
	public String tableName;
	public List<String[]> columns = new LinkedList<>();
	public List<String[]> foreignKeys = new LinkedList<>();
	public List<String[]> constraints = new LinkedList<>();
	public TableInfo(String name) {
		this. = name;
	}
	public void addKey(String keyString srcTableString srcColumnString dstTableString dstColumn) {
		.add(new String[]{keysrcTablesrcColumndstTabledstColumn});
	}
	public String toJson() {
		String i =
				"{\n" +
				"    \"name\":\"" +  + "\",\n" +
				"    \"cols\":[\n";
		for(String[] column : ) {
			if(column[1].equalsIgnoreCase("date")||column[1].equalsIgnoreCase("timestamp")) {
				i = i + "        \"" + column[0] + " " + column[1] + "\",\n";
else {
				i = i + "        \"" + column[0] + " " + column[1] + "(" + column[2] + ")\",\n";
			}
		}
		i = i + "        ],\n";
		i = i + "    \"keys\":[\n";
		for(String[] key : ) {
			i = i + "        \"" + key[0] + "=" + key[1] + "." + key[2] + " -> " + key[3] + "." + key[4] + "\",\n";
		}
		i = i + "        ]\n}";
		return i;
	}
New to GrepCode? Check out our FAQ X