{"id":10113,"date":"2015-08-04T08:46:51","date_gmt":"2015-08-04T12:46:51","guid":{"rendered":"http:\/\/bangla.salearningschool.com\/?p=10113"},"modified":"2015-08-04T10:17:48","modified_gmt":"2015-08-04T14:17:48","slug":"databaseutilities-java-several-general-purpose-utilities-discussed-and-used-in-the-chapter","status":"publish","type":"post","link":"http:\/\/bangla.sitestree.com\/?p=10113","title":{"rendered":"DatabaseUtilities.java: Several general-purpose utilities discussed and used in the chapter."},"content":{"rendered":"<pre>package cwp;\r\n\r\nimport java.sql.*;\r\n\r\n\/** Three database utilities:\r\n\r\n\u00a0*\u00a0\u00a0 1) getQueryResults. Connects to a database, executes\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 a query, retrieves all the rows as arrays\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 of strings, and puts them inside a DBResults\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 object. Also places the database product name,\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 database version, and the names of all the columns\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 into the DBResults object. This has two versions:\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 one that makes a new connection and another that\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 uses an existing connection. \r\n\r\n\r\n\u00a0*\u00a0\u00a0 2) createTable. Given a table name, a string denoting\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 the column formats, and an array of strings denoting\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 the row values, this method connects to a database,\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 removes any existing versions of the designated\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 table, issues a CREATE TABLE command with the\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 designated format, then sends a series of INSERT INTO\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 commands for each of the rows. Again, there are\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 two versions: one that makes a new connection and\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 another that uses an existing connection. \r\n\r\n\r\n\u00a0*\u00a0\u00a0 3) printTable. Given a table name, this connects to\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 the specified database, retrieves all the rows,\r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 and prints them on the standard output.\r\n\u00a0*\/\r\n\r\npublic class DatabaseUtilities {\r\n\u00a0 \r\n\u00a0 \/** Connect to database, execute specified query,\r\n\u00a0\u00a0 *\u00a0 and accumulate results into DBRresults object.\r\n\u00a0\u00a0 *\u00a0 If the database connection is left open (use the\r\n\u00a0\u00a0 *\u00a0 close argument to specify), you can retrieve the\r\n\u00a0\u00a0 *\u00a0 connection via DBResults.getConnection.\r\n\u00a0\u00a0 *\/\r\n\u00a0 \r\n\u00a0 public static DBResults getQueryResults(String driver,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String url,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String username,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String password,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String query,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 boolean close) {\r\n\u00a0\u00a0\u00a0 try {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 Class.forName(driver);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 Connection connection =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 DriverManager.getConnection(url, username, password);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 return(getQueryResults(connection, query, close));\r\n\u00a0\u00a0\u00a0 } catch(ClassNotFoundException cnfe) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 System.err.println(\"Error loading driver: \" + cnfe);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 return(null);\r\n\u00a0\u00a0\u00a0 } catch(SQLException sqle) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 System.err.println(\"Error connecting: \" + sqle);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 return(null);\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0 }\r\n\r\n\u00a0 \/** Retrieves results as in previous method, but uses\r\n\u00a0\u00a0 *\u00a0 an existing connection instead of opening a new one.\r\n\u00a0\u00a0 *\/\r\n\u00a0 \r\n\u00a0 public static DBResults getQueryResults(Connection connection,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String query,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 boolean close) {\r\n\u00a0\u00a0\u00a0 try {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 DatabaseMetaData dbMetaData = connection.getMetaData();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 String productName =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 dbMetaData.getDatabaseProductName();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 String productVersion =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 dbMetaData.getDatabaseProductVersion();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 Statement statement = connection.createStatement();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 ResultSet resultSet = statement.executeQuery(query);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 ResultSetMetaData resultsMetaData =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 resultSet.getMetaData();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 int columnCount = resultsMetaData.getColumnCount();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 String[] columnNames = new String[columnCount];\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Column index starts at 1 (ala SQL) not 0 (ala Java).\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 for(int i=1; i\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>package cwp; import java.sql.*; \/** Three database utilities: \u00a0*\u00a0\u00a0 1) getQueryResults. Connects to a database, executes \u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 a query, retrieves all the rows as arrays \u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 of strings, and puts them inside a DBResults \u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 object. Also places the database product name, \u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 database version, and the names of all the columns \u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0 into the &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/bangla.sitestree.com\/?p=10113\">Continue reading<\/a><\/p>\n","protected":false},"author":130,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1417,1424],"tags":[706,486,308,1279,1251],"class_list":["post-10113","post","type-post","status-publish","format-standard","hentry","category-code-programming-samples--","category-javaj2eej2me","tag-code","tag-database","tag-java","tag-utilities","tag-1251","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":26828,"url":"http:\/\/bangla.sitestree.com\/?p=26828","url_meta":{"origin":10113,"position":0},"title":"DatabaseUtilities.java: Several general-purpose utilities discussed and used in the chapter. #Programming Code Examples #Java\/J2EE\/J2ME #JDBC","author":"Author-Check- Article-or-Video","date":"May 2, 2021","format":false,"excerpt":"package cwp; import java.sql.*; \/** Three database utilities: * 1) getQueryResults. Connects to a database, executes * a query, retrieves all the rows as arrays * of strings, and puts them inside a DBResults * object. Also places the database product name, * database version, and the names of all\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10116,"url":"http:\/\/bangla.sitestree.com\/?p=10116","url_meta":{"origin":10113,"position":1},"title":"DBResults.java: Class to store completed results of a JDBC Query. Differs from a ResultSet in several ways","author":"","date":"August 5, 2015","format":false,"excerpt":"# DBResults.java\u00a0 Class to store completed results of a JDBC Query. Differs from a ResultSet in several ways: \u00a0\u00a0\u00a0 * ResultSet doesn?t necessarily have all the data; reconnection to database occurs as you ask for later rows. \u00a0\u00a0\u00a0 * This class stores results as strings, in arrays. \u00a0\u00a0\u00a0 * This\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10120,"url":"http:\/\/bangla.sitestree.com\/?p=10120","url_meta":{"origin":10113,"position":2},"title":"EmployeeTest2.java: A test case for the database utilities. Prints results formatted as an HTML table.","author":"","date":"August 5, 2015","format":false,"excerpt":"package cwp; import java.sql.*; \/** Connect to Oracle or Sybase and print \"employees\" table \u00a0*\u00a0 as an HTML table. \u00a0* \u00a0 \u00a0*\/ public class EmployeeTest2 { \u00a0 public static void main(String[] args) { \u00a0\u00a0\u00a0 if (args.length < 5) { \u00a0\u00a0\u00a0\u00a0\u00a0 printUsage(); \u00a0\u00a0\u00a0\u00a0\u00a0 return; \u00a0\u00a0\u00a0 } \u00a0\u00a0\u00a0 String vendorName = args[4];\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26830,"url":"http:\/\/bangla.sitestree.com\/?p=26830","url_meta":{"origin":10113,"position":3},"title":"DBResults.java: Class to store completed results of a JDBC Query. Differs from a ResultSet in several ways #Programming Code Examples #Java\/J2EE\/J2ME #JDBC","author":"Author-Check- Article-or-Video","date":"May 2, 2021","format":false,"excerpt":"# DBResults.java Class to store completed results of a JDBC Query. Differs from a ResultSet in several ways: * ResultSet doesn?t necessarily have all the data; reconnection to database occurs as you ask for later rows. * This class stores results as strings, in arrays. * This class includes DatabaseMetaData\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26852,"url":"http:\/\/bangla.sitestree.com\/?p=26852","url_meta":{"origin":10113,"position":4},"title":"extract relevant data from a DBResults #Programming Code Examples #Java\/J2EE\/J2ME #JDBC","author":"Author-Check- Article-or-Video","date":"May 3, 2021","format":false,"excerpt":"package cwp; import javax.swing.table.*; \/** Simple class that tells a JTable how to extract * relevant data from a DBResults object (which is * used to store the results from a database query). *\/ public class DBResultsTableModel extends AbstractTableModel { private DBResults results; public DBResultsTableModel(DBResults results) { this.results = results;\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26846,"url":"http:\/\/bangla.sitestree.com\/?p=26846","url_meta":{"origin":10113,"position":5},"title":"EmployeeTest2.java:  A test case for the database utilities. Prints results formatted as an HTML table. #Programming Code Examples #Java\/J2EE\/J2ME #JDBC","author":"Author-Check- Article-or-Video","date":"May 3, 2021","format":false,"excerpt":"package cwp; import java.sql.*; \/** Connect to Oracle or Sybase and print \"employees\" table * as an HTML table. * *\/ public class EmployeeTest2 { public static void main(String[] args) { if (args.length < 5) { printUsage(); return; } String vendorName = args[4]; int vendor = DriverUtilities.getVendor(vendorName); if (vendor ==\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/users\/130"}],"replies":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10113"}],"version-history":[{"count":2,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10113\/revisions"}],"predecessor-version":[{"id":10620,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10113\/revisions\/10620"}],"wp:attachment":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10113"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}