ReverseEngineeringMysqlJdbc.java
上传用户:cccombo
上传日期:2021-01-31
资源大小:16445k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

SQL

  1. package com.mysql.grt.modules;
  2. import java.sql.*;
  3. import com.mysql.grt.*;
  4. import com.mysql.grt.db.mysql.*;
  5. /**
  6.  * GRT Reverse Engineering Class for Oracle 8i/9i
  7.  * 
  8.  * @author Mike
  9.  * @version 1.0, 03/30/05
  10.  * 
  11.  */
  12. public class ReverseEngineeringMysqlJdbc extends ReverseEngineeringGeneric {
  13. /**
  14.  * Static function to return information about this class to the GRT
  15.  * environment
  16.  * 
  17.  * @return returns a GRT XML string containing the infos about this class
  18.  */
  19. public static String getModuleInfo() {
  20. return Grt.getModuleInfoXml(ReverseEngineeringMysqlJdbc.class,
  21. "ReverseEngineering");
  22. }
  23. private static String schemataSelect = "SHOW DATABASES";
  24. /**
  25.  * Returns a list of all schemata from the given JDBC connection
  26.  * 
  27.  * @param jdbcDriver
  28.  *            the class name of the JDBC driver
  29.  * @param jdbcConnectionString
  30.  *            a JDBC connection string
  31.  * @return returns a GRT XML string containing a list of schemata names
  32.  */
  33. public static GrtStringList getSchemata(
  34. com.mysql.grt.db.mgmt.Connection dbConn) throws Exception {
  35. Connection conn = establishConnection(dbConn);
  36. Grt.getInstance().addMsg("Fetching schemata list.");
  37. Grt.getInstance().addMsgDetail(schemataSelect);
  38. GrtStringList schemataList = new GrtStringList();
  39. Statement stmt = conn.createStatement();
  40. ResultSet rset = stmt.executeQuery(schemataSelect);
  41. while (rset.next()) {
  42. schemataList.add(rset.getString(1));
  43. }
  44. stmt.close();
  45. conn.close();
  46. Grt.getInstance().addMsg("Return schemata list.");
  47. return schemataList;
  48. }
  49. /**
  50.  * Does the reverse engineering of the given schematas over the JDBC
  51.  * connection and returns the GRT objects
  52.  * 
  53.  * @param jdbcDriver
  54.  *            the class name of the JDBC driver
  55.  * @param jdbcConnectionString
  56.  *            a JDBC connection string
  57.  * @param schemataList
  58.  *            list of schematas to be reverse engineered
  59.  * @return returns a GRT XML string containing a the reverse engineered
  60.  *         objects
  61.  */
  62. public static com.mysql.grt.db.Catalog reverseEngineer(
  63. com.mysql.grt.db.mgmt.Connection dbConn, GrtStringList schemataList)
  64. throws Exception {
  65. // build parameter list
  66. GrtList params = new GrtList();
  67. params.addObject(dbConn);
  68. params.addObject(schemataList);
  69. params.addObject(new Integer((Grt.getInstance()
  70. .getGrtGlobalAsInt("/migration/applicationData/"
  71. + "reverseEngineerOnlyTableObjects"))));
  72. // call native function
  73. Catalog catalog = (Catalog) Grt.getInstance().callGrtFunction(
  74. "ReverseEngineeringMysql", "reverseEngineer", params);
  75. return catalog;
  76. }
  77. }